机器人的发展——对话到电话
人工智能首页 > 机器人 > 正文

机器人的发展——对话到电话

2018-09-10 阅读134次

如何设计一款垂直领域对话机器人,首先要了解一下对话型机器人要解决问题。

问题的语义理解的过程包括两个子任务:意图识别和实体抽取。

意图识别 (intention classification):用来识别用户所提问题的意图,也就是用户希望做一件什么事。

本文只是简单的描述一下意图分析的典型思路和方法,并实现一个基本的意图分类器。因为本文主要讨论垂直领域对话机器人的设计,所以用户的问题意图限定在了特定范围,因此答案的结果的准确率也会很高。

意图分类:做意图识别第一步是要做意图分类,根据所在范围,搜集归纳数个意图。并为意图命名。

数据准备:意图识别离不开数据,搜索领域的意图识别用到的数据通常就是用户的搜索日志了。一般一条搜索日志记录会包括时间-查询串-点击URL记录-在结果中的位置等信息。对话领域则需要批量的意图语料。

特征提取:特征的提取是为了方便进行分类计算,每一个特征都具备一定的权重,表明它的权值。通过特征的权值,就能够确定句子属于哪一个类别。这里我们将每一个字作为一个特征,1/(字出现的总次数)作为权值,并构建字典。

模型准备:模型准备需要的是建立分类模型。这里我们通过给每一个特征赋予一个得分,然后将句子中每一个字的特征得分进行相加,然后就可以得到句子在某一个类别下特征的总得分,从而能够对句子进行分类。

训练模型:在完成特征任务后,接下来就是选择合适的分类器进行训练了,因为意图识别可以看作是一个多分类任务,所以通常可以选择SVM、决策树等来训练分类器。

完成以上工作后基本上一个意图识别分类模型就建设好了,接下来就是对已识别语句的实体进行抽取。

实体抽取 (entity extraction):用于提取用户对话中所提供的和意图相关的参数(实体),例如:时间、地点等。要想实现实体抽取,主要分为两步:

系统分词:现在都有一些开源的分词工具,可以实现很高精度的分词效果,如:jieba分词,它的全模式就是把句子中所有的可以成词的词语都扫描出来,速度非常快。

信息抽取:利用jieba分词后我们得到了切分好的短词信息,将该信息输入到语义识别模型中就可以实现机器人“听得懂”的功能了。

举个例子:智小保是一款保险行业的机器人,主要回答保险相关的问题。那么可以如此定义意图和实体:

Case1:推荐一款小孩的医疗险给我?—— 意图:保险推荐;保险类型实体:医疗险,被保人实体:小孩 。

Case2:e生保的产品特色是什么?—— 意图:保险产品了解;了解维度实体:产品特色,产品实体:e生保。

垂直领域的对话机器人就可以根据该领域所涉及的所有问题进行整合,梳理若干意图,根据意图拆分实体,意图越具象,实体颗粒度越细,回答越准确。


随意打赏
WeixinPathErWeiMaHtml
ZhifubaoPathErWeiMaHtml