RASA-1-基础说明

摘要

本文内容基于RASA官网

  • Rasa是一个基于多轮对话的框架,其中包含两个模块Rasa coreRasa nlu
  • Rasa nlu是用来理解语义的,包括意图识别、实体识别,它会把用户的输入转换为结构化的数据。

安装Rasa

pip3 install rasa_core
pip3 install rasa_nlu[tensorflow]

Rasa Core

core包含两个内容,stories和domain。

Stories

  • stories可以理解为对话的场景流程,即告诉机器多轮场景是怎样的。如:用户问好 -> 机器问用户今天过得怎么样 -> 用户反馈情绪 -> 机器根据不同的情绪进行回复;其中包含两个流程:一个正面情绪的流程与一个负面情绪的流程,因此我们需要编写两个story。
符号 说明
## story标题
* 意图
- 动作

Domain

  • domain可以理解为机器的知识库,其中定义了意图、动作以及对应动作所反馈的内容。
  • Rasa Core的任务是在获取到用户的意图之后,选择正确的action,这些action就是定义在domain中以utter_开头的内容,每一个action会根据templates中的情况来返回对应的内容。
标识 说明
intents 意图
actions 动作
templates 回答模板
entities 实体
slots 词槽

训练对话模型

  • 下一步就是用神经网络训练我们的Core模型,可以直接执行下列命令。训练模型将会存储在models/dialogue文件夹下。
python -m rasa_core.train -d domain.yml -s stories.md -o models/dialogue
  • 可以发现,训练过程中采用了一个神经网络,结构为:masking -> lstm -> dense -> activation。masking层:在Nlu领域,输入的内容可能不是一样长的,为了能统一处理数据需要定长,因此某些值需要补0或者截取多余内容,但是补0的部分其实是没有意义的,masking层能让这些补0的部分不参与之后的计算,从而提升运算效率。

尝试交流

  • 可以执行指令
python -m rasa_core.run -d models/dialogue

Rasa NLU

添加nlu模块

  • 目前机器人可以通过输入意图来获取答案,NLU模块负责让机器理解真正的语言,任务是解析消息,能把自然语言解释称我们需要的结构化数据。

RASA安装2

安装方式

  • Rasa另一个推荐安装方式是通过pip,这种方式将同时安装Rasa和Rasa X:
pip3 install rasa-x --extra-index-url https://pypi.rasa.com/simple

NLU管道依赖项

  • Rasa NLU有用于识别意图和实体的不同组件,其中大多数有一些额外的依赖项。
  • 当训练nlu时,Rasa将检查是否安装了所有必须的依赖项,并告知缺少哪个依赖项。如果想确保为你可能需要的任何组件安装了依赖项,而且不介意有其他依赖项存在,可以使用:
pip3 install -r alt_requirements/requirements_full.txt

你可能感兴趣的:(rasa,基础,日常)