RASA 对话管理系统DEMO及资源:二,中文支持及NER字典实现

一,中文支持实现

rasa内置支持使用jieba分词工具,并可使用自编字典,实现场景关键词的正确分词。这对于一些术语领域十分重要。

  1. 进入虚拟环境,安装jieba,

pip install jieba

2. 在rasa工程的根目录下的config.yml中,设置语言,将jieba添加pipeline至:

language: "zh"

pipeline:

- name: "JiebaTokenizer"
  dictionary_path: "data/lookup_tables"

#dictionary_path的目录中后设置你的的字典文件

二, NER字典实现

这里需要实现对一类特定词汇的归类式实体提取。比如,将老虎,大象,章鱼等归类为animal,设置一个词槽(SLOT)就叫animal,凡是输入的句子中出现这些词汇的,都作为实体提取出来,并填入slot。
这些词汇可能不会被正确的分词,记得在前述jieba分词目录中,用一个文本文件做个字典。

如里需要RASA将这些词当作实体提取出来,一种方式,是使用nlu设置进行穷举,让nlu模块学习所有的这些实体,比如在nlu.yml中直接使用如下设置,可以直接定义老虎、狗、猫、大象为animal实体。
RASA 对话管理系统DEMO及资源:二,中文支持及NER字典实现
问题在于你可能有几百上千种animal实体,直接使用穷举的方式显得很笨,有些场合也不现实。比如,你无法穷举电话号码。
另一种方式,是使用RASA内置的正则设置,通过lookup选项,让RASA将lookup中列举的动物直接归入animal实体

(1) 设置config.ym

-name: "RegexFeaturizer"#添加正则特征提取选项
...
- name: "RegexEntityExtractor"
  use_word_boundaries: False #中文环境要用
  use_lookup_tables: True
  use_regexes: True


(2) 设置nlu.yml

RASA 对话管理系统DEMO及资源:二,中文支持及NER字典实现

经过以上设置,虽然“企鹅”,“章鱼”等并没有出现在 - intent recognition设置的例句中,但rasa仍然将它们归为animal实体。

三,实际效果

在demo中,将animal实体做了特殊归类。出现animal的例句,被解读为recognition意图,此意图对应由action_recognize处理。

你可以输入:"我喜欢章鱼",来测试下。

![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210330183621516.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Rob3I5a2luZw==,size_16,color_FFFFFF,t_70)

注:在DEMO的演示回复,含有*reply: action_recognize*字样的,说明是由名为action_recognize的action类回复的。含有*reply: action_chitchat*字样的,说明是由名为action_chitchat的action类回复的,它调用了一个闲聊服务。 后续再讲解如何实现action

联系与资源

DEMO体验(注:无需注册,不要求获取个人信息),若小程序码无法显示,请搜索微信小程序:小鹰微智,或请前往主页www.moneymeeting.club

![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210330184930524.png?,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Rob3I5a2luZw==,size_16,color_FFFFFF,t_70)

如果有疑问,可加微信,注备rasa,微信号:aiwabao2021

若需获取本项目相关 源码、配置资源,网盘链接:

https://pan.baidu.com/s/1zwe2PD1B-XOwh3bTizn5Lw

获取提取码,可关注公众号:智会*,并在后台回复: rasa

![在这里插入图片描述](https://www.icode9.com/i/ll/?i=20210330185058237.png)

rasa系列文章的源码解读,亦将发布在此公众号上,如有需要可持续关注更新

NLP系列:

对话管理系统RASA免费资源
中文语音合成TTS免费API
中文语音识别ASR免费API
机器翻译NMT免费资源

CV系列:

OCR中英文识别免费API

市场数据系列:

免费股票日线数据API

上一篇:【复习回顾】转型和instanceof


下一篇:Java基础——多态详解