基于融合BTM模型的短文本主题聚类方法与流程

文档序号:17602858发布日期:2019-05-07 20:29阅读:1087来源:国知局
基于融合BTM模型的短文本主题聚类方法与流程

本发明属于数据聚类技术领域,具体涉及一种基于融合btm模型的短文本主题聚类方法。



背景技术:

当前,关于短文本主题的模型主要有btm(bitermtopicmodel)模型、vsm(vectorspacemodel)模型和lda(latentdirichletallocation)模型。

其中,btm模型是一种文本主题模型,但是它和传统的主题模型如plsa(隐形语义分析)或lda有明显的区别。一般传统的主题模型只适用于长文本处理,因为短文本的特征稀疏和缺失会对模型建立产生严重的影响,但是也有很多研究人员试图对模型进行扩展和优化,来增强对短文本的适用性。例如通过引入外部知识来扩充短文本,或将短文本进行拼接,作为伪长文本来处理。这种做法虽然可以改进模型上的不足,但是无法克服传统模型天生的缺点,而btm模型的建模过程却可以避免上述缺点,取得较好效果。

vsm模型,即向量空间模型,其原理比较简单,即将文本内用基于空间向量进行表示,后续便可以使用向量的运算方法对文本进行运算。所以,将一篇文本映射到向量空间之后,文本间的相似度就可以通过向量间距离来进行度量,且易于理解。

当前,经典的聚类算法有k-means和k-medoids等,但是这类算法需要事先指定聚类个数,同时最优聚类个数不能事先进行评估。



技术实现要素:

本发明的发明目的在于:针对上述存在的问题,结合btm模型和vsm模型实现对短文本主题的聚类处理,以提高聚类效果;同时基于类内、类间距离对聚类效果进行度量,自动调节聚簇数量,补偿btm模型需提前预指定主题数量导致的精度下降的技术问题。

本发明的基于融合btm模型的短文本主题聚类方法,包括下列步骤:

步骤s1:对待聚类的短文本进行文本预处理,得到数据集d;

步骤s2:基于数据集d,以及预设的主题个数k,进行btm模型建模,生成文档-主题分布矩阵θ和主题-词分布矩阵

并基于文档-主题分布矩阵θ表示数据集d中的任意文本i的文本向量,记为di_btm;

步骤s3:基于数据集d,基于tf-idf策略对数据集d中的任意文本i进行文本向量表示,记为di_vsm;

步骤s4:初始化标记位k=kmin,其中kmin表示k-means算法的聚类个数的下限;

步骤s5:若k>kmax,则执行步骤8;否则执行步骤s6;其中kmax表示k-means算法的聚类个数的上限;

步骤s6:从数据集d中随机选取k个文本向量作为初始聚类中心,并基于k-means算法对数据集d进行k聚类处理,基于得到的聚类结果计算对应k值的聚类质量j(k);

定义标记位对应的k的聚类质量为则更新后,再执行步骤s7;否则直接执行步骤s7;

其中,在进行聚类处理时,采用的聚类标准为:第一距离和第二距离的加权和,其中第一距离为基于文本向量di_btm的js(jensen-shannon)距离,第二距离为基于文本向量di_vsm的余弦距离;

聚类质量其中i(k)表示类内距离,b(k)表示类间距离;

所述类内距离为每个文本与其他文本的平均距离的最小值;

所述类间距离为不同聚类间最近的两个文本的距离;

步骤s7:更新k=k+1后,继续执行步骤s5;

步骤s8:基于k-means算法进行k聚类处理,其中

综上所述,由于采用了上述技术方案,本发明的有益效果是:结合btm和vsm两者特点并优化文本特征,提高聚类效果,同时基于类内、类间距离对聚类效果进行度量,自动调节聚簇数量,补偿btm模型需提前预指定主题数量导致的精度下降的问题。

附图说明

图1是btmvoca.txt输入格式的示意图;

图2是btm输doc_wids.txt输入格式的示意图;

图3是融合btm模型聚类流程图;

图4是分词编号结果图示意图;

图5是btm模型词对编号结果示意图;

图6是文档空间向量矩阵示意图;

图7是btm模型文档-主题分布矩阵的示意图;

图8是btm和lda在不同主题数k下f值对比图;

图9是融合模型不同λ取值曲线;

图10是不同聚类个数下类内类间距离示意图;

图11是各模型聚类准确率对比图;

图12是各模型f值对比图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。

短文本主题模型btm(bitermtopicmodel)主要针对整体文档-主题分布概率进行研究,淡化了单文档内词频特征,而向量空间模型vsm(vectorspacemodel)侧重词频特征,为了克服两个模型单独实现时的不足,本发明结合两者特点并优化文本特征,提高聚类效果,同时基于类内、类间距离对聚类效果进行度量,自动调节聚簇数量,补偿btm模型需提前预指定主题数量导致的精度下降的问题。

vsm的内在原理比较简单,即将文本内用基于空间向量进行表示,后续便可以使用向量的运算方法对文本进行运算。所以,将一篇文本映射到向量空间之后,文本间的相似度就可以通过向量间距离来进行度量,且易于理解。

假设有m篇文档,其中共有n个不同的词,故这m篇文档可以基于n个词wi(i=1,…,n)进行表示。所以文档向量空间模型可以表示为di={w1,w2,w3...wn},m篇文档的文本向量矩阵d可以表示为:

其中,该矩阵的每行代表一篇文本,每列代表一个独立的词,矩阵中元素dij表示第j个词在第i个文档中所占比重。

btm是一个基于统计的模型,它规避了传统短文本模型易受短文本特征稀疏影响的缺点,利用词间隐含语义,将文本映射到主题空间上。所以基于该模型,可以得出较为理想的文档-主题和主题-词分布。本具体实施方式中,基于文档-主题分布矩阵来表示文档特征,标记为dbtm。同时,利用tf-idf加权策略将短文本进行向量化表示,标记为dvsm,最后在文档相似度计算过程中引入加权融合系数λ,进行融合处理。

其中第i个文本的dvsm、dbtm的向量表示分别为:

di_vsm={w1,w2,w3...wn};

di_btm={p(z1|d),p(z2|d),p(z3|d)....p(zk|d)};

其中p(zj|d)表示第j个主题zj在文本d的分布概率,j=1,2,…,k;

tf-idf是向量空间中对特征词进行加权的最经典也是最常用的方法。在本具体实施方式中,将短文本中独立的词作为特征项,对应的权由tf和idf进行加权计算。

tf(termfrequency)表示某特征词tk在特定某篇文中本di中出现的次数。随着出现次数的增多,表明该特征词所占的比重就越大,其出现的次数标记为tf(i,k)。但是对于短文本来说,其中包含的特征词在该文本中出现次数总体相近,所以单独依靠tf很难判断出文本总体特征。

idf(inversedocumentfrequency)是指特征词在文本集中出当前文本之外的文本中出现的次数。如果出现次数较多次,说明该词不能很好的进行区分文本,如果出现次数较少,说明该词可以被当作某些文本的特征进行考量,idf的计算方法为:

其中,i为文档(文本)区分符,k为词区分符,n表示文档库中所有文本条数,n表示包含有词tk的文本条数,α是一个经验值,一般情况下取α=0.01。

综上可得,任意文本di中特征词tk的权重为:w(i,k)=tf(i,k)×idf(i,k),即用权重w(i,k)表征di_vsm={w1,w2,w3...wn}中的每个单词,从而得到基于tf-idf策略对数据集d中的任意文本i进行文本向量。

文本通过主题分布的向量dbtm进行表示,所以在后续对比中,本发明基于文本的主题特征进行相似性计算。同时由于主题向量是以统计模型得出,故采用概率进行描述。

使用基于kl距离(kullback-leibler差异)的对称版本,即js距离进行度量。即对于任意文本di和dj之间的第一距离(第一相似度)可以表示为:

其中,函数

而对于基于特征词词权重表示的全文本向量dvsm,则采取直接计算两向量余弦距离进行度量,即对于任意文本di和dj之间的第二距离(第二相似度)可以表示为:

在计算完成以上两种相似度后,引入加权系数λ,进行加权融合度量,形成基于js距离的加权文本相似度计算公式:d(di,dj)=λdbtm(di,dj)+(1-λ)dvsm(di,dj)。

参见图1,本具体实施方式中,基于上述融合btm模型的短文本主题聚类包括下列步骤:

(1)对待聚类的短文本进行文本预处理,得到数据集d,其中文本预处理包括对短文本进行分词和去掉停用词处理;

其中,待聚类的短文本通常为:经日志聚类后有微博、贴吧、论坛评论或通信行为的用户会话中的短文本数据。

(2)btm模型预处理,即规则化处理,分别生成两个文档,其中一个文档为词典文档,记为voca.txt,目的是为每个词进行编号;另一个文档记为doc_winds.txt,用于将整个文本集中词进行编号替换。两文件具体格式如图2、3所示。

(3)基于btm模型进行建模,生成文档-主题分布矩阵θ和主题-词分布矩阵

模型的输入是words.txt和words_winds.txt两文档,主题个数k及dirichlet先验分布的两个超参数α和β,其中α=50/k和β=0.01。输出为文档-主题分布矩阵θ和主题-词分布矩阵由于btm模型的建模过程为现有技术,此处不再赘述。

(4)基于tf-idf策略进行文本向量表示;

(5)基于k-means算法对btm模型生成的文档-主题向量和文档vsm向量进行加权聚类;

(6)对聚类产生的聚簇进行描述,为网络管理或舆论监控做出参考。

即本发明的融合btm模型的短文本主题聚类的具体实现过程如下:

步骤s1:输入待聚类的数据集d,以及设置btm的主题个数,k-means算法的聚类个数范围[kmin,kmax];

步骤s2:基于数据集d,进行btm模型建模,生成文档-主题分布矩阵θ和主题-词分布矩阵

步骤s3:基于数据集d,基于tf-idf策略进行文本向量表示,得到dvsm;

步骤s4:初始化标记位k=kmin;

步骤s5:若k>kmax,则执行步骤8;否则执行步骤s6;

步骤s6:从数据集d中随机选取k个初始聚类中心,并基于k-means算法进行k聚类处理,基于得到的聚类结果计算对应k值的聚类质量j(k);

定义标记位对应的k的聚类质量为则更新后,再执行步骤s7;否则直接执行步骤s7(标记位保持不变);

其中,在进行聚类处理时,采用的聚类标准为:第一距离和第二距离的加权和;

聚类质量其中i(k)表示类内距离,b(k)表示类间距离;

所述类内距离为每个文本与其他文本的平均距离的最小值,即:

其中,|cj|表示在聚类cj中的文本数量,xi、xp分别表示所属于聚类cj中的文本对象。

所述类间距离为不同聚类间最近的两个文本的距离,即:

其中,i=1,2,...,k;j=1,2,...,k;且i≠j,xp,xq表示聚类ci和cj中的文本对象。

步骤s7:更新k=k+1后,继续执行步骤s5;

步骤s8:基于k-means算法进行k聚类处理,其中

实施例

采用的实验数据来自新浪微博,并基于本文算法在数据上进行建模及聚类分析。实验部分主要包括融合全文本vsm和btm的加权算法聚类算法,以及单独使用btm、vsm和lda的算法进行的对比。

其中实验数据集(采用的语料库)是来自新浪微博2014年5月的开源数据,其中共有6个热点类别(房价、公务员、韩剧、雾霾、转基因、手机),每个类别1000篇并已经带有类别标签,词表大小:9372词。

在实验进行前,首先进行数据的预处理工作,将文本进行分词编号,btm模型需要进行词对编号。分词编号结果如图4所示,词对编号如图5所示。

在完成数据预处理后,对基于if-idf算法进行文档向量化表示,形成vsm模型,文档表示结果如图6所示。

(1)btm与lda主题聚类效果对比:

btm模型是一种非监督模型,在运算中不需要人为干预,但是缺点是需要在建模前人为预设文档集整体主题聚类个数k,k的设定是否贴合数据的实际情况,会影响到模型的聚类性能。

在本实验中,事先已知文档集有6个类别,也就是有6话题,来分别验证btm和lda主题模型最优主题数k。为确定最优主题数k,本次实验主题数分别取5,6,7,8,9,10,11,12,13,14进行实验,模型迭代次数为1000次,α=50/k,β=0.01。在模型训练后基于k-means算法进行聚类,聚类个数k=6,由于该聚类算法容易陷入局部最优解,所以每次实验中重复10次聚类实验,取聚类结果的平均f值(同时考量准确率和召回率)进行评估。在实验之后,确定的最优主题数k将用于后续实验中。btm模型中文本-主题矩阵如图7所示。

从表1和图8中的实验结果中可以看到,在已知文档集分类的情况下进行聚类主题数k验证,btm模型在k取6时得到的主题聚类效果最好,lda模型在k取10时主题聚类效果最好,总体来说,btm效果要优于lda。

随着主题数k的增加,两模型效果都有不同程度的减弱。这说明btm模型中,在词对数量不变的情况下,预设主题数量偏离真是数量太多会导致原有主题概率被细分,造成文档-主题分布变化,最终导致依据此概率分布进行文档聚类的结果也随之改变。在lda模型中,建模效果整体较差,原因是模型受到短文本特征稀疏的影响,导致文档-主题分布不准确,进而聚类效果较差。

表1btm和lda在不同k值下建模f值对比

(2)融合系数λ的设置:

基于上述实验结果,本次实验取btm模型主题数k=6,k-means算法聚类个数k∈[5,15]时分别进行实验,最后整体结果取均值进行表示。实验中,设λ={0,0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1.0},分别验证主题聚类精度。在结果中可以发现,当λ=0.8时,整体聚类结果比较好,在后续实验中,取λ=0.8进行实验。实验结果如图9所示。

(3)最优聚类个数确定:

在实际情况中,并不知道文档的分类情况,所以本次实验在默认不知道聚类个数的情况下,基于类内类间距离进行聚类效果评估。在融合btm模型主题数k=6,λ=0.8的情况下,输入聚类范围[5,15]进行聚类。图10为在不同聚类个数下得到的类内类间距离比值折线图。在结果中可以看到,当取聚类个数为6时类内类间距离比值最小,聚类效果最好。结果与数据集特征相符合,说明了类内类间距离度量聚类结果的有效性。所以,取聚类数目为6进行后续的实验。

(4)各模型聚类效果对比:

本次实验主要是基于文档集的6个类别进行聚类效果对比。比较模型为融合btm模型、btm模型、lda模型和vsm模型。模型中,btm模型的主题数k取6,lda主题数k取10,k-means算法聚类个数设为6。在实验结果中,分别采用准确率p和f值对聚类效果进行评价。聚类算法聚类效果越好,其对应的准确率p值就越大,而f值则是同时考量了准确率和召回率,聚类效果也是正比于f值的大小,几种模型的聚类效果如下表所示:

表2各模型准确率p

图11给出了对应表2的各模型聚类准确率对比曲线图,由图可知,本发明的准确率性能最好。

表3各模型f值对比

图12给出了对应表3的各模型聚类f值对比曲线图,由图可知,本发明的优势最明显。

以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。

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