赞
踩
如何进行意图分析
之前开始做语义理解的时候,笔者采用的是比较粗暴的方法进行匹配。随着语料的积累,语料库的规模变得越来越大,匹配的效率也随着越来越低,对语料进行意图分类的想法也就随着产生。
当用户输入之后,系统首先对输入进行意图分类,然后对分类下的语料进行匹配,从而减轻计算量,提高系统的匹配效率。
本文只是简单的阐述一下意图分析的典型思路和方法,并实现一个基本的意图分类器,而无意系统的探究意图分类。更详细的探讨后文再进行。
本文按照如下流程进行叙述:
假设有3个场景:吃饭、打招呼、再见。那么三个场景下会有什么样的对话呢?
比如:
很明显,人眼一看就能看出对应的句子应该是哪个类别了:
到这里,我们模型需要的数据就有了。可以很清晰的写出下面的代码:
list_sen=['今天这个菜真好吃!','嗨!今天天气不错!','今天很开心,明天见!']
需要的数据就有了,下一步是提取特征。
特征的提取是为了方便进行分类计算,每一个特征都具备一定的权重,表明它的权值。通过特征的权值,就能够确定句子属于哪一个类别。这里我们将每一个字作为一个特征,1/(字出现的总次数)作为权值。
首先构造一个字典,key为字,value为频率:
dict_voc=dict()
for s in list_sen:
for w in s:
if w in dict_voc.keys():
dict_voc[w]+=1
else:
dict_voc[w]=1
输出为:
{
'这': 1.0, '嗨': 1.0, '好': 1.0, '气':
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。