当前位置:文档之家› 计算机毕业论文_一种基于潜在语义结构的文本分类模型

计算机毕业论文_一种基于潜在语义结构的文本分类模型

一种基于潜在语义结构的文本分类模型摘要:潜在语义索引(LSI)模型,是一种已经成功地应用于文本分类等很多领域的算法。

LSI模型能在一定程度上解决一词多义和多词一义问题,并能过滤一部分文档噪音。

然而在LSI模型中,对稀有类别很重要的分类特征,可能因为在整个文档集中不重要而被滤掉。

针对这一问题,本文提出了一种新颖的扩展LSI模型的文本分类模型。

新模型在尽量保留文档信息的同时,增加考虑了文档的类别信息。

这样,新模型将能比LSI模型更好地表示原始文档空间中的潜在语义结构。

在实验中,本分类模型也表现出了非常好的分类性能。

关键词:文本分类潜在语义索引偏最小二乘分析中图分类号:TP18 文献标识码: A1 引言自动文本分类就是在给定的分类体系下,根据文本的内容自动地确定文本关联的类别。

如今,已经有很多基于统计和机器学习的文本分类算法,如:回归模型、K近邻、决策树、朴素贝叶斯和支持向量机等[1]。

其中,很多现有的分类算法都是基于从文本中抽取关键词(经常是单独的词)的方法。

在这种方法中,假定一个关键词唯一地代表一个概念或语义单元;然而实际的情况是:一个词往往有多个不同的含义,多个不同的词也可以表示同一个语义。

这就是所谓的一词多义和多词一义。

比如:“马上”可以有“立刻”的意思,也可以理解为“马的上面”;“感冒”、“伤风”和“着凉”却代表着同一种疾病。

像这样的情况是很难由计算机自动判别的。

一词多义和多词一义,是所有基于语义的算法必须解决的两个主要问题。

潜在语义索引(LSI: Latent Semantic Indexing)[2],是近年来比较有效的算法之一。

LSI 把原始的向量空间转换成潜在语义空间,文档和查询就在转换后的语义空间上进行表示和比较。

实验表明这种方法可以在一定程度上解决一词多义和多词一义问题:新的语义空间是原始“文档向量矩阵”的线性组合变换得到的,一般认为这个空间能捕捉文档集中的潜在语义结构。

由于LSI在信息检索中的优异表现[2],就有人开始尝试将其应用于文本分类领域。

其中,Wiener的工作[3]是很有代表性的。

Wiener的实验中以两种方式使用了LSI。

(1)利用LSI对原始向量空间降维。

把潜在语义空间中权重较低的维滤掉,这样就可以得到原始空间的一个子集,并滤掉一些噪音;(2)将整个文档集按类别进行划分,为每个类别建立一个LSI表示。

为每个类别构建一个单独的LSI表示,很重要的一个原因是:有一些对特定类很重要的词,由于词义不确定的问题,在整体考虑所有类的时候,反而会变的不重要。

如bank这个词可能对财经类很重要,但如果把所有类放在一起考虑,这个词就有可能因为它的多义性在语义空间中被滤掉(或变得不重要)。

实际上,我们发现这种分立的LSI表示,确实可以分别为每个类找到重要的词(或特征)。

但在考虑整个文档集的时候,情形就会有所不同:对单个类重要的词并不一定就对分类有大的贡献。

文本分类的关键是在整体考虑下,在所有的类别中,为文档找到它最有可能属于的类。

这种类别之间的舍取,在每个类别都是单独考虑情况下肯定不可能做到完全公平。

在本文中,我们提出了一种对LSI扩展的算法。

我们提取的语义特征不仅反映了文档和词的信息,也考虑了文档的类别信息。

不同于为每个类建立单独的LSI表示,我们把所有的信息整合在一个LSI表示里。

本文组织如下:第一部分是引言,第二部分介绍一些相关的基本概念,第三部分详细阐作者介绍:曾雪强(1978-),男,硕士研究生,助教,研究方向为文本分类和信息检索。

Email: zxq@述本文提出的模型,实验结果和分析在第四部分中说明,最后是结束语。

2 相关工作2.1 基于向量空间模型的文本分类在向量空间模型中,文档以由n 个词组成的向量表示(这些词从文档集中选取得到),词也可以由m 篇文档组成的向量表示。

在实际使用中,用“文档向量矩阵”X 能最好的代表这种对偶的信息表示,其中一列j X ∙代表一个词、一行∙i X 代表一篇文档:⎪⎪⎪⎪⎪⎭⎫ ⎝⎛==⎪⎪⎪⎪⎪⎭⎫⎝⎛=∙∙∙∙∙∙m n mn m m n n X X X X X X x x x x x x x x x X2121212222111211),,,( 矩阵中的元素ij x ,一般表示词j 在文档i 中出现的频数;也可以根据其他因素调整它的权重[4]。

比如,以反向文档频率(IDF: Inverse Document Frequency )调整:)/log(*j ij ij df m tf x =其中,文档频数j df 是出现词j 的文档数量。

说明一下,由于一个词只会在很少的文档中出现,因此矩阵X 中的大多数元素都会是零。

信息检索的典型处理方式就是关键字匹配。

用户提出一个查询q ,然后用和文档一样的方式,把它看成一个由关键字组成的向量。

通过计算查询向量和文档向量之间的点积(对向量的规一化消除文档长度的影响),可以得出两者之间的相似度。

所有m 篇文档的相似度可以构成一个向量s(TXq s =),查询q 的相关文档就可以根据这个指标排序并返回给用户。

文本分类,就是把新的文档归到已有的类别体系中去。

有很多方法可以实现这个目的,一种简单的分类方法是为每个类别计算一个中心向量i C (类中所有文档向量的平均值)[5]。

这些中心向量被认为是每个类别的代表。

所有k 个类别的k 个中心向量,组成一个n k ⨯ 的矩阵Tk 21)c ,,c ,(c C ⋅⋅⋅=。

判别文档属于某个类的标准是,该文档距离哪个类别的中心向量更近。

其他的方法[6]则是通过最小化误差平方和C ,来解决文本分类问题,C 的定义如下:||||min arg B CX C T C-=其中,B 是保存训练集文档的正确类别信息的m k ⨯矩阵。

一篇新进文档,要通过投影到变换向量上得到与每个类的相似度,并由具体的阈值,决定其到底属于哪个类或哪几个类。

2.2 应用LSI 模型的文本分类在原始的“文档向量矩阵”中,存在着冗余、词语多义和噪音问题。

我们希望建立一个比原始矩阵小得多,并只包含有效语义的子空间。

要达到这个目的,一般可以通过有效的维数约减。

维数约减后,冗余的信息可以合并在一起,词语多义可以通过考虑上下文相关信息解决,把相对不重要的一些特征约去则可以部分解决噪音问题。

LSI 就是这样一种维数约减方法。

它可以通过对“文档向量矩阵”进行解奇异值分解(SVD: Singular Value Decomposition )运算,自动计算得到一个比原始空间小得多的有效语义空间:⎪⎪⎪⎭⎫ ⎝⎛⎪⎪⎪⎭⎫ ⎝⎛==∑=r r r ri i i i v v u u v u X 1111),,(σσσ其中,r 是矩阵X 的阶,()∑≡rr diag σσ1是由特征值构成的对角矩阵,),,(1r r u u U ⋅⋅⋅=和),,(1r r v v V ⋅⋅⋅=分别是左、右特征向量。

一般r 个特征值是按大小排序的,当要进行特征值截取的时候,比如只保留前k 个最大的特征值,下面的矩阵就是原始矩阵的非常好的近似:T T V U V U X k k k r r r ∑≈∑=在得到的k 维子空间中,一篇文档∙i X 的投影是k i V X ∙,而所有m 篇文档的投影就是k k k U XV ∑=。

查询q 的变换方式也是如此。

因此,查询q 和文档之间的相似度计算在LSI的子空间中就变成了:))(())((T T T q V U qV X V s k k k k k ∑==维数的大量约减,既降低了计算的复杂度也滤去了一部分噪音。

比如,求矩阵中心向量或作矩阵变换的计算量就从n m ⨯变成了k m ⨯ [5]。

这样的方法在朴素贝叶斯分类模型[7]、KNN 模型和SVM 模型[8]中都被证明是非常有效的,提高了分类模型的准确度。

LSI 成功的原因在于,LSI 得到的语义空间比原始特征空间更能表达分类必须的语义结构,部分地解决了信息检索中的同义词和文本分类中的信息冗余问题。

在数学上,通过SVD 选取的矩阵是原始矩阵X 在k 阶情况下的最佳近似。

从统计观点看,LSI 和主成分分析类似,是一种非常有效的维数约减方法。

即:认为特征值较小的维是噪音,并将其滤去。

然而,LSI 在降低维数的同时也会丢失结构信息。

实际上,LSI 基于文档信息来建立语义空间(文档的类别信息并未考虑),得到的空间会保留原始矩阵中最主要的全局信息。

但有一种情况是:一些对特定类别分类贡献很大的特征,放在全局下考虑却会变得不重要了。

这样的特征在维数约减的过程中,就很容易被滤掉,而如果这样,特定类别的分类精度就会受影响。

要解决这个问题,文档的类别信息就应该也被考虑进来。

以传统方式使用LSI 的另一个问题是:没有理论说明,在得到的语义空间中到底应该保留多少维,而维数的变化对最后的结果又有很大的影响[8]。

在实际使用中,人们一般中只能通过反复的实验来确定这个值。

3 应用于分类的一种潜在语义模型使用LSI 方法的前提假设是,在由大量的词和特征构成的“文档向量矩阵”中隐含着有规律的潜在语义结构。

如前所述,稀有类别的重要特征却有可能被忽略掉。

事实上也是,稀有类中出现的词很可能是文档集中的非常见词,而非常见词就很有可能被滤掉。

于是对稀有类别很重要的分类特征,可能因为在文档集中不重要而被滤掉。

为了解决这个问题,Wiener [9]使用局部LSI 模型代替全局LSI 模型。

他们为每个类别建立了一个独立的LSI 模型,在分类过程中,每个局部LSI 模型都被单独的使用。

这样的方法能局部解决前面提到的问题:对稀有类别很重要的特征可以在其局部LSI 模型中保留下来。

但这样还有其他的问题:(1) 一篇新进文档属于哪些类别,各个局部LSI 模型是分别单独考虑的,那么不同的局部模型得到的相似度分值就很难相互比较。

可能造成的情况是,应该属于某个类的文档却被错误的分到了其他类中。

(2) 无法很好的解决一词多义的问题。

比如,在某个特定类别(如:金融)中,一个多义词(如:bank )就可能变得没有歧义。

局部LSI 模型会认为这种词很重要,但如果放在文档集中考虑,它对分类的贡献却不大。

在分立的局部模型中,我们将无法考虑这种一词多义的情况。

为了解决这个问题,我们提出了一种同时考虑文档信息和类别信息的分类模型。

与LSI 模型类似,我们也希望从原始空间中得到一个潜在语义空间;然而不同的是,我们要在尽量保留文档信息的同时,通过对文档信息和类别信息建模,把文档和类别之间的关联也考虑进来。

从统计学的观点来看,和偏最小二乘分析(Partial Least Square Analysis )有些类似。

下面给出一些符号约定:X 是m ×n 维的“文档向量矩阵”;T m 21)y ,,y ,(y Y ⋯=是m维的类别信息向量,其中,⎩⎨⎧=不属于该类别文档属于该类别文档 0 1i i y i;矩阵X 和向量Y 都要先做规一化。

相关主题