本发明主要是针对物流智能客服领域的一种基于语义的物流智能客服问题相似度计算方法。涉及到词向量、词向量空间、语义特征词、广义同义词、word2vec和jieba。改进原始的短文本计算方法,结合上述物流领域的特征进行短文本的相似度计算。
背景技术:
互联网的飞速发展,催生了和发展了很多产业,带给大家新的生活方式。其中物流的兴盛和发展是我们始料未及的事情,也随着物流的发展,与之相关的服务也随之兴起。在这个领域内,需要人工客服去对用户的问题进行解答,随之而来的就是产生了大量的短文本,包括用户的咨询、下单等相关问题。所以客服人员面临着极大的工作压力,此外,客服还有着招聘困难、人力成本高、流失率居高等特点,这样的困境对于物流整个行业来说都是需要解决的问题。智能客服的出现极大的缓解了以上问题,但也因为短文本包含的信息少,对其中的语义挖掘也变的越发困难。使得智能客服的服务质量没有很好的达到人们的要求。从而造成了用户体验差、用户流失的后果。为此,提升智能客服的理解能力是亟待解决的事情。模仿人类的思考过程,可以先让智能客服学习一些先验知识,当面对新的问题,就可以利用先验知识去理解这句话的语义信息,从而给出准确的答复。鉴于一般的用户问题符合上述短文本的特点,利用短文本的语义相似性来提高智能客服的理解能力成为了可能。但人们在物流领域上的短文本相似度的研究并不多,使得这样一个问题一直得不到很好的解决。短文本这类数据包含的信息少,对其中的语义挖掘也越发困难。以往的研究没有针对物流智能客服领域,但基本的文本处理方式是通用的。采用的技术大都是将文本表示为向量,通过这些向量来表达出完整的信息。但是这些向量往往只是当前词的一种表示形式,并没有考虑到词与词之间的关系,即语义关系。其他语义相似的方法,对普通的数据是比较有用,而对于物流智能客服领域来说,这些方法没有考虑到特定领域的特性,所以并不一定适合。以往的研究中,计算语义相似的方法被分成两类,一类是基于词典或者索引集的方法,另一类是基于信息理论或者语料库的方法。现在越来越多的人会使用深度学习计算语义相似,但这种方法需要大量的数据和资源,对于物流智能客服领域来说,存在缺乏数据和需要不断更新的问题,其应用性也因此受到了限制。
技术实现要素:
本发明的目的是针对现有的短文本相似度计算方法没有考虑物流智能客服领域的特性、需要大量数据和不断更新的问题而提出的一种结合物流智能客服的基于语义的物流智能客服问题相似度计算方法。生成需要对比的短文本的词向量空间,并利用jieba获取相同词性的词向量空间。在该向量空间上利用word2vec模型判断词之间的相似度,再结合物流智能客服领域的语义特征词,对短文本对进行最后的语义相似性判断。来达到提高智能客服的理解能力,满足用户基本问题需求的目的。
为了达到上述目的,本发明的构思是:(1)原始数据的收集与整理,主要包括获取用户问题、构建专业词典、同义词典和语义特征词典。本发明使用到的数据是从某物流公司获得的大量用户问题、物流新闻和物流人工客服整理的标准问题。从这些问题中去除重复、包含订单号的问题。在构建专业词典阶段,使用jieba分词工具,对这些问题进行分词,并人工进行校验。对分词和词性标注错误的词进行收集和整理,获得物流领域的专业词典。用于提高分词工具在物流领域的分词和词性标注的能力。构建同义词典和语义特征词(sfw)典,先训练word2vec模型,该模型的训练过程,接收的是词列表,并且每句或每段话要有明显的分割标志,以确定当前的词列表的上下文信息。在进行分词之前,加载构建的专业词典,使得分词和词性标注更好的适应物流领域。得到的词列表放入word2vec进行训练。根据物流智能客服领域的特性,利用word2vec对一些同义词进行提取,如“快递”与“包裹”、“快件”等,并由人工进行校验。在语义特征词的构建中,使用该领域所出现的行为动词,主要包括“寄件”、“查”、“破损”等具有明显的业务意图的词。(2)接收用户问题,在一个完整的问答系统中,由前端界面提供的对话窗口功能,接收用户的问题,并把问题传递到后端,进行下一步操作。(3)问题处理,接收到用户问题之后,需要对用户问题进行分词和词性标注工作,在这一步需要利用到jieba分词工具和数据处理阶段创建的专业词典,在去除停用词之后获得词列表。(4)获得语义向量,对当前接收的用户问题和已有的先验问题进行语义计算,获得对比问题的语义向量。(5)确定语义相似,在得到语义向量之后,计算对比语句语义向量之间的距离,即余弦值,根据阈值确定最终的语义相似结果。(6)问题回复,在具有语义相似的对比问题上,将已有的先验知识的答案回复给用户,用以解决用户询问的问题。
一种基于语义的物流智能客服问题相似度计算方法,根据上述构思,本发明采用了下述技术方案:
1)构建专业词典、同义词典和语义特征词典。
2)获得待判断语义相似度的两句话的词、词性和每种词性对应的词列表s1、s2,pos,spos1、spos2,并初始化这两句话的语义向量sim1,sim2。遍历其中一句话的词列表s1,获得当前词w1i,同时遍历另外一句话的词列表s2,获得另外一句话的词列表中与当前词具有相同词性的词w2j。
3)更新当前位置的语义向量值sim1i,若w1i与w2j相同,则对应位置sim1i的值置为1.0。若不同,则判断是否具有同义关系。利用结合了物流领域的同义词典s,判断当前词对是否具有严格的同义关系。若在该同义词典中没有找到当前词对,则使用word2vec模型,获得两个词之间的相似度wsim,若相似度大于指定阈值t,则认为二者是同义词,相应的位置仍置为1.0。若小于指定的阈值t,则相应的位置置为该词对之间的相似度wsim。
4)同样的方式获得sim2。
5)在遍历两句话词表的过程中,分别得出语句对的语义特征词集合q1={q11,q12,…,q1n},q2={q21,q22,…,q2m}。判断该语句对是否具有相同或相似的语义特征词,从q1和q2中去除相同或相似的语义特征词。若q1与q2均不为空,则对两句话的语义向量进行更新,扩大二者之间的语义距离,即两句话表达的意思是不相同。
6)计算sim1和sim2的余弦值,根据阈值判断两个句子是否具有语义相似。
以上的步骤描述中,获取词性、指定词性的词集合的计算公式如下所示:
其中,pi(i=1,2…f)是来自s1和s2的所有词性集合,prsij(r=1,2…min(k,l),i=1,2,j=1,2…min(m,n))代表第i句话,属于第r的词性的第j个词集合。k,l分别为两句话中的词性种类数。
选取下一个单词公式为:
对于任意一个属于某个词性的词集合pks1i的词w1i,需要从prs2j中选择词w2j,即选择第二句话中与w1i具有相同词性pr的词。w2(j 1)代表第二句话中的下一个词。
选取了当前对比词对之后,需要更新对应位置的语义向量值sim1i,计算公式如下:
首先,使用同义词典s去判断w1i和w2j是否具有同义关系,如果在s中没有找到这两个词,则使用word2vec计算二者的相似度wsim,根据阈值t去判断二者的关系。
检查语义特征词集合,在遍历两句话的词表的过程中,得到语义特征词集合为:q1={q11,q12,…,q1n},q2={q21,q22,…,q2m}。去除集合中相同或相似的语义特征词,并更新语义向量,计算公式如下所示:
与现有技术相比,本发明具有如下显而易见的突出实质性特点和显著优点:本发明充分考虑了物流智能客服领域的特性,整理出了适合该领域的词集合。在短文本语义相似度的计算上能够提高对相似上下文,语义却不相同问题的处理能力。并且对普通的问题,也有了很好的识别能力。让先验知识得到有效利用,提高了物流智能客服的理解能力,具有实际的商业价值。
附图说明
图1是本发明的程序框图
图2是准确率对比图
图3是f1-score对比图
图4是tp(正确接受)和tn(正确拒绝)对比图
具体实施方式
以下结合附图详述本发明的优选实施例:实施例一:参见图1,基于语义的物流智能客服问题相似度计算方法,其特征在于操作步骤如下:
1)构建专业词典、同义词典和语义特征词典
2)获得两句话的词、词性和每种词性对应的词列表s1、s2,pos,spos1、spos2,并初始化两句话的语义向量sim1,sim2。遍历其中一句话的词列表s1,获得当前词w1i,同时遍历另外一句话的词列表s2,获得另外一句话的词列表中与当前词具有相同词性的词w2j。
3)更新当前位置的语义向量值sim1i,若w1i与w2j相同,则对应位置sim1i的值置为1.0。若不同,则判断是否具有同义关系。利用结合了物流领域的同义词典s,判断当前词对是否具有严格的同义关系。若在该同义词典中没有找到当前词对,则使用word2vec模型,获得两个词之间的相似度wsim,若相似度大于指定阈值t,则认为二者是同义词,
相应的位置仍置为1.0。若小于指定的阈值t,则相应的位置置为该词对之间的相似度wsim。
4)同样的方式获得sim2。
5)在遍历两句话词表的过程中,分别得出语句对的语义特征词集合q1={q11,q12,…,q1n},q2={q21,q22,…,q2m}。判断该语句对是否具有相同或相似的语义特征词,从q1和q2中去除相同或相似的语义特征词。若q1与q2均不为空,则对两句话的语义向量进行更新,扩大二者之间的语义距离,即两句话表达的意思是不相同。
6)计算sim1和sim2的余弦值,根据阈值判断两个句子是否具有语义相似。
实施例二,参见图2-4,为了验证此方法的有效性和准确性,此次实验的阈值设置为0.5,使用的word2vec模型,由收集的物流相关的数据训练得到,并在对比方法的过程中,需要使用的word2vec模型为同一个模型。
通过设计4组实验方案分别验证方法的可行性与同类的li-similarity、word2vec和vsm算法在相同的数据集上进行准确率、f1-score和tp(正确接受)tn(正确拒绝)等指标的对比。具体的实验技术方案如下:
方案一:本发明提出的方法的可行性验证。
方案二:本发明提出的方法与li-similarity、word2vec和vsm在准确率、f1-score和tp(正确接受)tn(正确拒绝)指标的对比
实验方案一的用户问题记录如下表格1-2所示。
表1用户询问的相关问题
表2相关问题的相似性
注:1代表两句话的语义是相似的,0代表不相似。
参考图2,从准确率方面,可以看到本文所提出的算法比其他算法得到的准确率高出10%左右。在考虑语义的算法中,比如il-sim、li-similarity和word2vec,li-similarity和word2vec没有结合物流智能客服领域的特点,简单的利用所有词语之间的语义相似性,判断句子之间的语义相似性。只要对比的两句话中出现的语义相似的词的比例足够大,就认为这两句话具有语义相似。在一些问题上,这样做是完全可以的。但在物流智能客服领域内,具有不同业务的问题,往往有着相同的上下文信息。对于这样的问题,显然得到的结果是不正确的。这两种方法太依赖于word2vec所提供的的词语之间的相似性,不能够挖掘出物流智能客服领域的问题特点。这一点也是il-sim算法主要体现的方面,考虑物流智能客服领域出现的两句话中主要行为之间的语义差异,在处理上下文环境一样,却因为sfw不同而引起的语义差异的问题上,有了很好的解决效果,而且在词语之间的语义对比时,并不是对所有词之间进行同义关系检查,而是在词性相同的情况下才进行同义关系的检查,这在一定程度上消除了因为所有词都进行匹配带来的噪声影响,也增加了计算的效率。在上面的结果中,可以看到没有考虑语义信息的算法,比如vsm,只是单独的把两句话中的词语进行向量化表示,然后进行语义相似度计算,这虽然能够提高计算的效率,但在短文本相似度计算上,将词的语义对比限定在了词相同层次,严格的进行词对比是不符合语义计算的初衷的,而且得到的效果肯定也没有考虑到语义的算法好。
参考图4,tp代表“正确接受”的条目,即在语义相似的所有问题对中,能够正确预测出语义相似的条目数。tn表示的是“正确拒绝”的条目,即语义不相似的所有对比语句对中,能够正确预测出语义不相似的条目数。diff是上述二者差值的绝对值|tp-tn|,体现了算法对于“正确接受”和“正确拒绝”的判断能力。通过上图3所示的f1-score的对比图,可以看出,il-sim的f1-score明显比li-similarity和vsm的值要高,大约高处出10%左右,但与word2vec方法相差不大。通过分析图3可以发现,word2vec在语义相似的问题中保持了较高的识别率,但在语义不相似的问题中却明显偏小。说明word2vec将大部分语句对预测为语义相似,对语义不相似的问题的识别效果不好,不能够很好的区分相似与不相似,这也是其只对词语进行语义相似性判断,没有结合物流智能客服领域特性的结果。这会造成错误识别问题,将原本语义不相似的问题识别成了语义相似的问题。就会造成错误的识别用户的问题,给出错误的答案,严重影响了用户的体验。相同的,在vsm方法中,识别成语义不相似的情况比较多,其对语义信息的捕捉能力比较弱,任何一个词的不同都会造成识别错误。会出现将正确的语义相似识别成语义不相似,这会让物流智能客服整体的理解能力下降,只能理解少量问题。vsm算法对应的f1-score也不高,对语义是否相似的判断能力较差。比较li-similarity和il-sim算法中,看到二者在f1-score上相差较大,但他们对语义相似的问题上具有相同的识别规模,不同的是语义不相似问题的识别规模,而且这两种方法的|tp-tn|值相差也不大,这就说明两种方法都体现了对语义相似和语义不相似的区分能力。但li-similarity是对所有词进行语义判断,噪声影响大。也没有结合物流智能客服的领域特性,只是利用了该领域内的同义属性。这一点il-sim的区分能力更强一点,能够更好的识别出语义相似和语义不相似的问题。
1.一种基于语义的物流智能客服问题相似度计算方法,其特征在于操作步骤如下:
1)构建专业词典、同义词典和语义特征词典;
2)获得待判断语义相似度的两句话的词、词性和每种词性对应的词列表s1、s2,pos,spos1、spos2,并初始化两句话的语义向量sim1,sim2;遍历其中一句话的词列表s1,获得当前词w1i,同时遍历另外一句话的词列表s2,获得另外一句话的词列表中与当前词具有相同词性的词w2j;
3)更新当前位置的语义向量值sim1i,若w1i与w2j相同,则对应位置sim1i的值置为1.0;若不同,则判断是否具有同义关系;利用结合了物流领域的同义词典s,判断当前词对是否具有严格的同义关系;若在该同义词典中没有找到当前词对,则使用word2vec模型,获得两个词之间的相似度wsim,若相似度大于指定阈值t,则认为二者是同义词,相应的位置仍置为1.0;若小于指定的阈值t,则相应的位置置为该词对之间的相似度wsim;
4)同样的方式获得sim2;
5)在遍历两句话词表的过程中,分别得出语句对的语义特征词集合
6)计算sim1和sim2的余弦值,根据阈值判断两个句子是否具有语义相似。
技术总结