摘 要:针对传统KNN算法在处理新闻分类时仅仅考虑文字层面上的相似性,而未涉及语义层面,本文提出了一种基于VSM和LDA模型相融合的新闻分类算法。首先,在深入研究VSM和LDA模型的基础上,对新闻文档进行VSM和LDA主题建模,结合LDA模型与VSM模型计算文档之间的相似度;其次,以复合相似度运用到基于相似度加权表决的KNN算法对新闻报道集合进行分类。实验验证了改进后的相似度计算方法的有效性,实验结果表明改进后的KNN算法与传统算法相比,具有较好的效果。
关键词:潜在狄利克雷分布( LDA);向量空间模型(VSM);文本相似度;KNN分类
DOI:10.16640/j.cnki.37-1222/t.2016.06.192
1 引言
目前,面对着互联网上各种各样、数量繁多的新闻网页,人们不知道如何选择自己需要和喜爱的新闻。因此,人们越来越迫切地需要一个对新闻进行分类的工具,能够用来快速浏览自己需要的新闻内容。
常见的文本分类技术包括KNN算法、贝叶斯算法、支持向量机SVM算法以及基于语义网络的概念推理网算法等。KNN算法在新闻等网页文本分类中有着广泛的应用,他的思想是对于待分类的文本,通过由与该样本最接近的K个样本来判断该样本归属的类别[1]。
本文针对传统KNN算法在度量文本相似性时仅仅考虑文字层面的相似性,而未涉及语义层面。首先,对新闻文档进行VSM和LDA主题建模,结合LDA模型与VSM模型计算文档之间的相似度;其次,以复合相似度运用到基于相似度加权表决的KNN算法对新闻报道集合进行分类。
2 相关工作
2.1 向量空间模型
向量空间模型(VSM:Vector Space Model)由G.Salton、A. Wong、 C. S. Yang[2]等人于20世纪70年代提出。向量空间模型(VSM)以特征词作为文档表示的基本单位,每个文档都可以表示为一个n维空间向量:T(F1,W1;F2,W2;…;Fn,Wn),简记为T(W1,W2,…,Wn),Fi为文档的特征词,Wi为每个特征词的权重,则T(W1,W2,…,Wn)为文本T的向量表示[3]。特征词的权重值一般采用TF*IDF来计算。
向量空间模型把文本内容用n维空间向量表示,把对文本内容的处理简化为向量空间中的向量运算,并且它以空间上的相似度表达语义的相似度,直观易懂,但向量空间模型并没有考虑到特征词之间的语义关系,可能丢失很多有用的文本信息。
2.2 LDA主题模型
2.2.1 LDA主题模型基本思想
主题模型是统计模型的一种,用来发现在文档集合中的抽象主题。LDA(Latent Dirichlet Allocation)是一种文档主题生成模型,也称为一个三层贝叶斯概率模型,包含词、主题和文档三层结构。首次是作为概率图模型由David Blei、Andrew Ng和 Michael Jordan于2003年提出[4],图1为LDA的概率图模型。
其中M为文档总数,K为主题个数,Nm是第m个文档的单词总数,β是每个Topic下词的多项分布的Dirichlet先验参数,α是每个文档下Topic的多项分布的Dirichlet先验参数。zm,n是第m个文档中第n个词的主题,wm,n是第m个文档中的第n个词。隐含变量θm和ψk分别表示第m个文档下的Topic分布和第k个Topic下词的分布,前者是k维(k为Topic总数)向量,后者是v维向量(v为词典中词项总数)。
2.2.2 Gibbs 抽样
Gibbs Sampling是马尔科夫链蒙特卡洛算法的一个实例。该算法每次选取概率向量的一个维度,给定其他维度的变量值采样当前维度的值,不断迭代至收敛输出待估计的参数[5]。
从2.2.1中可知,zm,n、θm和ψk变量都是未知的隐含变量,也是我们需要根据观察到的文档集合中的词来学习估计的。
学习步骤如下:
(1)应用贝叶斯统计理论中的标准方法[6],推理出有效信息P(w|T) ,确定最优主题数 T,使模型对语料库数据中的有效信息拟合达到最佳。
(2)初始时为文本中的每个词随机分配主题Z(0),统计第z个主题下的词项t的数量,以及第m篇文档下出现主题z中的词的数量。
(3)每一轮计算p(zi|z-I,d,w) 这里i=(m,n)是一个二维下标,对应于第m篇第n个词,即排除当前词的主题分配,根据其他所有词的主题分配估计当前词分配给各个主题的概率,根据这个概率分布,为该词采样一个新的主题Z(1)。同样更新下一个词的主题。直到每个文档下Topic分布θm和每个Topic下词的分布ψk收敛。
3 基于VSM和LDA模型的新闻分类
3.1 基于VSM和LDA模型的文本相似度计算
(1)对于文档di,dj,由向量空间模型(VSM)进行预处理,得到的文本的特征词向量di_VSM=(w1,w2,…,wN)和dj_VSM=( w1,w2,…,wN),N为特征词个数。
3.2 基于VSM和LDA模型的新闻文本分类
本文改进的KNN算法的具体过程如下[8]:
输入:待分类新闻文本d和已知类别的新闻文本D;
输出:待分类新闻文本d的可能类别。
(1)对d和D集合进行预处理,构建其特征向量和主题向量;
(2)对d中的每个新闻文本,采用公式(3-3)计算其于D中每个新闻文本的相似度;
(3)从中选择与d相似度最大的K个文本;
(4)对于待分类文本的K个邻居,依次按公式(3-4)进行计算d隶属每个类别的权重。
W(d)= ∑ Tj(di)* Sim(d,di) (3-4)
其中,y表示d的特征向量,Tj(di)表示指示函数,指示是否是同一类别,即di是否属于Cj,若是,则值为1,否则为0。Sim(d,di)表示待分类文本与邻居di的复合相似度。
(5)比较每个类的权重,将权重最大的类别定为d的类别。转入(2)直至所有待分类文本分类完成。
4 实验结果及分析
4.1 文本分类的性能评价
评价文本分类算法的有两个指标:准确率(Precision)和召回率(Recall)。由于准确率和召回率是分别从两个不同的方面来评价分类效果,所以一般采用F_measure来评估分类效果,如公式4-1。
4.2 文本分类实验结果及分析
本实验语料采用搜狗实验室文本分类语料库,选取军事、体育、旅游、教育、娱乐、财经六个类别,每个类别下挑选200篇文章,总共1200篇,其中训练集占1/3,首先,针对不同的K值下的分类效果找出最佳的K值,然后,对传统KNN算法和基于相似度加权的KNN算法进行对比试验。传统的KNN算法的权重计算方法如公式4-2所示:
W(d)= ∑ Tj(di)* SimVSM(d,di) (SimVSM(d,di)为公式3-1所求)(4-2)
最终确定实验的参数如下:KNN的K值取20,主题数K=30,Dirichlet先验参数选取经验值α=1,β=0.01,Gibbs抽样次数设为5000; VSM和LDA模型线性结合参数λ设置为0.8,实验效果如图2所示。
从图2中可以看出,改进后的KNN分类算法在军事、体育、旅游、教育、娱乐、财经六个方面都较传统KNN分类算法好一些,因为,传统KNN算法只是单纯第从文字层面来计算两段文本之间的距离,而将VSM结合LDA模型后,既可以较完整地保留文本的信息,又可以提取语义层面的信息,这样能更精确地计算两段文本之间的相似度。
5 总结与展望
本文提出了基于VSM和LDA模型相结合的KNN分类算法,与传统KNN分类算法相比,引进了LDA模型,从而在计算两段文本之间的距离时融合了语义层面的相似度,在相似度计算方法上进行了改进,实验也验证了改进后算法的有效性。
由于当前所用的中文语料库还有待完善,本文选用的搜狗实验室文本语料库,主题数较少,使得LDA主题模型的作用不太明显,后续将考虑使用爬虫程序从各大新闻网站上选取一些语料库的来源。
参考文献:
[1]张宁.使用 KNN 算法的文本分类[J].计算机工程,2005(04).
[2]G.Salton,A.Wong,C.S.Yang.A Vector Space Model for Automatic Indexing[J].Communications of the ACM: Volume 18 Issue 11,1975(11).
[3]王萌,何婷婷,姬东鸿,王晓荣.基于HowNet概念获取的中文自动文摘[J].中文信息学报,2005,19(03):87-93.
[4]Blei D M, Ng A Y, Jordan M I.Latent dirichlet allocation[J].the Journal of machine Learning research, 2003(03):993-1022.
[5]赵爱华,刘培玉,郑燕.基于LDA的新闻话题子话题划分方法[J]. 小型微型计算机系统,2013(04).
[6]董婧灵,李芳,何婷婷.基于LDA模型的文本聚类研究[G].2011.
[7]王爱平,徐晓艳,国玮玮,李仿华.基于改进KNN算法的中文文本分类方法[J].微型机与应用,2011(18).
作者简介:彭雨龙(1989-),男,湖南邵阳人,硕士研究生,研究方向:数据挖掘。