一种对海量文档集的层次聚类方法及系统与流程

文档序号:12596459阅读:254来源:国知局
一种对海量文档集的层次聚类方法及系统与流程

本发明涉及数据处理领域,特别是涉及一种对海量文档集的层次聚类方法及系统。



背景技术:

名词解释:

词项(term):组成文档的最小的语言单元,可以是词语或短语等。

文档(document):具有一定长度的文本,例如一个句子、段落或一篇文章。在统计文本模型中,文档通常被看作是由词项组成的序列,并且不考虑词项在文档中出现的顺序,即所谓的词袋模型。

文档集(corpus):由文档组成的集合,也称作语料库。

词典(dictionary):文档集中所有不同词项所构成的词项集。

主题:主题是对文档内容的一个抽象的描述,一般用多个词项以及各个词项来描述;

LDA:Latent Dirichlet allocation,隐含狄利克雷分布。

Word Embedding:词向量;用向量的形式来描述词项的一种方法,可以让在某些维度上相似的词项在向量空间中用相近的向量来表示;

K-means聚类:k-means算法是一个聚类算法,其可以对给定的数据集进行自动聚类,形成指定数量的类族。

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。

随着互联网的普及以及数据的激增,人们越来越容易获取到大量的文本数据,例如新闻报道、blog文章、邮件、书籍、网页等。对于这些海量的文本数据,需要使用自然语言处理、机器学习等技术对其进行分析挖掘,发现潜藏在文本数据之下的模式、趋势,找出感兴趣、有价值的话题和信息。

目前,对文档进行挖掘的一种方式就是对文档集进行分组,将有共性的文档归为同一类。对文档集进行分组的方法可以分成两类。一类是有监督的方法,即分类。分类算法一般包含两个过程,分别是训练过程和分类过程。在训练过程中,需要使用大量标注好类别的文档作为训练集,然后利用分类器的训练算法从训练集中学习出分类模型。总的来说,分类过程就是对于一篇没有类别信息的文档,使用训练好的分类模型对文档进行分类,预测这篇文档所属的类别。分类的应用有很多,例如应用在新闻报道中的自动分类,为垃圾邮件、短信训练出分类器,从而实现垃圾邮件、短信的过滤等应用场景。

分类算法虽然有很多的应用场景,但却存在一个主要的问题,那就是分类器的训练需要使用大量有类别信息的文本数据作为训练集,而这些类别信息是由人类根据自身的认知人工标注上去的。因此,在大量文本数据的情况下,标注训练数据将会消耗很多的精力,大大降低分类效率,由此也限制了分类算法的应用领域。

正是由于分类算法的这个短板,很多时候需要使用另外一类文档划分的方法,那就是聚类分析。聚类分析是一种无监督的机器学习算法,聚类算法根据文档自身的特征属性,利用预定义好的相似度计算方式将相似的文档归为同一个簇内。聚类分析的目标就是让同一个簇中的文档尽可能的相似,而不同簇之间的文档尽可能的不同。聚类分析可以在没有人类知识进行引导的情况下对文档集进行分析,发现文档集的潜在模式,例如对新闻报道进行聚类分析从而找出热点话题等。在某些情况下,除了需要对文档集进行划分,还希望划分出的文档组之间具有层次关联关系,例如体育新闻下还包含足球、篮球等。

聚类算法可以根据生成的簇的结构分成扁平聚类(flat clustering)和层次聚类(hierarchical clustering)。扁平聚类会将数据集划分成互不重叠的簇,得到的簇结构是扁平的,簇与簇之间没有明显的关联关系,数据集中的每个数据记录只属于其中的一个簇。层次聚类算法生成的簇具有层次关系,即簇被组织成一棵树结构,簇与簇之间是可以相互嵌套的,父结点对应的簇包含子结点对应的簇。

使用现有的技术对文档集进行层次聚类的过程中,首先将文档集转换成文档-词项矩阵,然后在文档-词项矩阵的基础上进行层次聚类分析。这种技术,只利用了文档的全局语义信息,存在一定的局限性,无法全面地反映文档的本质,从而导致层次聚类的结果不够理想。



技术实现要素:

为了解决上述的技术问题,本发明的目的是提供一种对海量文档集的层次聚类方法,本发明的目的是提供一种对海量文档集的层次聚类系统。

本发明解决其技术问题所采用的技术方案是:

一种对海量文档集的层次聚类方法,包括步骤:

LDA主题分析步骤,使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练步骤,对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成步骤,对文档集进行聚类分析后生成对应的层次主题树;

文档层次聚类步骤,基于建立的层次主题树对文档集进行层次聚类。

进一步,所述层次主题树生成步骤,具体为:对文档集的每个LDA主题生成一个主题词项集,进而对每个主题词项集进行层次聚类分析后,获得对应的子层次主题树,最后将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步,所述层次主题树生成步骤,具体包括以下步骤:

LDA主题词项集获取步骤,基于生成的主题-词项分布矩阵,针对文档集的词典中的每个词项,将其分配给主题分布值最高的LDA主题,进而为文档集的每个LDA主题获得相对应的主题词项集;

主题词项集优化步骤,基于Word Embedding模型训练所获得的每个词项的多维向量,对每个LDA主题词项集进行二分K-means聚类,进而计算聚类生成的两个簇的凝聚度后,删除凝聚度值大的簇,将凝聚度值小的簇作为该LDA主题的优化后的主题词项集;

子层次主题树生成步骤,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,进而生成对应的子层次主题树;

层次主题树生成步骤,将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步,所述子层次主题树生成步骤,具体包括:

步骤1,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,将每个主题词项集作为一个簇,进行二分K-means聚类;

步骤2,判断该簇的层次数是否达到预设的深度,若是,则执行步骤4,反之,执行步骤3;

步骤3,将当前聚类的层次树结构的所有叶节点对应的簇组成一个簇集合,并计算该簇集合中的每个簇的轮廓系数后,选择轮廓系数最小的簇进行二分K-means聚类,并返回执行步骤2;

步骤4,获得当前聚类的层次树结构作为该LDA主题项对应的子层次主题树。

进一步,所述文档层次聚类步骤,其具体为:

基于建立的层次主题树,针对文档集中的每个文档,计算其与建立的层次主题树中的叶子主题的余弦相似度,并将每个文档分配给最大余弦相似度值所对应的叶子主题,实现对文档集的层次聚类。

本发明解决其技术问题所采用的另一技术方案是:

一种对海量文档集的层次聚类系统,包括:

LDA主题分析模块,用于使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练模块,用于对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成模块,用于对文档集进行聚类分析后生成对应的层次主题树;

文档层次聚类模块,用于基于建立的层次主题树对文档集进行层次聚类。

进一步,所述层次主题树生成模块,具体用于:对文档集的每个LDA主题生成一个主题词项集,进而对每个主题词项集进行层次聚类分析后,获得对应的子层次主题树,最后将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步,所述层次主题树生成模块,具体包括:

LDA主题词项集获取子模块,用于基于生成的主题-词项分布矩阵,针对文档集的词典中的每个词项,将其分配给主题分布值最高的LDA主题,进而为文档集的每个LDA主题获得相对应的主题词项集;

主题词项集优化子模块,用于基于Word Embedding模型训练所获得的每个词项的多维向量,对每个LDA主题词项集进行二分K-means聚类,进而计算聚类生成的两个簇的凝聚度后,删除凝聚度值大的簇,将凝聚度值小的簇作为该LDA主题的优化后的主题词项集;

子层次主题树生成子模块,用于利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,进而生成对应的子层次主题树;

层次主题树生成子模块,用于将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步,所述子层次主题树生成子模块,具体包括:

第一单元,用于利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,将每个主题词项集作为一个簇,进行二分K-means聚类;

第二单元,用于判断该簇的层次数是否达到预设的深度,若是,则执行第四单元,反之,执行第三单元;

第三单元,用于将当前聚类的层次树结构的所有叶节点对应的簇组成一个簇集合,并计算该簇集合中的每个簇的轮廓系数后,选择轮廓系数最小的簇进行二分K-means聚类,并返回执行第二单元;

第四单元,用于获得当前聚类的层次树结构作为该LDA主题项对应的子层次主题树。

进一步,所述文档层次聚类模块,其具体用于:

基于建立的层次主题树,针对文档集中的每个文档,计算其与建立的层次主题树中的叶子主题的余弦相似度,并将每个文档分配给最大余弦相似度值所对应的叶子主题,实现对文档集的层次聚类。

本发明的有益效果是:本发明的一种对海量文档集的层次聚类方法,包括步骤:LDA主题分析步骤,使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;Word Embedding模型训练步骤,对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;层次主题树生成步骤,对文档集进行聚类分析后生成对应的层次主题树;文档层次聚类步骤,基于建立的层次主题树对文档集进行层次聚类。本方法通过将LDA的全局语义信息和Word Embedding的细粒度语义信息结合起来进行文档层次聚类,可以全面地反映文档的本质,使得生成的层次主题树的层次结构更加合理。

本发明的另一有益效果是:本发明的一种对海量文档集的层次聚类系统,包括:LDA主题分析模块,用于使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;Word Embedding模型训练模块,用于对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;层次主题树生成模块,用于对文档集进行聚类分析后生成对应的层次主题树;文档层次聚类模块,用于基于建立的层次主题树对文档集进行层次聚类。本系统通过将LDA的全局语义信息和Word Embedding的细粒度语义信息结合起来进行文档层次聚类,可以全面地反映文档的本质,使得生成的层次主题树的层次结构更加合理。

附图说明

下面结合附图和实施例对本发明作进一步说明。

图1是本发明的一种对海量文档集的层次聚类方法的流程图;

图2是本发明的一种对海量文档集的层次聚类方法的文档层次聚类框架图;

图3是本发明的一种对海量文档集的层次聚类方法的LDA主题词项集获取示意图;

图4是本发明的一种对海量文档集的层次聚类方法的文档层次聚类的示意图;

图5是本发明的一种对海量文档集的层次聚类系统的系统框图。

具体实施方式

参照图1,本发明提供了一种对海量文档集的层次聚类方法,包括步骤:

LDA主题分析步骤,使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练步骤,对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成步骤,对文档集进行聚类分析后生成对应的层次主题树;

文档层次聚类步骤,基于建立的层次主题树对文档集进行层次聚类。

进一步作为优选的实施方式,所述层次主题树生成步骤,具体为:对文档集的每个LDA主题生成一个主题词项集,进而对每个主题词项集进行层次聚类分析后,获得对应的子层次主题树,最后将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步作为优选的实施方式,所述层次主题树生成步骤,具体包括以下步骤:

LDA主题词项集获取步骤,基于生成的主题-词项分布矩阵,针对文档集的词典中的每个词项,将其分配给主题分布值最高的LDA主题,进而为文档集的每个LDA主题获得相对应的主题词项集;

主题词项集优化步骤,基于Word Embedding模型训练所获得的每个词项的多维向量,对每个LDA主题词项集进行二分K-means聚类,进而计算聚类生成的两个簇的凝聚度后,删除凝聚度值大的簇,将凝聚度值小的簇作为该LDA主题的优化后的主题词项集;

子层次主题树生成步骤,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,进而生成对应的子层次主题树;

层次主题树生成步骤,将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步作为优选的实施方式,所述子层次主题树生成步骤,具体包括:

步骤1,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,将每个主题词项集作为一个簇,进行二分K-means聚类;

步骤2,判断该簇的层次数是否达到预设的深度,若是,则执行步骤4,反之,执行步骤3;

步骤3,将当前聚类的层次树结构的所有叶节点对应的簇组成一个簇集合,并计算该簇集合中的每个簇的轮廓系数后,选择轮廓系数最小的簇进行二分K-means聚类,并返回执行步骤2;

步骤4,获得当前聚类的层次树结构作为该LDA主题项对应的子层次主题树。

进一步作为优选的实施方式,所述文档层次聚类步骤,其具体为:

基于建立的层次主题树,针对文档集中的每个文档,计算其与建立的层次主题树中的叶子主题的余弦相似度,并将每个文档分配给最大余弦相似度值所对应的叶子主题,实现对文档集的层次聚类。

参照图5,本发明还提供了一种对海量文档集的层次聚类系统,包括:

LDA主题分析模块,用于使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练模块,用于对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成模块,用于对文档集进行聚类分析后生成对应的层次主题树;

文档层次聚类模块,用于基于建立的层次主题树对文档集进行层次聚类。

进一步作为优选的实施方式,所述层次主题树生成模块,具体用于:对文档集的每个LDA主题生成一个主题词项集,进而对每个主题词项集进行层次聚类分析后,获得对应的子层次主题树,最后将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步作为优选的实施方式,所述层次主题树生成模块,具体包括:

LDA主题词项集获取子模块,用于基于生成的主题-词项分布矩阵,针对文档集的词典中的每个词项,将其分配给主题分布值最高的LDA主题,进而为文档集的每个LDA主题获得相对应的主题词项集;

主题词项集优化子模块,用于基于Word Embedding模型训练所获得的每个词项的多维向量,对每个LDA主题词项集进行二分K-means聚类,进而计算聚类生成的两个簇的凝聚度后,删除凝聚度值大的簇,将凝聚度值小的簇作为该LDA主题的优化后的主题词项集;

子层次主题树生成子模块,用于利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,进而生成对应的子层次主题树;

层次主题树生成子模块,用于将所有子层次主题树结合起来作为整个文档集的层次主题树。

进一步作为优选的实施方式,所述子层次主题树生成子模块,具体包括:

第一单元,用于利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,将每个主题词项集作为一个簇,进行二分K-means聚类;

第二单元,用于判断该簇的层次数是否达到预设的深度,若是,则执行第四单元,反之,执行第三单元;

第三单元,用于将当前聚类的层次树结构的所有叶节点对应的簇组成一个簇集合,并计算该簇集合中的每个簇的轮廓系数后,选择轮廓系数最小的簇进行二分K-means聚类,并返回执行第二单元;

第四单元,用于获得当前聚类的层次树结构作为该LDA主题项对应的子层次主题树。

进一步作为优选的实施方式,所述文档层次聚类模块,其具体用于:

基于建立的层次主题树,针对文档集中的每个文档,计算其与建立的层次主题树中的叶子主题的余弦相似度,并将每个文档分配给最大余弦相似度值所对应的叶子主题,实现对文档集的层次聚类。

以下结合详细实施例对本发明做具体说明。

实施例一

参照图1,一种对海量文档集的层次聚类方法,包括步骤:

LDA主题分析步骤,使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练步骤,对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成步骤,对文档集进行聚类分析后生成对应的层次主题树,具体为:对文档集的每个LDA主题生成一个主题词项集,进而对每个主题词项集进行层次聚类分析后,获得对应的子层次主题树,最后将所有子层次主题树结合起来作为整个文档集的层次主题树。

文档层次聚类步骤,基于建立的层次主题树对文档集进行层次聚类。

本方法的文档层次聚类框架如图2所示,本发明首先使用LDA主题模型对整个文档集进行分析,然后根据分析得出的主题-词项分布矩阵对每个LDA主题生成一个主题词项集。另外用这个文档集进行Word Embedding模型的训练,然后对每个主题词项集进行层次聚类分析,得到一棵层次主题树。最后,对于文档集中的每篇文档,将其分配给相似度最高的那个主题,从而实现文档集的层次聚类。本方案共包含四个子过程,分别为:LDA主题分析、Word Embedding模型训练、层次主题树生成、文档层次聚类。

其中,层次主题树生成步骤,具体包括以下步骤:

LDA主题词项集获取步骤,基于生成的主题-词项分布矩阵,针对文档集的词典中的每个词项,将其分配给主题分布值最高的LDA主题,进而为文档集的每个LDA主题获得相对应的主题词项集,其获取步骤如图3所示,图3的主题-词项分布矩阵中,t1、t2、t3、t4分别表示主题,w1、w2、w3、w4分别表示词项;

主题词项集优化步骤,基于Word Embedding模型训练所获得的每个词项的多维向量,对每个LDA主题词项集进行二分K-means聚类,进而计算聚类生成的两个簇的凝聚度后,删除凝聚度值大的簇,将凝聚度值小的簇作为该LDA主题的优化后的主题词项集;每个LDA主题词项集中都会包含一些语义很烦、主题表达性不高的词项,本主题词项集优化步骤就是将这些主题表达性不高的词项给去除掉。优化过程利用了二分K-means聚类和簇的凝聚度。簇的凝聚度指簇内所有对象与簇质心的平均欧几里得距离,它用来评估簇内对象的相关性、紧密性,值越高表示簇内对象越不相似,值越低表示簇内对象越相似。优化过程首先利用词项在Word Embedding模型下的向量形式对每个主题词项集进行二分K-means聚类,接着计算聚类生成的两个簇的凝聚度,然后将凝聚度值大的簇删掉,留下凝聚度值小的簇作为这个主题的词项簇。

子层次主题树生成步骤,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,进而生成对应的子层次主题树;具体包括:

步骤1,利用基于轮廓系数的二分K-means分裂式层次聚类对每个LDA主题词项集进行层次聚类分析,将每个主题词项集作为一个簇,进行二分K-means聚类;

步骤2,判断该簇的层次数是否达到预设的深度,若是,则执行步骤4,反之,执行步骤3;预设的深度是指定的层次深度;

步骤3,将当前聚类的层次树结构的所有叶节点对应的簇组成一个簇集合,并计算该簇集合中的每个簇的轮廓系数后,选择轮廓系数最小的簇进行二分K-means聚类,并返回执行步骤2;

步骤4,获得当前聚类的层次树结构作为该LDA主题项对应的子层次主题树。

层次主题树生成步骤,将所有子层次主题树结合起来作为整个文档集的层次主题树,具体为:

基于建立的层次主题树,针对文档集中的每个文档,计算其与建立的层次主题树中的叶子主题的余弦相似度,并将每个文档分配给最大余弦相似度值所对应的叶子主题,实现对文档集的层次聚类,如图4所示。这里,叶子主题指叶子节点的LDA主题。在计算文档与LDA主题的余弦相似度时,层次主题树中的每个主题其实是一个词项集,而在词袋模型中,文档也被看成是一个词项集。一篇文档在空间向量模型下可以被形式化的表示成一个向量,因此,一个LDA主题词项集也可以在空间向量模型下被表示成一个向量。那么,计算一篇文档与一个主题的余弦相似度就可以转变成计算相应两个向量的余弦相似度。本实施例中,词项权值使用的是TF-IDF值。

本方法结合了LDA主题模型和Word Embedding模型进行文档层次聚类。LDA主题分析得到的是文档集全局的语义信息,Word Embedding模型获取的是细粒度语义信息,本发明的方案将LDA的全局语义信息和Word Embedding的细粒度语义信息结合起来,可以全面地反映文档的本质,使得生成的层次主题树更优秀、更理想,层次结构更加合理。

实施例二

参照图5,一种对海量文档集的层次聚类系统,包括:

LDA主题分析模块,用于使用LDA模型对文档集的文档-词项矩阵进行分析,进而生成文档集的文档-主题分布矩阵和主题-词项分布矩阵;

Word Embedding模型训练模块,用于对文档集进行Word Embedding模型的训练,进而将文档集的词典中的每个词项映射为一个多维向量;

层次主题树生成模块,用于对文档集进行聚类分析后生成对应的层次主题树;

文档层次聚类模块,用于基于建立的层次主题树对文档集进行层次聚类。

本实施例是与实施例一一一对应的软系统,其具体限定可参照实施例一的描述。

以上是对本发明的较佳实施进行了具体说明,但本发明创造并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变型或替换均包含在本申请权利要求所限定的范围内。

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