一种文本聚类方法及装置
技术领域
本发明涉及自然语言文本智能分析技术领域,尤其涉及一种文本聚类方法及装置。
背景技术
文本聚类是自然语言文本智能分析技术领域的一种应用,通过利用文本之间的相似度实现相似文本的聚集,便于用户对同类别文本数据的分析处理。
目前的文本聚类方法主要包括有监督学习和无监督学习。其中,有监督学习方法需要提前获知训练集中文本所属的类别,通过建模得到训练集文本和所属类别之间的关系,进而实现未知类别文本数据的分类。但是,该方法的缺点在于,对于不属于上述类别的文本数据,无法得到其所属类别。
另一方面,如果没有已经标记的文本数据,对于文本分类、情感分析等问题,就只能用一些传统的无监督学习的方法,无监督的方法大部分是利用词向量计算句向量,然后根据句子相似度进行聚类,形成有标签的文本数据集,得到文本聚类结果。但是,现有的文本聚类方法,每次均需要统计待聚类文本中特征词的词频,得到相应的权重,当待聚类文本规模比较大时,该计算过程会延长文本聚类的时长,降低文本聚类的效率;同时,现有的权重计算方法中,词频高的特征词相对权重也高,无法充分考虑除主要特征词以外的其他特征词对整个待聚类文本的影响,聚类效果相对较差。
发明内容
鉴于上述的分析,本发明旨在提供一种文本聚类方法及装置,用以解决现有文本聚类时间长、效率低、效果差的问题。
本发明的目的主要是通过以下技术方案实现的:
一方面,提供了一种文本聚类方法,包括以下步骤:
采集数据构建文本库,得到所述文本库中的所有特征词,根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,将特征词及对应的特征词权重保存至数据库中;
采集各待聚类文本,获取所述各待聚类文本中的特征词;
根据所述各待聚类文本中的特征词及其在所述数据库中的权重,得到各特征词的词向量、各待聚类文本的句向量以及所有待聚类文本的特征向量;
利用所述待聚类文本的特征向量,对所述待聚类文本进行聚类。
在上述方案的基础上,本发明还做了如下改进:
进一步,所述根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,具体执行以下操作:
若特征词出现的频次小于频次阈值,剔除此类特征词;
将剩余各特征词词频的倒数,作为相应特征词对应的权重。
进一步,得到文本库或待聚类文本后,对文本库或待聚类文本中的数据进行分词、去停用词处理,得到文本库或待聚类文本中的所有特征词。
进一步,所述根据所述各待聚类文本中的特征词及其在所述数据库中的权重,得到各特征词的词向量,具体执行以下操作:
利用所述待聚类文本中的特征词训练word2vec模型,并利用训练好的所述word2vec模型得到各特征词对应的词向量,各特征词的词向量表示为v1×D,D为词向量的空间维度。
进一步,执行以下操作得到各待聚类文本的句向量:
根据各待聚类文本中包含的特征词,计算各待聚类文本的句向量,其中,第s个待聚类文本句向量Vs表示如下:
其中,Ns表示第s个待聚类文本句子中包含的词向量个数;vs,i表示第s个待聚类文本句子第i个词向量;ws,i表示第s个句子第i个词向量的权重为该特征词在所述数据库中对应的权重。
进一步,通过以下方式所有待聚类文本的特征向量;
根据待聚类文本中各句子的句向量,构造待聚类文本的特征向量SN*D:
SN*D=[V1,V2...,VN]T (2)
其中,N表示所有待聚类文本句子的数量,D表示句向量的维度,同词向量的维度。
进一步,所述利用所述待聚类文本的特征向量,对所述待聚类文本进行聚类,执行以下操作:
对所述待聚类文本的特征向量SN*D进行奇异值分解,得到平滑后的整个文本句向量矩阵S′N*D;
根据平滑后的整个文本句向量矩阵S′N*D,利用聚类算法,对待聚类文本进行聚类。
进一步,利用层次聚类算法,实现待聚类文本的聚类:
将向量矩阵S′N*D中的每一句向量作为一个单独的簇;
计算不同簇之间的余弦距离,将所述余弦距离小于一定阈值的句向量合并为一个簇;重复该步骤,直到实现待聚类文本中所有句向量的分类。
另一方面,提供了一种与上述文本聚类方法对应的文本聚类装置,所述装置包括:
特征词权重计算模块,用于采集数据构成文本库,得到所述文本库中的所有特征词,根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,将特征词及对应的特征词权重保存至数据库中;
待聚类文本特征词获取模块,用于采集各待聚类文本并获取所述各待聚类文本中的特征词;
待聚类文本特征向量获取模块,用于根据所述各待聚类文本中的特征词及其在所述数据库中的权重,得到各特征词的词向量、各待聚类文本的句向量以及所有待聚类文本的特征向量:
文本聚类模块,用于利用所述待聚类文本的特征向量,对所述待聚类文本进行聚类。
进一步,所述根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,具体执行以下操作:
若特征词出现的频次小于频次阈值,剔除此类特征词;
将剩余各特征词词频的倒数,作为相应特征词对应的权重。
本发明有益效果如下:本发明通过预先采集大量的各类网络数据,利用各类网络数据得到大量的特征词,这些特征词的权重信息能够有效表征其出现在一般句子中的概率,并将这些特征词的权重直接作为待聚类文本中相应词向量的权重,能够有效缩短计算时间,待聚类文本的规模越大,本发明方法缩短计算时间的效果越明显。同时,通过本发明中方法设置的特征词权重,出现频率越高,相应的权重越小,使得在计算待聚类文本句向量的过程中,降低主要特征词的权重,充分考虑除主要特征词以外的其他特征词对整个待聚类文本的影响,有效提升了聚类效果。
本发明中,上述各技术方案之间还可以相互组合,以实现更多的优选组合方案。本发明的其他特征和优点将在随后的说明书中阐述,并且,部分优点可从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过说明书、权利要求书以及附图中所特别指出的内容中来实现和获得。
附图说明
附图仅用于示出具体实施例的目的,而并不认为是对本发明的限制,在整个附图中,相同的参考符号表示相同的部件。
图1为本发明第一实施例中的文本聚类方法流程图;
图2为本发明第二实施例中的部分待聚类文本;
图3为本发明第二实施例中的部分聚类结果;
图4为本发明第三实施例中的文本聚类装置示意图。
具体实施方式
下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的原理,并非用于限定本发明的范围。
本发明的第一实施例中,公开了一种文本聚类方法,流程图如图1所示,包括以下步骤:
步骤S1:采集网络上的各种数据构成文本库,得到所述文本库中的所有特征词,根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,将特征词及对应的特征词权重保存至数据库中;
其中,本实施例通过网络爬虫算法采集各类新闻、百科、商城等各种网络数据构成文本库,所述数据具备涉及范围广、数据量大、具有代表性等特征,保证通过这种方式计算出的特征词的频率,能够代表特征词在一般自然语言环境下出现的频率;
得到文本库后,对文本库中的数据进行分词、去停用词处理,得到文本库中的所有特征词。
其中,所述分词是指按照语素对文本进行划分的手段,本发明对分词处理的方式不做限制,只要能够得到待聚类文本中的特征词即可。
所述停用词是指没有实际含义的功能词,如“吗”、“呢”、“了”、“the”等词,通过去停用词达到提升特征词质量及本文处理效率的目的。
得到文本库中的所有特征词后,计算各特征词在文本库所有特征词中出现的频次:
若某些特征词出现的频次小于频次阈值,表示很少有人用到这些词,剔除此类特征词;这样做一方面可以减少词汇表的词汇量;另一方面,当计算句向量可以忽略这些词的词向量,防止由于这些词权重大而影响句向量的表示;
将剩余各特征词词频的倒数,作为相应特征词对应的权重;
通过词频能够确定当前特征词在文本库中的权重大小,权重越大相当于该特征词在文本库中的重要程度越大,反之重要程度越小。
步骤S2:采集各待聚类文本,获取所述各待聚类文本中的特征词;
本发明中采集的待聚类文本,其内容为所述文本库中数据的子集。即,保证文本库中包含了待聚类文本的各特征词。本发明不对待聚类文本的具体形式做任何限制;待聚类文本可以是任何题材的文本,如:通过网络爬虫算法得到的网络新闻数据、中文***数据等;对待聚类文本的文件格式也没有要求,只要能够正常读取待聚类文本数据即可;
经过与上述相同的分词、去停用词处理,得到各待聚类文本中的所有特征词。
步骤S3:根据所述各待聚类文本中的特征词及其在所述数据库中的权重,得到各特征词的词向量、各待聚类文本的句向量以及所有待聚类文本的特征向量:
步骤S31:利用所述待聚类文本中的特征词训练word2vec模型,并利用训练好的所述word2vec模型得到各特征词对应的词向量;
Word2vec是一款开放的用于产生词向量的软件工具,它根据给定的语料库,通过优化后的训练模型快速有效将句子中的每一个词映射成D维空间中的具有真实值的向量,并且这些向量获取了语法、语义特征,其核心架构包括CBOW和Skip-gram。
本发明得到的各特征词的词向量表示为v1×D,D为词向量的空间维度。
步骤S32:根据各待聚类文本中包含的特征词,计算各待聚类文本的句向量,其中,第s个待聚类文本句向量Vs表示如下:
其中,Ns表示第s个待聚类文本句子中包含的词向量个数;vs,i表示第s个待聚类文本句子第i个词向量;ws,i表示第s个句子第i个词向量的权重为该特征词在所述数据库中对应的权重。
步骤S33:根据待聚类文本中各句子的句向量,构造待聚类文本的特征向量SN*D:
SN*D=[V1,V2...,VN]T (2)
其中,N表示所有待聚类文本句子的数量,D表示句向量的维度,同词向量的维度。
步骤S4:利用所述待聚类文本的特征向量,对所述待聚类文本进行聚类:
步骤S41:对所述待聚类文本的特征向量SN*D进行奇异值分解,得到平滑后的整个文本句向量矩阵S′N*D;
通过奇异值分解找出待聚类文本的特征向量的部分主轴,并从特征向量中移除所述部分主轴,达到平滑效果。
步骤S42:根据平滑后的整个文本句向量矩阵S′N*D,利用层次聚类算法,对待聚类文本进行聚类。
将向量矩阵S′N*D中的每一句向量作为一个单独的簇;
计算不同簇之间的余弦距离,将所述余弦距离小于一定阈值的句向量合并为一个簇;重复该步骤,直到实现待聚类文本中所有句向量的分类。
本发明通过预先采集大量的各类网络数据,利用各类网络数据得到大量的特征词,这些特征词的权重信息能够有效表征其出现在一般句子中的概率,并将这些特征词的权重直接作为待聚类文本中相应词向量的权重,能够有效缩短计算时间,待聚类文本的规模越大,本发明方法缩短计算时间的效果越明显。同时,通过本发明中方法设置的特征词权重,出现频率越高,相应的权重越小,使得在计算待聚类文本句向量的过程中,降低主要特征词的权重,充分考虑除主要特征词以外的其他特征词对整个待聚类文本的影响,有效提升了聚类效果。
本发明的第二实施例中,公开了一种文本聚类方法的应用实例,步骤如下:
首先利用上述方法得到存储有特征词及对应的特征词权重的数据库;
利用网络爬虫算法,爬取搜狐新闻上的数据,作为本实施例的待聚类文本,部分待聚类文本的内容如图2所示;
利用上述文本聚类方法对待聚类文本进行分类,得到聚类结果,部分聚类结果如图3所示;
通过该应用实例可以证明,本申请中的文本聚类方法能够实现相似文本的聚类,且聚类结果较为精确。
在本发明的第三实施例中,提供了一种文本聚类装置,装置示意图如图4所示,与上述文本聚类方法相对应,所述装置包括:
特征词权重计算模块,用于采集数据构成文本库,得到所述文本库中的所有特征词,根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,将特征词及对应的特征词权重保存至数据库中;
待聚类文本特征词获取模块,用于采集各待聚类文本并获取所述各待聚类文本中的特征词;
待聚类文本特征向量获取模块,用于根据所述各待聚类文本中的特征词及其在所述数据库中的权重,得到各特征词的词向量、各待聚类文本的句向量以及所有待聚类文本的特征向量:
文本聚类模块,用于利用所述待聚类文本的特征向量,对所述待聚类文本进行聚类。
进一步,所述根据各特征词在文本库所有特征词中出现的频次,得到各特征词的权重,具体执行以下操作:
若特征词出现的频次小于频次阈值,剔除此类特征词;
将剩余各特征词词频的倒数,作为相应特征词对应的权重。
本发明中装置实施例的具体实施过程参见上述方法实施例即可,本实施例在此不再赘述。
由于本实施例与上述方法实施例原理相同,所以本***也具有上述方法实施例相应的技术效果。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。