针对短文本的数据挖掘方法及系统与流程

文档序号:18030136发布日期:2019-06-28 22:34阅读:234来源:国知局
针对短文本的数据挖掘方法及系统与流程

本发明涉及数据挖掘技术领域,更具体地说,涉及一种针对短文本的数据挖掘方法。



背景技术:

随着互联网、移动通信技术的发展,人们越来越频繁地在网络上表达观点或者寻求帮助:如通过微博等社交网络表达想法、在相关论坛上提出问题、又或者通过商户的网络客服来进行咨询或投诉等。在这一背景下,必然会产生大量的非结构化的短文本数据,而这些数据中往往蕴含了用户对热点主题的关注程度以及最真实的反馈。

在客服对话数据或微博、金融论坛、应用商店、社交网络上,均蕴含了大量用户针对热点、产品或服务的反馈信息。如能针对这些非结构化数据进行提取与分析,将能够及时获得评价、反馈,进而有利于对产品或服务进行更新/升级。对于这些价值巨大的数据,若由相关部门来进行日常分析,往往需要投入大量的人力、效率低下。因此,提升对于这类数据的文本聚类分析与数据挖掘能力,特别是自动获取用户关心的热点问题的能力,是本领域的研究方向。

然而,在现有技术中一些技术方案不成熟,这归因于多种原因,包括:网络上的用户对话、评论数据等口语化严重,信息价值零散;语言风格不规范,不同性格的用户表达方式各异;较短的评论信息在数量较少时不能反映用户真实想法,而是需要结合语境才能够理解;这些因素都给传统的主题提取方法带来了挑战。

其次,利用机器学习中的聚类方法进行主题挖掘时,模型效果很大程度上依赖于预设定的聚类个数,且参数的确定没有一套明确的指导方法,因此往往需要多次尝试方可确定合适的参数,效率较低。

再次,传统的自动文摘方法面向的对象是一篇文档,文档中各句子存在语法、内容上的联系。而在短文本主题抽取的任务中,需要从若干个相似的短文本中提炼出摘要,各短文本间的关联程度较弱。



技术实现要素:

本发明的目的在于提供一种针对短文本的数据挖掘方法,其至少能够克服或考虑现有技术中在主题提取方面存在的一些不利因素。

为实现上述目的,本发明提供一种技术方案如下。

一种针对短文本的数据挖掘方法,包括如下步骤:a)、对第一短文本集合进行预处理以提取第一语料;其中,第一短文本集合包括多个短文本;b)、基于第一语料来构建第一词向量模型,以使得每个短文本对应于至少一个词向量;c)、确定多个短文本各自的词向量统计信息,利用第一聚类方法对多个短文本进行聚类以得到第一聚类结果,第一聚类结果中的每一类包括至少一个短文本;d)、对每一类,确定该类中包括的至少一个短文本各自对应的至少一个词向量,并基于各词向量的词频信息来确定该类的至少一个关键词;以及e)、对第一聚类结果,将至少一个关键词之间的重叠量满足第一条件的不同类进行合并,以形成第二聚类结果。

优选地,该方法还包括:对第二聚类结果中的每一类,确定该类对应的摘要句子,其中,摘要句子与该类的至少一个关键词满足第二条件。

优选地,第二条件包括:摘要句子的关键词命中得分不低于第一阈值,简明性得分不低于第二阈值。

优选地,第一条件包括:在第一类的至少一个关键词与第二类的至少一个关键词之间的重叠量大于或等于合并阈值时,将第一类与第二类合并。

优选地,确定多个短文本各自的词向量统计信息包括:针对每个短文本,确定该短文本对应的至少一个词向量的平均词向量。

优选地,词频信息包括词向量的tf-idf值,其中确定类的至少一个关键词包括:以tf-idf值满足第三条件的词向量形成为至少一个关键词。

优选地,第一短文本集合来源于以下中的至少一项:用户与客服的对话信息;社交网络传播的信息;会议论坛记录的信息。

本发明还提供一种针对短文本的数据挖掘系统,包括:语料提取单元,其对第一短文本集合进行预处理,以提取第一语料;其中,第一短文本集合包括多个短文本;模型构建单元,其基于第一语料来构建第一词向量模型,以使得每个短文本对应于至少一个词向量;聚类产生单元,其确定多个短文本各自的词向量统计信息,利用第一聚类方法对多个短文本进行聚类以得到第一聚类结果;其中,第一聚类结果中的每一类包括至少一个短文本;关键词确定单元,其对每一类,确定该类中包括的至少一个短文本各自对应的至少一个词向量,并基于各词向量的词频信息来确定该类的至少一个关键词;以及聚类合并单元,其对第一聚类结果,将至少一个关键词之间的重叠量满足第一条件的不同类进行合并。

针对现有技术中存在的技术问题,本发明提供针对短文本的数据挖掘方法,其通过基于关键词来进行的聚类合并对聚类结果进行自动调整,克服了聚类个数难以确定的问题,这种二次聚类方式显著提升了聚类的准确性,使得聚类结果更符合技术人员预期。该方法还可以进一步自动形成每一类对应的摘要句子,使得聚类结果直观化。

附图说明

图1示出本发明第一实施例提供的针对短文本的数据挖掘方法的流程示意图。

图2示出本发明第二实施例提供的针对短文本的数据挖掘系统的模块结构示意图。

图3示出作为示例的网络客服关于云闪付app对话数据。

图4示出提取句段的示意图。

图5示出提取否定窗口的示意图。

图6示出构建各类的连接矩阵的示意图。

图7示出摘要润色修改效果的示意图。

图8示出主题抽取结果的示意图。

具体实施方式

在以下描述中提出具体细节,以便提供对本发明的透彻理解。然而,本领域的技术人员将清楚地知道,即使没有这些具体细节也可实施本发明的实施例。在本发明中,可进行具体的数字引用,例如“第一元件”、“第二装置”等。但是,具体数字引用不应当被理解为必须服从于其字面顺序,而是应被理解为“第一元件”与“第二元件”不同。

本发明所提出的具体细节只是示范性的,具体细节可以变化,但仍然落入本发明的精神和范围之内。术语“耦合”定义为表示直接连接到组件或者经由另一个组件而间接连接到组件。

以下通过参照附图来描述适于实现本发明的方法、系统和装置的优选实施例。虽然各实施例是针对元件的单个组合来描述,但是应理解,本发明包括所公开元件的所有可能组合。因此,如果一个实施例包括元件a、b和c,而第二实施例包括元件b和d,则本发明也应被认为包括a、b、c或d的其他剩余组合,即使没有明确公开。

如图1所示,本发明第一实施例提供一种针对短文本的数据挖掘方法,其包括以下步骤s10-s18。需要说明的是,本领域技术人员在对本发明的思想进行透彻理解的基础上,能够对这些步骤进行组合、拆分、省略、简单变形或替换,而形成不同的实施例,这些实施例应落入本发明的范围。

步骤s10、对第一短文本集合进行预处理以提取第一语料。

其中,第一短文本集合包括多个短文本,它们来源于同一数据源。预处理过程至少包括分词处理,还可以进一步包括去停用词、非中文字符、数字以及纠错等处理,处理完成后的词数据集合称为第一语料。作为示例,数据预处理可以由jieba中文分词工具包来实现。

优选情况下,在该步骤中可以辅以适当的关键词筛选方法。例如,在用户投诉平台中,只提取包含否定词和疑问词的句子或短语来作为所提取的语料。在难以确定关键词的场合可省略该步骤。

步骤s12、基于第一语料来构建第一词向量模型。

在本发明中,词向量模型对于同一数据源是统一的,同一的词向量模型能够体现出数据的共性。通过该词向量模型能够使得来源于该数据源的每个短文本对应于一个或多个词向量,词向量是计算机可以用来计算的词单位。可以理解,相似的两个短文本可能存在多个相同的词向量,但也必然存在差异之处,例如,分别包括彼此不同的词向量;或者,一个短文本的词向量较多,另一个短文本的词向量较少。

针对不同的数据源,优选地构建不同的词向量模型,以反映不同数据源各自的特性。根据本发明,数据源可以包括用户与客服的对话信息;社交网络传播的信息;以及,会议论坛记录的信息。

在构建词向量模型时,如果第一语料包含的样本量足够,就可以仅依赖第一语料来完成第一词向量模型的构建及参数训练。在第一语料不够时,利用外部的一个或多个语料库(例如搜狗互连网语料库等)来训练第一词向量模型,使得其参数得到优化。

备选地,可以直接应用现有技术中已有的词向量模型而无需另外构建,例如,google开源的中文向量模型。

步骤s14、确定多个短文本各自的词向量统计信息,利用第一聚类方法对多个短文本进行聚类。

在聚类之前,需要确定每个短文本的特征,以使得相似的短文本被归为一类而显著不同的短文本被归为不同的类。本发明中,采用短文本的词向量统计信息作为特征来表征一个短文本。作为示例,确定每个短文本对应的至少一个词向量的平均词向量来表征该短文本。在聚类中,平均词向量相差不大的那些短文本会被归为一类。

通过聚类,得到第一聚类结果,第一聚类结果中的每一类包括至少一个短文本。作为示例,聚类方法可以选用k-means聚类,其他的层次聚类方法,或者采用多种不同聚类方法的组合。

步骤s16、对每一类,确定该类中包括的至少一个短文本各自对应的至少一个词向量,并基于各词向量的词频信息来确定该类的至少一个关键词。

需要说明的是,在得到第一聚类结果(其中每一类包括至少一个短文本)时也能够得到每一类对应的多个词向量(其中可能存在重复的词向量),这是因为根据第一词向量模型,每个短文本对应于一个或多个词向量。换言之,在该步骤中,首先确定的是一个在三层数据(类-短文本-词向量)之间的对应关系。

在确定上述对应关系之后,针对每一类,基于各词向量的词频信息来确定该类的一个或多个关键词。优选情况下,词频信息采用词向量的tf-idf值来表征,从而,以tf-idf值满足第三条件的词向量形成为该类的至少一个关键词。作为第三条件的示例,将各词向量的tf-idf值按降序排列,提取tf-idf值较大的前n个词向量,它们各自对应的词可以被选定为关键词。tf-idf是本领域用于信息检索与数据挖掘的常用加权算法,tf表示词频信息,idf表示逆文本频率指数。

步骤s18、对第一聚类结果,将至少一个关键词之间的重叠量满足第一条件的不同类进行合并。

将不用类进行合并所依据的第一条件包括:第一类的(至少一个)关键词与第二类的(至少一个)关键词之间的重叠的关键词数量大于或等于合并阈值。第一条件得到满足时,即将第一类与第二类合并。

在具体实现时,作为示例,基于第一聚类结果可以建立关系矩阵l,其中每个元素li,j是第i类与第j类的关键词之间的重叠量。合并阈值可以根据经验来设定,也可根据关系矩阵l的统计信息(例如各元素的平均值,即,类之间的平均重叠量)来设定。

对第一聚类结果中的不同类执行合并步骤后,可以形成第二聚类结果,该第二聚类结果所包含的类的数量将必然少于或等于第一聚类结果的类的数量。因此,第二聚类结果可以视为对第一聚类结果的再聚类,这一过程实现了信息的精炼,而同时每一类又能够高度区别于其他类。

作为进一步的改进,在步骤s18之后还可以加入步骤s19,该步骤用于提取摘要句子。具体来说,对第二聚类结果中的每一类,分别确定该类对应的摘要句子,摘要句子与每一类各自的至少一个关键词满足第二条件。

作为示例,第二条件包括:摘要句子的关键词命中得分不低于第一阈值,同时,简明性得分不低于第二阈值。关键词命中得分越高,说明该摘要句子对于热点主题的描述程度越集中,句子简明性得分越高,则表明摘要句子越简明精炼,包含的口语、噪声等干扰信息越少。其中,关键词命中得分表示一个关键词在句子中的词语级比例,句子简明性得分表示非口语化部分在句子中的字符级比例。优选情况下,针对第二聚类结果中的每一类,以综合得分最高为基准,以该类对应的至少一个关键词组成一个句子,并进行去除重复长子串、无效数字、问候语、词语纠错等润色操作,最终形成摘要句子。

以下示出上述第一实施例的一种具体应用场景。

实例:网络客服对话数据热点问题挖掘

数据来源为某月的银联网络客服关于云闪付app对话数据,有效对话数量为m项。原始数据如图3所示:(已隐藏客户个人信息)。

步骤一、评论数据预处理

对收集到的客服对话数据语料及进行预处理,主要包括分词、去停用词、非中文字符、数字等,并进行词语纠错,同时去掉“xxx号客服人员说”、“访客xxx说”等无意义格式噪声,得到原始语料。

针对网络客服对话这一特定场景,抽取包含用户关键意图的语句可以具体地通过以下几步来进行。

首先,提取客户第一句段。将对话的某一方在一次说话中的连续内容定义为一个“句段”,如图4所示,两个黑框中选定的内容分别是客户的第一、二句段,其中实线框的内容就是需要提取的第一句段。

其次,提取用户数据的否定窗口。在咨询或者投诉的过程中,大多数情况下,客户会借助否定词或者疑问词来提出遇到的问题,因此可以找到第一个否定词或者疑问词所在的短句作为窗口中心,设置窗口大小为3,提取否定窗口,具体过程如图5所示。

步骤二、文本模型的构造

针对步骤一预处理过的语料,采取google提出的word2vec方法中的skip-gram模型,利用gensim库中的word2vec函数进行训练,其中设定的词向量维度设定为200,skip-gram模型的窗口大小为5。词向量的训练效果如表1、2所示,选取“云闪付”和“711”这两个词语作为展示对象。

对步骤一中的核心句进行分词之后,根据训练好的词向量模型,将分词的平均词向量作为该短文本的编码特征,计算方式示例如下:

对每一个样本均做相同的处理,最终得到一个m*200的特征矩阵作为下一步应用的聚类模型的输入。

步骤三、基于关键词连接矩阵的文本聚类

将上述得到的特征矩阵作为输入,利用scikit-learn机器学习工具包进行k-means聚类。需要注意的是,为了与后续的聚类合并方法配合使用,应将聚类个数设定稍微偏大,在这一场景下,将聚类个数设为120。对于k-means聚类结果的每一类,按照表6提供的公式计算各词的tf-idf值,并从大到小排序,选取前n(本实例中设为5)个词作为该类的关键词。记语料库中的文件为d1,d2,…,dm,出现的词语为t1,t2,…,tn,则有

其中,ni,j表示词语ti在文件dj中出现的次数,逆文本频率指数如下:

其中,|d|为语料库的文件总数,|{j:ti∈dj}|为包含词语ti的文件数目,词语ti在文件dj中的tf-idf值计算如下:

tf-idfi,j=tfi,j×idfi

构建各类的连接矩阵l:li,j为第i类的关键词与第j类的关键词的重叠个数。如图6所示,计算出i,j类的关键词后,可以得出li,j=3,如此类推得到矩阵l的全部元素。

设定合并阈值为3,根据下述公式以及矩阵l得到合并矩阵h,过程见下图。并根据合并矩阵画出无向图,将直接或间接相连的若干类合并为新的同一类。

最终根据关键词连接矩阵对原聚类结果进行合并,可以将120类别合并降低为69类,经检查,模型能够成功将相似簇合并为一类,示例参见表3。

表3

步骤四、基于关键词评分的聚类摘要自动提取

分别计算步骤三中每一类的各个句子关键词命中得分、句子简明性得分。其中,关键词命中得分=属于关键词的词语数量/全部词语数量,句子简明性得分=非虚词部分的字符长度/句子字符长度。具体计算过程可见下表4,类别i中的样本“我昨天在云闪付app冲了50话费没有到账”的关键词命中得分、句子简明性得分分别是0.43和0.7。

表4

随后,过滤掉字符长度小于7的样本,在关键词命中得分最高的集合中选出简明性得分最高的句子作为该类的摘要。然后,针对摘要中可能存在的下列问题:口语化严重、部分短句无意义、用户反复说相同内容、包含用户私人信息(手机号、银行卡号)等问题,依次通过例如以下步骤进行摘要润色修改:去除“你好”、“啊”、“呀”等口语化词语;进一步过滤摘要,只保留含有关键词的句段,重新拼接成新的摘要;检索重复子串,对长度占比大于40%的重复子串进行去重化处理;利用正则表达式去除字符长度占比大于50%的数字部分。摘要润色修改效果如图7所示。

结果分析

图8示出该实例的主题抽取结果,排名靠前的问题包括四类:

“云闪付充值话费不到账”问题,云闪付安装升级类问题,云闪付账户类问题,云闪付业务功能类问题。这4类为用户关心的热点问题。

本发明第二实施例提供一种针对短文本的数据挖掘系统,其包括以下各单元:语料提取单元201、模型构建单元202、聚类产生单元211、关键词确定单元220以及聚类合并单元231,如图2所示。

语料提取单元201对第一短文本集合进行预处理以提取第一语料,预处理过程可以包括分词,去停用词、非中文字符等。模型构建单元202与语料提取单元20耦合,其基于第一语料来构建第一词向量模型,以使得每个短文本对应于至少一个词向量。

聚类产生单元211与语料提取单元201、模型构建单元202分别耦合,其确定多个短文本各自的词向量统计信息,利用第一聚类方法对多个短文本进行聚类以得到第一聚类结果。

关键词确定单元220与聚类产生单元211耦合,其对每一类确定该类中包括的至少一个短文本各自对应的至少一个词向量,并基于各词向量的词频信息来确定该类的至少一个关键词。

聚类合并单元231与关键词确定单元220相耦合,其对第一聚类结果进行如下处理:将至少一个关键词之间的重叠量满足第一条件的不同类进行合并,并可以输出第二聚类结果。优选情况下,第二聚类结果还可以反馈至聚类产生单元211,以帮助更新聚类产生单元211采用的聚类算法或其中的聚类参数。在适当的情况下(例如,第二聚类结果不符合预期),还可以调整聚类算法,进行新一轮的聚类产生以及聚类合并步骤。

在本发明的一些实施例中,系统的至少一部分可采用通信网络所连接的一组分布式计算装置来实现,或,基于“云”来实现。在这种系统中,多个计算装置共同操作,以通过使用其共享资源来提供服务。

作为一种示例,聚类产生单元211设置于云端,聚类产生过程将占用较大的计算资源,因此,可以采用大规模或先进计算机来实现,并为多个不同的短文本数据挖掘系统所共享。相应地,其他单元可以设置于系统本地端。

基于“云”的实现可提供一个或多个优点,包括:开放性、灵活性和可扩展性、可中心管理、可靠性、可缩放性、对计算资源所优化、具有聚合和分析跨多个用户的信息的能力、跨多个地理区域进行连接、以及将多个移动或数据网络运营商用于网络连通性的能力。

上述说明仅针对于本发明的优选实施例,并不在于限制本发明的保护范围。本领域技术人员可能作出各种变形设计,而不脱离本发明的思想及附随的权利要求。

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