赞
踩
单轮会话场景:QA形式,一问一答,标准答案只有一个,相似问句会有很多个。
多轮会话场景:基于意图(intents)和实体(entities)识别,预先设置词槽(slots),在多轮对话中通过主动询问来获得填充词槽的实体,然后根据获得的意图+实体组合决定下一步的动作一一回答问题或者执行任务。
在订酒店的例子中,用户意图为“订酒店”,填充实体为“时间”和“地点”。
闲聊场景:对话通常是开放领域的,可以提出一个关于任何主题的问题,并期待相关的回应。无数的话题和生成合理的反应所需要的知识规模,使得开放领域的聊天机器人实现相当困难。如苹果的Siri和微软的小冰就是闲聊机器人。
在深度学习被广泛应用之前,传统的技术方案很难实现开放领域的闲聊机器人,一般只适用于单轮会话的场景。传统对话机器人的实现方案有:
* 基于规则:基于规则的对话机器人会使用对话来匹配预定义的规则,如果满足某个规则的条件,则返回该规则对应的回复。需要预定义的规则很多,很难覆盖真实对话中面对的所有情况。但是实现比较简单,不需要了解任何算法也可以实现,只需要一定的工程实现能力即可。
* 基于搜索引擎:把用户输入的内容作为搜索关键字,把预定义的恢复作为搜索结果,根据文本相似度来搜索结果。使用类似Elasticsearch的搜索服务器可以快速的实现搜索功能。
对话机器人主流架构为“NLU(自然语言理解) + DM(对话管理) + NLG(自然语言生成)” ,下面逐步介绍各个模块的具体作用
NLU:负责自然语言处理和理解,主要是对用户的问题在句子级别进行分类,明确意图识别(Intent Classification);同时在词级别找出用户问题中的关键实体,进行实体槽填充(Slot Filling)。依赖于语言表示模型、分词、分类模型等NLP和机器学习技术:
DM:负责对话状态维护、数据库查询等,主要分为两大类:
NLG:负责生成交互的自然语言,主要也分为两大类:
[1] Rasa官网. https://rasa.com/
[2] 十个Chatbot框架介绍. https://blog.csdn.net/xmsheji/article/details/53610656
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。