原创 | 工业场景下,问答机器人如何陪聊?
来源: | 作者:K君 | 发布时间: 2018-10-22 | 667 次浏览 | 分享到:

NLU训练jasn脚本示例

{

"text": "液压泵无反馈故障怎么修",

"intent": "restaurant_search",

"entities": [{

"start": 0,

"end": 6,

"value": "液压泵无反馈",

"entity": "fault_name"

}]

}

再次要修改pipeline设置,见下图;最后开始训练生成model文件。使用该模型,就可以开启NLU服务,完成意图识别和实体抽取功能。

RASA NLU Pipeline

RASA Core模块负责DM功能,具体流程如下图所示,Interpeter接受用户消息,转化为意图和实体,由RASA NLU实现;Tracker负责对话追踪;Policy接受当前对话状态,选择执行哪个动作;最后将动作返回用户,并记录到Tracker中。这里Tracker和Policy都使用机器学习模型来实现,其训练脚本为domain.yml和stories.md,前者定义了意图集合、slots集合和动作集合,后者定义意图实体与动作的映射关系,脚本具体写法和训练过程请参考文献[8-10]。RASA Core还提供UI工具[11]用于stories.md的训练生成,使得脚本训练更加简单高效。

RASA Framework

3.4

Chatbot在线服务

使用上述框架,需要开发人员具备一定的编程、机器学习和自然语言处理相关知识,如果不具备相关知识是否也能开发Chatbot呢?Chatbot在线服务应运而生,开发者可以在平台上免费创建虚拟Chatbot,甚至产品和运营人员都可以轻松地开发聊天/对话机器人应用,相关的国外服务有google的api.ai,Facebook的Wit.ai,国内服务有“一个AI[12]”,详细了解参加官方网站[8]。遗憾的是,目前这些Chatbot只能以http服务方式获取,这就意味着使用服务,就要向服务提供商提供自己的数据,这对于数据安全敏感的企业显然不适用。

4.结论

本文介绍了Chatbot的分类、基本原理和构建工具框架,讨论了在工业场景下Chatbot的开发方法,由于工业场景对Bot的可控性要求较高,使用任务式的框架来构建更为合适。在选择具体的工具框架时,基于规则框架可控性强、通用性强,但是其对话脚本工作量很大;基于机器学习的框架,智能性更强,具备自学习能力,但是每个话题都需要成百上千个训练问答对,冷启动比较困难。如何选择还需要根据具体的场景确定。