山東青年政治學院 高 強
基于向量空間的文本聚類算法
山東青年政治學院 高 強
聚類是一種非監督學習,以k-means為例,簇心的選取是個非常隨機的過程,導致k值相同的情況下聚類的結果每次都不一樣,又不好取個平均,所以聚類的好壞很難被評價出來。文本聚類是將一個個文檔由原有的自然語言文字信息轉化成數學信息,以向量空間點的形式展現出來,通過計算那些點距離比較近來將那些點聚成一個簇,簇的中心叫做簇心。一個好的聚類要保證簇內點的距離盡量的近,但簇與簇之間的點要盡量的遠。通過對數字信息的聚類,使所代表的文本內容產生分類的結果,并能一定程度的保證文本聚類結果的精度。
聚類;文本聚類;向量空間
文本挖掘是隨著web的興起,而發展起來,就文本挖掘本身來說,它不僅是一門單純的數據挖掘技術,更融合了機器學習、模式識別、人工智能、統計學、計算機語言學、計算機網絡技術、信息學等多個領域。和數據挖掘一樣,文本挖掘仍然強調發現隱含的知識信息,但兩者仍有很大的不同,這種不同在于,和傳統的數據挖掘處理的對象相比,文本挖掘所面對的是大量的、異構的、分布式的web信息,這些信息可以是多種文件類型、或多種文字、甚至是文字流媒體,因此是半結構化、非結構化的信息。
由于在浩如煙海的互聯網信息中,80%的信息都是以文本形式存放的,因此對web的挖掘是當前文本挖掘的主要方向,自然語言處理所要面對的基本問題是:采用什么方法,把非結構化的問題轉化為結構化或半結構化,以致于能利用成熟的數學模型去解決。文本的處理亦是如此,首先面對文本的結構和所包含的信息進行抽象,建立適合某種算法的模型,從而能代替文本信息本身,然后,能把抽象出來的結構和特征運用結構化的算法加以運算,,在這個過程中,要保證特征項能夠滿足原文本的維度,也就是說,在轉化的過程中,要保證文本信息的特征不丟失,不損耗,在新的模型中,仍能夠顯示的、有差異性的表達。
要完成上述的過程,目前比較成熟的方法是將文本信息按照分詞法和詞頻統計方法得到原文本的特征值,再將此特征值做進一步凈化,再把最后得到的數據當成一個詞頻向量,打到一個向量空間里去進一步分析,有時為了使向量所表達的特征項維數不至于太高,在保證原文含義的基礎上,找出對文本特征類別最具代表性的文本特征。為了解決這個問題,最有效的辦法就是通過特征選擇來降維。
文本挖掘的研究重點集中到文本模型的表達和特征詞的選取算法上,特定的挖掘算法對對象的特征項往往有比較嚴格和針對性要求,因此,在對文本數據做數據轉化時,往往要考慮比較多的因素,一般來說,應注意以下幾個方面:1)特征項要能夠確實標識文本內容;2)特征項具有將目標文本與其他文本相區分的能力;3)特征項的個數不能太多;4)特征項分離要比較容易實現。
在分析完特征項選取的因素后,我們將考慮如何進行特征抽取,在中文文本中,我們更習慣于把詞作為特征項抽取出來,這是因為,和字相比,詞有更強的表達能力;和短語相比,詞又更容易切分。這樣,切分出來的作為文本特征的詞,進一步抽象成為向量,用來實現文本之間的相似度的度量。而相似性度量算法方面又有很多選擇,應用比較廣泛的有:1)歐氏距離算法;2)余弦相似度算法;3)皮爾遜相關度。
至此,文本挖掘一般采用向量空間模型,用特征詞條(T1,T2,…Tn) 及其權值Wi 代表目標信息,再用這些特征詞條的向量進行相似度運算,運算結果顯示文本的相關程度。特征詞條和權重的選擇在意過程中稱作特征提取,提取方法的優劣直接影響到系統的運行。
設D為一個包含m個文檔的文檔集合,Di為第i個文檔的特征向量,則有:
D={D1,D2,…,Dm}, Di=(di1,di2,…,din),i=1,2,…,m
其中dij(i=1,2,…,m;j=1,2,…,n)為文檔Di中第j個詞條tj的權值,它一般被定義為tj在Di中出現的頻率tij的函數,例如采用TFIDF函數,即dij=tij*log(N/nj)其中,N是文檔數據庫中文檔總數,nj是文檔數據庫含有詞條tj的文檔數目。假設用戶給定的文檔向量為Di,未知的文檔向量為Dj,則兩者的相似程度可用兩向量的夾角余弦來度量,夾角越小說明相似度越高。
通過上述的向量空間模型,文本數據就轉換成了計算機可以處理的結構化數據,兩個文檔之間的相似性問題轉變成了兩個向量之間的相似性問題。

圖1
圖1所示的幾個部分,一般生成文檔向量矩陣的格式是,每一行代表一個文檔,每一列是一個維度代表該文檔這個詞的權重,沒出現這個詞就是0,幾千個文件維度在10多W左右(看文檔的大小),矩陣將其稀疏,也就是說,在一個高維空間中,幾千個點幾乎都聚在了一起,雖說彼此之間有距離,但是距離非常之小,很明顯這樣聚類效果肯定非常差,實測過,跟拋硬幣的概率一樣。于是將矩陣稠密一點就想到了pca降維,pca是主成分分析的縮寫,主要思想是取這個高維向量中方差最大的方向,經過一些數學變換將有用的部分保留,沒用的部分舍棄,這種辦法同樣適合分類算法中尋找最顯著的特征。該算法可以比較好的解決k-means每次聚類結果偏差太大的問題,相比dbscan有可以設置聚類的個數(當然閾值也可以設置),最重要的是sklearn有現成的庫調用,速度還很快。
以上詳細論述了文本挖掘的一般思路,但對于特征抽取時,選詞如何確定,一個容易想到的思路,就是找到出現次數最多的詞。如果某個詞很重要,它應該在這篇文章中多次出現。于是,我們進行"詞頻"(Term Frequency,縮寫為TF)統計。這就是單詞權重最為有效的實現方法就是TF*IDF。
它是由Salton在1988年提出的。其中TF 稱為詞頻,用于計算該詞描述文檔內容的能力;IDF稱為反文檔頻率,用于計算該詞區分文檔的能力。
用統計學語言表達,就是在詞頻的基礎上,要對每個詞分配一個"重要性"權重。最常見的詞給予最小的權重,較常見的詞給予較小的權重,較少見的詞給予較大的權重。這個權重叫做"逆文檔頻率"(Inverse Document Frequency,縮寫為IDF),它的大小與一個詞的常見程度成反比。
知道了"詞頻"(TF)和"逆文檔頻率"(IDF)以后,將這兩個值相乘,就得到了一個詞的TF-IDF值。某個詞對文章的重要性越高,它的TF-IDF值就越大。所以,排在最前面的幾個詞,就是這篇文章的關鍵詞。因此,運用這一算法,我們可以很方便的提取出關鍵詞作為向量的特征項。
本文比較完整的論述了文本挖掘的技術細節,著重分析了特征詞抽取、運用TF*IDF方法等文本挖掘必備環節,該方法對當前的web文檔處理、分析都有廣泛而深入的應用,可以說很多針對文本內容的挖掘算法,都是在向量空間基礎上做進的一步開發,因此理解和運用這一方法對文本數據的處理有著重大的現實意義。
[1]孫爽,章勇.一種基于語義相似度的文本聚類算法[J].南京航空航天大學學報,2006.
[2]蔣旦,周文樂,朱明.基于語義和圖的文本聚類算法研究[J].中文信息學報,2016.
[3]杜坤,劉懷亮,王幫金.基于語義相關度的中文文本聚類方法研究[J].情報理論與實踐,2016.
高強,男,山東大學計算機科學與技術學院碩士研究生,山東青年政治學院信息工程學院講師,研究領域包括數據庫、數據挖掘、大數據的分布式存儲等。