智能问答机器人综述

智能问答机器人综述

 

问答机器人引擎一般分为以下几种

1、FAQ:最传统的一问一答引擎,是所有市场上问答机器人都必备的功能。通常以{1条标准问 +1 条标准答案 + n条相似问}的结构将语料存储在FAQ语料库中(如mysql、ElaticSearch)。流程分为三步,第一步,用户提问时,从所有标准问和相似问中混合召回出top N条(如bm25召回算法)。第二步,把所有相似问映射成标准问,去重,再映射到对应的标准答案。最后,通过精排算法,选出分数最高的的答案返回给用户。FAQ常用于办公、人力、常见问题这种简单场景。FAQ的语料库构建比较耗时,需要人工梳理,随着系统的持续运营,还要定期更新。

2、MRC:机器阅读理解引擎,适用于从复杂段落中寻找具体答案,常用于手册、条文、法律法规这种拥有复杂语料的场景。在构建时,通常做法是把复杂的文本分隔成段落,存储在MRC语料库中,分隔的粒度一般是一个段落描述一个具体事项为标准。流程通常是两步,第一步召回,根据用户问题,从MRC语料库中召回出分数top1的段落。第二步,把用户问题和top1的段落输入MRC引擎(如bert模型),输出答案,返回给用户。

3、KBQA:知识图谱问答。知识图谱构建是基于图数据库(如Neo4j),所有的语料以“点”和“边”的形式存储在图数据库中。比如用户提问:中国的首都在哪里?对应的流程是这样处理的,首先识别用户问题中的实体、意图和关系,然后把用户问题转化成图数据库的特有sql语句,在图数据库中找到“中国”这个“点”,以及与它链接的“首都”这一条边,这条边的另一个“点”就是答案。图数据库的构建和管理很复杂,但是回答的准确率接近100%。

4、MTQ:多轮问答。适用于多轮任务式的问答,常用于订机票、订酒店这类有一系统步骤的场景。MTQ的背后对应着一张复杂流程图,以“订机票”为例说明,流程图中包括“欢迎语”,"确认出发地“,确认目的地”,“确认日期”,“确认身份证”,“确认手机号”,“确认订单”,“取消”等一系列节点,用户通过调整流程图来控制多轮问答的顺序和话术。每个节点还涉及到NLU(自然语言理解)、NLG(自然语言生成)等不同的技术,如确认出发地时,将用户输入的信息匹配到城市地点的槽位。确认订单时,将出发地、目的地、航班一系列信息和逻辑转换成自然语言返回给用户。MTQ的实现很复杂,实施难度大。

5、闲聊机器人:数据存储结构与FAQ相似,通常是事先构建一个寒暄语料库,以{1条标准问 + n条标准答案 + n条相似问}的方式存储,回答是随机的。常用于开放域。

上一篇:[iOS开发]引用计数与MRC


下一篇:[PHP] php使用curl_multi_exec并行同时执行http请求