Rasa NLU 聊天机器人自然语言理解

Posted APM工作者联盟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Rasa NLU 聊天机器人自然语言理解相关的知识,希望对你有一定的参考价值。

Rasa NLU

RasaCore 是一个自然语言理解框架。https://nlu.rasa.ai,下文将对基本流程及使用方式以及部分原理进行描述,本文来自http://lvchongstudio.top/。

Rasa Nlu 工作原理

智能机器人是人工智能一个重大分支,只能机器人包括几大模块:自然语言识别(ASR)、自然语言处理(NLU)、对话流程(DM)、自然语言生成(TTS),目前自己的工作涉及的方面主要是 NLU 与 DM,本文主要写一下NLU,即Rasa NLU。关于对话流程见另一篇博文。

具体流程:

  • 编写一个文件 intent.md 用来存放语料(需要根据意图,进行语料扩展)

  • 接下来就是用上面的个文件,训练出 Rasa NLU 的模型。

  • 最后,这就到最后了,使用Rasa NLU 的模型就可以开启服务。

  • 哦,这才是最后,现在就可以测试问题具体的识别准确率了,以及参数的提取准确度。

看完自己写的工作原理,发现真的很简练,哈哈,根本不能上手使用。总要写的完全一些,深入一些的。

Rasa NLU 项目使用方法

github 上面搜索 Rasa_NLU,具体安装方式参见项目介绍。建议将整个项目源码拉下来,在项目的根目录运行

python setup.py install
 
   
   
 
  • 1

  • 2

进行安装。Rasa Nlu 同理。可以先根据项目里自带的example进行训练运行。具体运行方式见项目及Demo中的Makefile。

Rasa NLU 深入了解

NLU 的难点主要在语料的准备, 接下来就自己了解到的经验进行一一记录。

  • 每个意图要有关键字,意图中的每句都要有关键字。

  • 每个关键字要扩充20左右的语句。

  • 所有语句之间要够发散、离散(即除关键字外尽量不用重复的词语)。

  • 除关键字之外,所有的词字,在每个意图中重复率要低、要低,最好不重复。

  • 整个文件中,除关键字之外,所有的词字,重复率要低、要低,最好不重复。

  • 上面两条造成的现象就是,你我他啊是的吗之类的词都要去掉(语义可以稍微不通顺,可接受)。

  • 句式相同,参数不同的意图进行合并,通过后期校验参数进行分辨。

意图识别的准确度跟两方面有关

  • 关键字在当前意图中出现的频率

  • 关键字在整个文件中出现的频率


以上是关于Rasa NLU 聊天机器人自然语言理解的主要内容,如果未能解决你的问题,请参考以下文章

Rasa学习记录 01

Transformer课程发布 业务对话机器人Rasa核心算法DIET及TED论文详解

Transformer课程 业务对话机器人Rasa 3.x Testing Your Assistant

如何使用RASA NLU处理复合类型的实体?

markdown 构建Rasa NLU训练数据集

在 Django 后端服务多个 RASA 机器人