基于SinglePass算法实现无标注语料主动预测移动客服领域中突发事件的方法与流程

文档序号:15462444发布日期:2018-09-18 18:29阅读:227来源:国知局

本发明涉及自然语言处理领域的一种主动预测移动客服领域中的突发事件方法。具体涉及一种基于SinglePass算法实现无标注语料主动预测移动客服领域中的突发事件方法。主要涉及专利分类号G06计算;推算;计数G06F电数字数据处理G06F17/00特别适用于特定功能的数字计算设备或数据处理设备或数据处理方法G06F17/30信息检索;及其数据库结构。



背景技术:

随着数据的爆发式增长以及信息技术的快速发展,如何通过海量数据发现用户潜在的意图,主动预测突发事件成为目前人们关注的重点问题。突发事件是指突然发生并且短时间内受到广泛关注,且在短时间内给社会或人们带来不良影响,需要相关部门及时采取措施进行应对的事件。

因此及时发现并妥善处理突发事件,对于相关部门进行更好的网络监管,维系社会和人民生活的稳定具有重要意义。目前基于网络信息的标注语料,预测突发事件的研究比较少。发现网络突发事件是一个聚类的过程,现有的相关研究大多采用布尔模型、tfidf的文本表示模型对突发事件文本进行聚类。这两种模型由于其简单性和快速性在突发事件预测中得到广泛应用。然而,这两种突发事件的文本表示模型却存在一些问题,比如布尔模型仅有两个取值,会丢失词汇的重要性量度;tfidf的文本表示模型能够较为准确的对词语的权重进行量化,通过计算tf和idf的值来量化词语的重要程度,这种方法虽然简单、计算速度快,但是却不能捕捉到文本句子内部词语间潜在语义信息。人类语言的本质是以语义为基础的,因此挖掘句子的语义信息对于突发事件的检测起着至关重要的作用。

而且目前突发事件检测大多针对网络突发事件检测,尚没有基于移动客服领域,在没有标注语料的情况下,利用自然语言处理技术挖掘移动客服数据潜在的语义信息,主动预测突发事件的相关研究。

因此,挖掘移动客服领域数据间潜在的语义信息,主动对移动客服领域的突发事件进行预警,更好地服务客户迫在眉睫,并需要有针对性的引入自然语言处理技术。本发明方法主要研究如何在没有标注移动客服领域突发事件的情况下,利用自然语言处理技术中的聚类方法,理解用户的意图,挖掘语义信息,主动预测移动客服领域中的突发事件。

目前基于突发事件研究的关注点主要在基于网络突发事件标注语料(只有在已知网络突发事件的情况下才能将其检测出来)的基础上,从文档库中检测出相关联的、出现频率较高的突发词,然后再对这些突发词进行组合,从而能够使用突发特征来对突发事件进行描述。目前的研究仅限于网络信息领域的标注语料,不适应于移动客服领域的突发事件预警,并且不能很好满足舆情监控的需求。如果能够在突发事件尚未形成的时候将其检测出来并对其做出反应会有更加有意义。因此如何针对移动客服领域,基于无标注语料,利用自然语言处理技术,挖掘突发事件工单数据潜在的语义信息,主动预测移动客服领域的突发事件,成为移动客服领域亟待研究的重点内容。



技术实现要素:

鉴于以上所述的问题,本发明的目的在于提供一种无监督(没有标注突发事件的语料)的移动客服领域主动突发事件预测的方法,用于解决如何在无标注移动客服领域突发事件语料的基础上,学习移动客服工单数据潜在的语义信息,帮助客服决策人员更好的进行突发事件监控,提高服务质量的问题。该方法不仅不需要人工标注突发事件语料,而且可以解决主动预测移动客服领域中突发事件的问题,提高服务监控质量。

为实现上述目的,本发明基于移动客服领域,提出一种基于SinglePsss算法实现无标注语料主动预测移动客服领域突发事件预测的方法。

本发明方案主要包括预处理、构建句子向量、基于SinglePass算法聚类、寻找突发词、计算突发词相关度、返回突发事件工单六个阶段。

在预处理阶段,对移动客服领域中的工单数据进行分词、去停用词、训练词向量等预处理。

在构建句子向量阶段,采用向量相加的方法,分别将句子中每个词的词向量相加,得到句子向量。

在基于SinglePass算法聚类阶段,基于句子向量,利用SinglePass算法,对工单数据进行聚类,得到突发事件的话题。

在寻找突发词阶段,基于时间序列算法(Kleinberg)得到每个话题下的突发词。

在计算突发词相关度阶段,利用互信息得到突发词之间的相关度和突发话题热度。

在返回突发事件工单阶段,在突发话题热度最高的工单数据中,返回包含突发词相关度最高的突发词的相应工单。

本发明的技术方案如下:

步骤一:语料预处理,对移动客服领域的工单数据进行分词,利用Word2vec 工具包训练词向量,去除工单数据中的停用词及工单字段中的无关信息。

步骤二:利用向量相加的方法,将句子中每个词的词向量相加,构建句子向量。

步骤三:考虑到,本发明所述算法完全为无监督的主动预测算法,在算法开始运行之前并不知道聚类的确切个数,而且需要监控的数据量大,同时对实时性要求非常高,现有算法中的K-means算法和LDA等聚类算法均无法满足要求,故作为优选的实施方式:在本步骤中基于句子向量,利用SinglePass算法,采用欧式距离计算客服工单数据句子间语义的相似度,基于句子语义相似度结果进行聚类,得到突发事件的话题。

步骤四:构建每个所述话题下每个词在所有时刻的时间序列,基于时间序列算法(Kleinberg)得到突发词信息,将突发强度大于2.0的词作为突发词,得到突发事件的突发词。

关于突发强度的选值,由于突发强度依赖于噪音数据的数量,当突发强度为1.0时,会产生过多的噪音数据;当突发强度大于3.0时,会过滤掉有用的突发词;故作为优选的实施方式,本发明设定突发强度的阈值为2.0。

步骤五:利用互信息计算突发词两两之间的相关度。

步骤六:基于突发词相关度,得到相关度最高的共现突发词,计算每个话题的突发热度,得到突发热度最高的话题,并从该话题中抽取出包含突发词相关度最高的共现突发词的相应工单。

由于采用了上述技术方案,本发明给出的基于SinglePass算法实现无标注语料主动预测移动客服领域中突发事件的方法,能够针对移动客服工单数据,进行标注语料的突发事件预测,相交于传统的给定语料算法,本发明更加适用于实际的客服工作场景,能够有效的预测移动客服领域突发事件的产生;而且相较于其它算法,本发明算法在计算量、预测准确度等各个方面均具有相当的优势,十分适于在移动客服领域推广使用。

附图说明

为了更清楚的说明本发明的实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图做一简单地介绍,显而易见地,下面描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动和不以商业为目的的前提下,还可以根据这些附图获得其它的附图。但是出于商业数据的保密性,如果需要得到移动客服工单数据,则需要和作者所在的公司协商,征求作者所在公司同意后方可得到移动客服领域突发事件的所有原始数据。

附图1是本发明方法的基本流程图。

附图2是摘自客服领域突发事件语料的例句样例图

附图3是例句的分词结果图

附图4是例句词向量的示意图

附图5是例句的句子向量的示意图

附图6基于SinglePass聚类算法的结果示意图

附图7得到的突发词示意图

附图8突发词相关度计算结果示意图

附图9返回结果工单示意图

具体实施方式

下面结合附图1-9对本发明方法做详细说明,本实例以发明技术方案为前提进行实施,给出了详细的实施方式和具体的操作过程,但发明的保护范围不限于下述的实施实例。

主动对移动客服领域的突发事件进行预警的目的在于及时发现突发事件,更好的进行舆情监控,提高服务质量。

由于没有标注语料,所以本发明实施过程如下:首先,对移动客服突发事件语料进行预处理,采用无监督的SinglePass聚类算法找出突发事件的话题,然后寻找突发词,计算突发词相关度和每个话题的突发热度,得到突发热度最高的话题。最后在突发热度最高的话题中,将包含突发词相关度最高的共现突发词工单返回,即得到突发事件。

实验语料采用的是移动客服领域突发事件数据集(河北移动公司2017年7 月5日10086来电的客服工单记录数据),共有8936句。该数据集的突发事件为“缴费未开机”,该突发事件客户投诉的集中时间在上午9:54到10:04,投诉工单记录数目为29件。给出突发事件是为了验证其算法的效果。

图2是移动客服领域突发事件数据集的两条工单记录,包含标注格式和详细信息。

在这个句子中,句子以”|”分割,各个字段分别表示统计日期、省份编码、省份名称、地市编码、地市名称、工单id、工单内容、用户号码、问题类别、营销活动、渠道类别、业务标签、业务名称、业务名称细分、问题标签1、问题标签2、问题标签3、问题标签4、问题标签5、地址信息、受理时间、归档时间、归档内容、工单类型、受理工号、归档工号、责任部门、责任原因。其中第7个字段是工单的具体内容。

结合附图1,本发明详细的实施步骤如下:

步骤一:对移动客服领域突发事件语料进行预处理,语料格式如附图2所示。使用哈工大LTP分词工具包(https://github.com/HIT-SCIR/pyltp)进行中文分词,分词结果如附图3所示;使用Google开发的Word2Vec工具包 (https://code.google.com/p/word2vec/)训练词向量,即将客服工单句子内部词语的语义信息表示稠密低维实值向量,词向量结果如附图4。本发明使用词向量大小为50维,窗口大小为5,训练使用Skip-gram模型,其他参数均采用默认参数。

步骤二:利用向量相加的方法,将句子中每个词的词向量相加,构建句子向量,捕捉客服工单句子内部词语间潜在的语义信息,如附图5所示。设句子 si={w1,w2,...wm},1≤i≤8936,其中w1,w2,...wm表示句子si包含的词,m表示句子si包含词的个数,句子si中每个词对应的词向量分别为v1,v2,...vm,其中词向量vi的维数均为50维。则句子向量svec的计算方法如公式1所示:

svec=v1+v2+...+vm (1)

步骤三:基于句子向量,利用SinglePass算法,采用欧式距离计算客服工单句子间的语义相似度,基于语义相似度结果进行聚类,得到突发事件的话题。 SinglePass算法的聚类结果如附图6所示,其中每个类用“-------------”分开,在每个类中,cluster冒号后面的数字表示聚类的编号;[]内表示该类内包含的句子编号,第一个句子用0表示;接下来的一行表示移动客服突发事件数据集中句子的编号;node冒号后面的数字表示该类包含的句子数。SinglePass算法的原理如下:

1.接受移动客服领域一条工单记录R,初始化话题工单类Cluster={}。

2.计算R与当前已有话题工单类中的各个话题工单类中的每一条工单的相似度,取最大值作为与该话题工单类的相似度;

3.在所有话题工单类中选出与R相似度最大的一个,并记录此时的相似度值S;相似度计算采用欧式距离计算工单记录间的语义相似度。设两条工单记录R1和R2的句子向量分别为svec1={x1,x2,...xn}和svec2={y1,y2,...yn},其中n=50。欧式距离的计算公式如公式2所示:

4.如果S大于聚类阈值Tc,工单R被分配给这个话题工单类,跳转至(6);

5.如果S小于聚类阈值Tc,说明工单R不属于当前已有的话题工单类,创建新话题工单类并将工单R加入该新话题工单类;

6.聚类结束,等待新工单的到来。

步骤四:基于步骤三,分别构建每个话题下每个词在所有时刻的时间序列,基于时间序列算法(Kleinberg)得到突发词信息,将突发强度大于2.0的词作为突发词,得到突发事件的突发词,如附图7,每一行包含的信息为:以空格分开,各字段分别表示突发词/突发词词性、突发强度、保持该词最强突发强度的开始时间、保持该词最强突发强度的结束时间、寻找该突发词的计算时间。基于 Kleinberg算法寻找突发词的具体过程如下:

1、输入每个词的时间序列。

2、基于时间序列Kleinberg算法寻找突发词。

在本发明中Kleinberg算法通过提出状态模型来模拟突发行为。该模型设定低状态和高状态两个状态,突发事件行为可以被模拟成一段周期内高低状态的转换。一个事件中下一个消息到达时间间隔服从指数分布(无记忆分布),如公式3所示:

f(x)=ae-ax (3)

其中时间间隔期望E(x)=a-1,其中a是数据到达速率。低状态下、高状态下消息到达的时间间隔均服从指数分布,速度率分别为a和s*a,其中s>1。两个状态之间的转移概率为p,其中p∈(0,1)。

设指定事件时间间隔序列gaps为x=(x1,x2,...xn),存在状态序列q=(qi1,qi2,...qin),在该状态序列下,事件时间间隔序列概率密度函数定义为公式4:

利用贝叶斯原理,得到后验概率如公式5所示:

其中b是状态转移次数。最大化上述后验概率,等价于最小化下面公式6:

其中第三项和第四项为常数项。所以,设计代价函数cost-function如公式7所示:

上述模型只包括两个状态,对于突发事件中出现的嵌套层次结构无法模拟。因此Kleinberg将上述的两个状态模型扩展到无限状态模型。

设构造的无限状态序列q0,q1,q2,...qi,...,一段时间周期T,指定事件时间间隔序列gaps为x=(x1,x2,...xn),则平均速率a=n/T。设定q0的速率为a,qi(i>0)速率为(si)*a;对每一个i和j,定义从状态qi转换到qj的转移代价函数为τ(i,j),当 j>i且r>0时,从低状态转换到高状态时,转移代价函数为公式8:

(j-i)γ*ln(n) (8)

当j<i时,转移代价为0。其中γ是给定的一个参数,默认被设定为1。

上述的无限状态机可通过如下理论退化成有限状态机。当存在最高的状态k:设定和其中δ(x)>0,因为所有的时间间隔均为正向。定义代价函数为公式9所示:

其中τ(it,it+1)为状态转移代价,然后可以采用动态规划去寻找最优状态集合。最终通过无限状态模型可以检测和追踪突发事件。

更进一步的,为了保证能够应对实际应用场景,作为优选的实施方式,对 Kleinberg算法模型做进一步的修改,采用正态分布(公式10)

来模拟消息单位时间频次分布。该算法通过模拟消息单位时间频次分布,得到词语在每个时刻的词频信息,基于词频信息计算突发强度(在本发明中突发强度定义为保持一个状态以及更高状态的最大时间间隔)来寻找突发词。可以有效的兼顾现实生活中,计算的成本和最小的时间粒度,比如小时,分钟等。

3、将突发强度大于2.0的词作为突发词。

步骤五:利用互信息(Mutual Information,MI)来衡量突发词两两之间的相关度,附图8是突发词相关度计算结果示意图,每一行包含信息如下:以空格分开,各字段分别表示突发词1、突发词2、突发词1和突发词2都出现的开始时间戳、突发词1和突发词2都出现的结束时间戳、突发词1和突发词2的相关度。两个词关联性越强,互信息就越大。当两个词的关联度大于1时,MI 大于0;当两个突发词关联度弱时,MI等于0;当两个词不相关时,MI小于0。本发明计算突发词相关度的过程如下:

设移动客服领域突发事件工单数据集合为{C},总的工单数目为N,其中含有突发词wx的工单数目为Nx,含有突发词wy的工单总数是Ny,含有{wx,wy}的工单总数是Nxy,则突发词相关度Corr(wx,wy)的计算公式如公式11所示:

Corr(wx,wy)=log10(N/Nx)*log10(N/Ny)*Nxy/(Nx+Ny-Nxy) (11)

步骤六:首先,基于步骤五得到的突发词之间的相关度,找到突发词相关度最高的共现突发词,计算每个话题的突发热度。

设基于SinglePass算法聚类出的话题集合T={t1,t2,...tm},每个话题ti同时包含突发词{wx,wy}的工单数目为Mi,则该话题的突发热度Hi的计算过程如公式12 所示:

Hi=Mi/N (12)

然后,对话题的突发热度进行从大到小的排序,得到突发热度最高的话题。最后,从突发热度最高的话题中抽取出包含突发词相关度最高两个突发词的相应工单,即为移动客服领域的突发事件。返回的突发事件结果如附图9所示。

以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,根据本发明的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明的保护范围之内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1