引言 原理
任务式聊天机器人的模块包括:
1)NLU(understanding):
2)对话管理(Diaglog mangement)
3)NLG(Generation)
构建聊天机器人的三大模块:
一、有哪些知识点
1.1 自然语言理解(NLU)
NLU的主要任务是从文本中提取信息,把自然语言转变成一种固定的结构化数据表达形式,包括:
对话文本的意图
文本中关键的信息,例如命名实体
将这些信息转成标准化的表示方式
供后续聊天机器人模块使用
例如:Do you have any flights from Seattle to Boston on December 24th?
需要做的事情是:
1)Intent classification,可以识别意图类型为<ShowFlight>,然后就构建了如下的意图树
2)命名识别识别,填充slot:例如填充topic、Dcity、ACity、DDate这些信息
首先会定好命名实体的类别,比如:机构、任务、低点、时间、日期、金钱、百分比
主要的方法:基于HMM,CRF,RNN(LSTM)等模型的token标注方法
关于semantic parsing和slot filling
semantic parsing:非结构化的语言转换成结构化的指令;
1.2 对话管理
一般是聊天机器人的中心模块,控制整个聊天的过程。负责存储聊天的信息和状态(slot filling),根据已有的信息(当前聊天记录和外部信息),决定下一步做什么。还负责与一些外部的知识库(knowledge base)做交互。
1)Dialogue Context Modeling:共指消解、聊天context的来源、knowledge base;
2)Dialogue Control:根据Context, 聊天历史,knowledge base获取的信息->决定下一步需要采取怎样的行动,可能是rule based决策,也可能是基于机器学习模型的决策;可以做的决策有:
从用户处收集更多的信息;
与用户确认之前的信息;
向用户输出一些信息;
一些设计要素:由用户还是系统来主导;是否要向用户解释自己的动作;
对话的主导方:用户主导、系统主导
Dialogue Control的一些方法:
基于Finite state Automata(有限状态机)的聊天状态,
基于Frame-Based Dialogue Control:预先指定了一张表格 (Frame),聊天机器人的目标就是把这张表格填满
基于统计模型的(机器学习)
AI planning
1.3 自然语言生成Natural Language Generation(NLG)
Template based
Retrieval Based
基于深度学习的聊天机器人(偏向实验性质):用Seq2Seq模型来做生成
Deep Reinforcement Learning for Dialogue Generation:使用深度增强学习来训练聊天机器人
二、有什么开源工具、如何实现
Rasa 聊天机器人