一种基于卷积神经网络的文本数据无监督聚类方法与流程

文档序号:16782826发布日期:2019-02-01 19:15阅读:686来源:国知局
一种基于卷积神经网络的文本数据无监督聚类方法与流程

本申请涉及一种信息处理方法,具体的,涉及一种基于卷积神经网络的文本数据无监督聚类方法。可以用于电力行业文本数据的聚类分析,以及特征提取、语义扩展搜索等各类文本应用场景。



背景技术:

传统的文本挖掘算法是基于监督学习的,检测率较高,误报率较低,但是严重依赖于正确标记的数据。然而对于具有不断增长特性的大量数据库而言,对所有文本信息进行正确地标记几乎是不可能的。作为无监督学习方法的文本挖掘技术,基于聚类的文本挖掘算法不依赖于大量标记的文本数据,就可以通过文本的内部特征来对相似文本归为一类。所以,文本挖掘无监督学习的算法的成本低、适应性高。无监督聚类可以利用少量的先验知识来指导聚类过程,不仅可以提高聚类的效率,而且可以提高聚类的精度。

卷积神经网络(convolutionalneuralnetwork,cnn)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元。它包括卷积层(convolutionallayer)和池化层(poolinglayer)。cnns本质上就是多层卷积运算,以及对每层的输出用非线性激活函数做转换,比如用relu和tanh。在cnns中是通过输入层的卷积结果来计算输出。这相当于是局部连接,每块局部的输入区域与输出的一个神经元相连接。对每一层应用不同的滤波器,往往是成百上千个,然后汇总它们的结果。在训练阶段,cnn基于任务自动学习滤波器的权重值计算。在文本分类问题中,将向量化的文本输入神经网络,第一层cnn模型能学会从原始文本向量矩阵检测到一些文本向量的聚集簇,然后根据这些聚集簇在后续各层逐步过滤出局部特征,然后基于这些特征得出更高级的特征。最后一层是通过分类器利用这些高级特征进行分类。

一直以来,文本分析多以基于统计的方法描述,深度的文本数据分析,如自然语言处理中如何将文本进行量化表达,并对其进行特征聚类,是业界分析的难点。近年来随着神经网络等数据分析与挖掘方法的不断发展,相关研究也越来越多。

因此,如何将神经网络运用于文本聚类,以有效地解决一般文本数据聚类分析人工交互工作量大,分类效率低等问题,成为亟需满足的技术需求。



技术实现要素:

本发明的目的在于提出卷积神经网络的文本数据无监督聚类方法,能够应用于专业领域和行业内文本数据的聚类分析,通过运用卷积神经网络从少量的样本训练出发,减少人工标注的工作,改善聚类效率,为进一步的文本数据深度分析与挖掘提供基础的文本处理方案。

为达此目的,本发明采用以下技术方案:

基于神经网络的无监督文本聚类方法,包括如下步骤:

数据采集步骤s110:采集文本数据,采用人机交互或预处理的方式取得较少的初始训练集,即通过先验知识将原始数据分为大量的未标记文本数据与相对少量已标记文本数据;

文本分词步骤s120:对所有文本数据进行分词;

词频统计步骤s130:对分词结果进行词频统计,即针对每篇文本计算分词结果的出现次数;

特征权重计算步骤s140:根据每篇文本词频统计结果,基于外部的语料库的各词基准词频作为逆向文件频率(idf),采用tf-idf(termfrequency-inversedocumentfrequency)方法,计算tf-idf值,作为每个分词词语的特征权重值;

渐进近似表达步骤s150:选定一种渐进表达序列的模式,构建文本基于特征词的渐进近似表达;

神经网络构建步骤s160:通过预定义参数构建用于文本聚类的卷积神经网络;

神经网络训练步骤s170:将已标记文本和未标记文本的所有渐进表达序列的内容都作为训练数据对于神经网络进行训练;

神经网络稳定收敛并保存参数模型步骤s180:待神经网络的聚类结果稳定之后,结束对神经网络的训练,并对训练得到的模型参数保存;

文本聚类步骤s190:将待聚类的文本向量输入已经训练好的神经网络进行聚类计算。

可选的,结果中略去所有停用词,所述停用词可以来源于停用词表,停用词表是根据应用领域而预先构建形成的外部数据。

可选的,当特征权重计算步骤s140计算出特征权重后,能够将分词词语与特征权重值以向量形式保存,

还具有向量降维步骤s145:采用哈希(hash)降维的方式,对于上述的包括分词词语与特征权重值的二维向量进行降维,以降低计算的运算量。

可选的,在渐进近似表达步骤s150中,在不同的计算过程中可以选择不同的渐进表达序列,不同的选取序列包含不同数量的文档近似表达数量。

可选的,在渐进近似表达步骤s150中,不同的选取序列所包含数量界于o(logn)至o(log2n)之间,n为特征词数量。

可选的,在神经网络构建步骤s160,所述预定义参数为:

10000*8000个输入节点,20个输出节点;卷积神经网络共9层:输入层;卷积层1中过滤器7*7,步长2,输出4996*3996;池化层1中过滤器4*4,步长1,输出1249*999;卷积层2中过滤器7*7,步长2,输出621*243;池化层2中过滤器4*4,步长1,输出156*61;卷积层3中过滤器5*5,步长2,输出75*28;池化层3中过滤器3*3,步长1,输出25*10=250;全连接层1中输出160;全连接层2中输出100;输出层为20,训练轮数5000轮,学习率0.01,样本容量为500。

本发明还公开了一种存储介质,用于存储计算机可执行指令,其特征在于:

所述计算机可执行指令在被处理器执行时执行上述的基于神经网络的无监督文本聚类方法。

本发明将基于神经网络的无监督文本聚类方法应用到各专业领域如电力行业数据的文本数据分析中去,通过卷积神经网络将文本数据集中的文本进行特征权计算,并将词语按特征权值降序排列。按照某一特定数列来选取词语及其所在句子形成文本子集,并进一步形成渐进近似表达。通过文本的近似表达形成的数据集,有效地训练卷积神经网络,实现对少量标记文本无标记文本的文本数据无监督分类方法,能够有效解决一般文本数据聚类分析人工交互工作量大等,分类效率有待提高等问题。

附图说明

图1是根据本发明具体实施例的基于神经网络的无监督文本聚类方法的流程图;

图2是根据本发明具体实施例的将待聚类的文本向量输入已经训练好的神经网络进行聚类计算的示意图。

具体实施方式

下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。

参见图1,示出了根据本发明的基于神经网络的无监督文本聚类方法的流程图,该方法包括如下步骤:

数据采集步骤s110:利用诸如网络采集或数据导入工具的方式采集文本数据,采用人机交互或预处理等方式取得较少的初始训练集,即通过先验知识将原始数据分为大量的未标记文本数据与相对少量已标记文本数据。

文本分词步骤s120:对所有文本数据进行分词,示例性的,可以采用通过jieba、snownlp(mit)、pynlpir等分词工具进行分词。

进一步的,在分词步骤中,还在分词结果中略去所有停用词,所述停用词可以来源于停用词表,停用词表是根据应用领域而预先构建形成的外部数据。

示例性的,所述停用词可以包括例如:“标点符号”,“的”,“得”等等,这些词汇可以看作无效词,会以噪音的形式影响后续运算,需要去除。一般可以构建停用词库,以配置文件的形式保存起来,分词后调用一下,将停用词过滤掉以得到更精炼的分词结果。

词频统计步骤s130:对分词结果进行词频统计,即针对每篇文本计算分词结果的出现次数。

特征权重计算步骤s140:根据每篇文本词频统计结果,基于外部的语料库的各词基准词频作为逆向文件频率(idf),采用tf-idf(termfrequency-inversedocumentfrequency)方法,计算tf-idf值,作为每个分词词语的特征权重值。

可选的,当计算出特征权重后,将分词词语与特征权重值以向量形式保存后,还可以向量降维步骤s145:采用哈希(hash)降维的方式,对于上述的包括分词词语与特征权重值的二维向量进行降维,以降低计算的运算量。

渐进近似表达步骤s150:选定一种渐进表达序列的模式,构建文本基于特征词的渐进近似表达。

在该步骤中,在不同的计算过程中可以选择不同的渐进表达序列,不同的选取序列包含不同数量的文档近似表达数量。本发明中该数量界于o(logn)至o(log2n)之间,n为特征词数量。

神经网络构建步骤s160:通过预定义参数构建用于文本聚类的卷积神经网络。

在一个示范性的实施例中,所述预定义参数可以为:

10000*8000个输入节点,20个输出节点;卷积神经网络共9层:输入层;卷积层1中过滤器7*7,步长2,输出4996*3996;池化层1中过滤器4*4,步长1,输出1249*999;卷积层2中过滤器7*7,步长2,输出621*243;池化层2中过滤器4*4,步长1,输出156*61;卷积层3中过滤器5*5,步长2,输出75*28;池化层3中过滤器3*3,步长1,输出25*10=250;全连接层1中输出160;全连接层2中输出100;输出层为20,训练轮数5000轮,学习率0.01,样本容量为500。

神经网络训练步骤s170:将已标记文本和未标记文本的所有渐进表达序列的内容都作为训练数据对于神经网络进行训练。

神经网络稳定收敛步骤s180:待神经网络的聚类结果稳定之后,结束对神经网络的训练。

文本聚类步骤s190:将待聚类的文本向量输入已经训练好的神经网络进行聚类计算。

聚类示意图如图2所示,某文本降维后的向量通过卷积层的卷积过滤完成特征抽取。经过池化层后降低输出结果的维度,输出一个固定大小的矩阵,在经过全连接层后输出聚类结果。

在本文中对所使用到的现有技术,特作出说明。

基于tf-idf表示法的文本向量化

tf-idf(termfrequency-inversedocumentfrequency)是一种统计方法,用以评估字词对于一个文件集或一个语料库中的一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜寻引擎应用,作为文件与用户查询之间相关程度的度量或评级。

词频(termfrequency,tf)指的是某一个给定的词语在该文件中出现的频率。这个数字是对词数的归一化,以防止它偏向长的文件(同一个词语在长文件里可能会比短文件有更高的词数,而不管该词语重要与否。)。对于在某一特定文件里的词语ti来说,它的重要性可表示为:

以上式子中ni,j是该词在文件dj中的出现次数,而∑knk,j则是在文件dj中所有字词的出现次数之和。

逆向文件频率(inversedocumentfrequency,idf)是一个词语普遍重要性的度量。某一特定词语的idf,可以由总文件数目除以包含该词语之文件的数目,再将得到的商取对数得到:

其中

|d|:大型通用语料库中的文件总数

|{j:ti∈dj}|:包含词语ti的文件数目(即ni,j≠0的文件数目)如果该词语不在语料库中,就会导致被除数为零,因此一般情况下使用:

1+|{j:ti∈dj}|

然后计算:

tfidfi,j=tfi,j×idfi

某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的tf-idf。因此,tf-idf倾向于过滤掉常见的词语,保留重要的词语。

渐进近似表达。

对每篇文本中的词语计算出tf-idf特征权值之后,将所有词语按照tf-idf值的降序排列,则形成<s1,w1>,<s2,w2>,l,<sn,wn>的序列,其中<si,wi>分别表示按tf-idf值降序排列第i位的分词及其权值。按照特定的数列来选取不断递增的特定数目的特征词,这些特征词所构成的序列即为原始文本数据的渐进近似表达。例如序列即从所有词语的降序排列中,取出1个词,2个词,直到个词语,这些词语序列即为原始文本的渐进近似表达。

一篇文本的所有渐进近似表达项与原文本属于同一类,因此卷积神经网络可以以此为训练集进行学习训练。根据不同应用环境下强度的不同,选取数列在幂级数的基础上可以变换多种不同的构建方法,以建立密度更大的渐进近似表达,例如在相邻的两个数字之间再列出一个其差项的幂级数,即可形成密度为o(log2n)渐进近似表达;若在相邻的两个数字之间列出其差项的幂级数之后再按均等间隔选取其中的项,则可形成密度为的渐进近似表达。

通过建立文本的渐进近似表达,可以有效地表示文本随着篇幅的增长,词语的变多其特征不断丰富化的过程。

基于hashtrick的文本向量化稀疏

在大规模的文本处理中,由于文本特征的高稀疏性,且特征的维度对应分词词汇表的大小,所以维度非常巨大,此时需要进行降维,而不能直接用我们传统的向量化方法。针对这一问题使用hashtrick文本降维方法。

hashtrick定义一个特征hash后对应的哈希表的大小,这个哈希表的维度会远远小于我们的词汇表的特征维度,因此可以看成是对文本降维。具体的方法是,对应任意一个特征名,我们会用hash函数找到对应哈希表的位置,然后将该特征名对应的词频统计值累加到该哈希表位置。如果用数学语言表示为:假如哈希函数h使第i个特征哈希到位置j(即h(i)=j),则第i个原始特征的词频数值φ(i)将累加到哈希后的第h个特征的词频数值上,即:

其中j是原始特征的维度。

但是上面的方法中可能两个原始特征的哈希后位置在一起导致词频累加特征值突然变大,为了解决这个问题,出现了hashtrick的变种signedhashtrick,此时除了哈希函数h,我们多了一个哈希函数:

ξ:¥→±1

此时:

哈希后的特征仍然是一个无偏的估计,不会导致某些哈希位置的值过大。

神经网络的训练

神经网络的训练过程主要包括以下步骤:

神经网络的训练过程分为对神经网络的训练和测试,将将电力行业数据分为训练数据和测试数据两部分,其中训练数据集80%,测试数据占20%。训练数据为已经分类好的数据,具有分类标签。

1)构建卷积神经网络模型。根据分类文本数据定义神经网络模型的结构参数,包括对输入节点数、隐藏层节点数、卷积层、池化层、过滤器、激活函数、学习率、样本批次容量、权重衰减、训练轮数、输出节点数等参数的设置。

2)通过前向传播计算网络中各个节点的激活值(输出值).

3)将梯度通过反向传播算法进行传播,得到模型各个参数值。

4)采用梯度下降法进行模型参数的更新与优化。

5)迭代执行上述步骤,直到损式函数收敛。

6)保存模型参数。

7)使用测试集数据测试卷积神经网络模型。

8)评估卷积神经网络模型的实用性。

进一步的,本发明还公开了一种如下的实施例:

实施例1:

本算法的完整示例如下:

1、采集1000篇电力行业的文本数据。

2、对所有数据进行分词及去除停用词的处理。

3、应用基于词频统计的方法构建每篇文本内各分词的词频表。

4、每篇文本内每个分词特征权值计算。利用tf-idf计算分词的特征权重。每个分词的idf数值取自于外部权威、全面的语料库的统计结果。例如国家语委现代汉语语料库。

5、将每篇文本内的分词按照特征权重降序排列。

6、建立一个特定模式的幂级数列,例如其中n为文本中不相同词语的数量,按照这一数量取出文本中按照特征权重降序排列的特征词,将包含这些词汇的句子作为原始文本的一个渐进近似表达项,所有的渐进近似表达项形成文本的近似表达。

7、构建神经网络模型,并设置模型结构参数。如:10000*8000个输入节点,20个输出节点;卷积神经网络共9层:输入层;卷积层1中过滤器7*7,步长2,输出4996*3996;池化层1中过滤器4*4,步长1,输出1249*999;卷积层2中过滤器7*7,步长2,输出621*243;池化层2中过滤器4*4,步长1,输出156*61;卷积层3中过滤器5*5,步长2,输出75*28;池化层3中过滤器3*3,步长1,输出25*10=250;全连接层1中输出160;全连接层2中输出100;输出层为20,训练轮数5000轮,学习率0.01,样本容量为500。

8、将每篇文档的渐进近似表达项都作为已标记数据来训练神经网络,并调整优化参数,当损失函数足够小,证明神经网络已经学习到如何分类。

9、测试神经网络,将200份已标记数据集输入神经网络进行分类。

10、对分类结果的实用性进行评估:

经对比发现,本发明的聚类方法相比其他文档主题生成模型算法的运行时间快。聚类结果集具有较高的相似性。能够适合于处理大规模的中文语料库。

本发明进一步公开了一种存储介质,用于存储计算机可执行指令,其特征在于:所述计算机可执行指令在被处理器执行时执行上述的基于神经网络的无监督文本聚类方法。

显然,本领域技术人员应该明白,上述的本发明的各单元或各步骤可以用通用的计算装置来实现,它们可以集中在单个计算装置上,可选地,他们可以用计算机装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件的结合。

以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施方式仅限于此,对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单的推演或替换,都应当视为属于本发明由所提交的权利要求书确定保护范围。

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