薛蘇琴,牛永潔
(延安大學數學與計算機學院,陜西延安716000)
基于向量空間模型的中文文本相似度的研究
薛蘇琴,牛永潔
(延安大學數學與計算機學院,陜西延安716000)
在文本聚類中需要衡量中文文本之間的相似性。本文首先討論了文本相似度的概念和常用計算算法,詳細介紹了向量空間模型和算法步驟,采用刪除去除詞表、近義詞合并、修改文件長度3中策略對算法進行了改進。最后借助盤古分詞組件和搜狗實驗室的互聯網詞庫,在Visua1 Studio 2008環境下使用C#語言對算法進行了實現。使用在CNKI上得到的5個不同領域的500篇學術論文的中文摘要對算法進行了測試,結果表明新算法在誤差率方面有較大改善,但運行時間較長。
文本相似度;向量空間模型;分詞;信息處理;C#
隨著互聯網的迅速普及和發展,人們從萬維網上獲取信息的途徑和速度得到極大的拓展和提高,在獲得信息的同時,對信息處理也提出了相應的需求。目前,在信息的表示中,聲音、圖形、圖像、文本等類型眾多,但是文本仍然是這些類型中最主要的表示載體之一,在信息處理領域中,對于文本聚類、分類、查重等領域往往需要計算兩個文本之間的相似度,而且相似度計算往往是其他處理步驟的前提和基礎,相似度的計算往往決定著后續處理過程的準確性和有效性。
文本相似度是衡量多個文本之間在表述內容方相似程度的一個具體數值,這個數值越大表明互相比較的兩個文本之間在內容方面交集越大,否則就表示相比較的文本之間在內容上相互交集的內容越少[1]。相似度的計算目前已經應用到很多的領域,在機器翻譯[2_3]領域需要通過文本相似度來選取平行語料、在信息檢索[4]領域需要通過文本相似度來擴展或者縮減檢索的范圍,從而獲得用戶最希望得到的結果,自動問答[5_7]領域中往往需要問題自動分類以及答案聚類,這些都需要進行文本相似的計算,文本聚類[8_10]和文本分類[11]的核心問題就是將相似的對象歸為一類,所以文本相似度的計算是一個非常重要和非常基礎而且關鍵的一個技術問題。
文本相似度是一個非常復雜的概念,在眾多的學科中被廣泛地討論。世界各國的語言歸屬于不同的語法體系,這些體系之間既有相同的地方,也有很多很大的差異性,如果使用一種文本相似度計算方法來處理,顯然不符合實際的需求,而且結果也往往會差距很大。相對于其他的語言體系,中文有自己的獨特的語言特點,經過長時間的語言演化,中文語言的靈活性及語法的寬松性都比較大,因此,使用精確計算比較強的計算機對中文進行處理比語言更為嚴謹和語法更為有規律的其他語言而言就困難很多,并且國內在該領域的研究起步比較晚,而且發展速度也比較緩慢。
到現在為止,世界上還沒有形成一個能夠被學術界一致廣泛認可的統一的文本相似度概念,主要原因是各個不同的語言體系的語法規律、語句結構、表達方式等都差別很大。Patrick Pante1和Dekang Lin曾給出了一個統一的文本相似度定義,由于該定義去除了與應用領域的相關性,緊緊從文本組成的最基本元素出發,所以該概念的應用范圍比較廣泛。他們認為:如果兩個文本之間的共性越多,那么相似度也就越高;相反,如果兩個文本之間的區別越大,相似度也就越低;當兩個文本的組成元素完全相同時,相似度達到最大值1。
如果要計算文本X和Y的相似度,首先從X和Y文本中提取兩者之間相同或相似的屬性和特征組成相似元組,用Si=(xi,yi)表示。假設它們之間存在n個相似元組,這些相似元組就組成了一個集合,集合表示為{S1,S2,S3,…,Sn},其中Si的取值用于表示相似元組(xi,yi)中xi和yi的相似度,這個取值是一個具體的實數,取值范圍是0到1之間,其中:
當Si=0,表示相似元組(xi,yi)中的兩個特征項不相同也不相似;
當0<Si<1,表示相似元組(xi,yi)中的兩個特征項有一定的相似程度;
當Si=1,表示相似元組(xi,yi)中的兩個特征項完全相同。
相似元組(xi,yi)的集合代表了兩個文本之間在內容表述上的共性,為了消除文本長短對這種共性的影響,往往使用相似元組除以文本的總長度來進行歸一化處理,歸一化后的結果如果越大,則認為文本之間的相似度越高,否則相似度就越小。
向量空間模型VSM(Vector Space Mode1)的提出時間比較早,早在1969年就由Gerard Sa1ton和McGi11兩人首先提出[12]。向量空間模型的基本思想完全符合Patrick Pante1和Dekang Lin提出的文本相似度定義,向量空間模型首先將完整的文本切分為若干個不容的部分,每個組成部分作為文本的特征項,然后按照一定的方法取得每個特征項在該文本中的權重,于是整個文本的字符就被轉換為由特征項權重表示的多個離散的數字,如果將這些數字視為一個向量的分量,那么這些權重就將文本映射到一個高維空間中,不同的文本就對應高維空間中的不同向量,最后在高維空間中再使用特定的方法來計算這些向量之間的差異性,用這個差異性來表示文本之間的相似度。
使用空間向量模型進行文本相似度的計算過程中,核心的計算步驟是計算相似元組(xi,yi)的權重,目前,在計算相似元組權重的各種算法中,應用最廣泛的是TF_IDF算法及該算法的各種改進方法,TF_IDF算法使用特征項在文本中的出現頻次和該特征項在文本中的重要程度的乘積作為該特征項的權重。TF_IDF算法由于概念簡單,實現方便等特點而使用最為廣泛,而且TF_IDF算法不用考慮文本的語義特點直接利用權重向量在高維空間中的相似性來近似的代替文本本身的語義相似性,避免了各種不同語言的語法差異性和語句結構,降低了文本相似度計算的復雜度,而且能夠得到讓人可以接受的結果。
為了得到更加精確的文本相似度結果,除了基于向量空間模型以外,還有很多其他比較具有廣泛代表性的算法。比如貝爾實驗室提出的隱性語義索引(Latent Semantic Indexing),這種算法使用海量的文獻找出詞匯之間的關系,雖然需要海量數據的支持,但是能夠得到讓人滿意的結果,Goog1e就是使用該算法的典型代表。V1adimir O1eshchuk等提出的基于本體論(Onto1ogy)的文本相似度計算方法,這種算法需要對文本中的實體和屬性進行識別或者標注,盡管能夠得到比較滿意的結果,但是本體在不同語言中差別巨大,使得這種算法的通用性大大降低,其他具有代表性的文本相似度算法還有Carbone11等提出的最大邊緣相關的方法(Maxima1 Margina1 Re1evance),Nirenburg提出的兩種基于串匹配和罰分機制的文本相似度計算方法等。這些文本相似度的計算方法都是針對英文文本進行的,由于中文和英文的差異性以及這些算法的其他一些要求,使得這些算法在中文領域的使用工程中,效果往往并不是很好。
在中文相似度領域,國內很多學者也提出了很多不同的針對于中文相似度的很多方法,比如,潘謙紅、王炬、史忠植提出的利用屬性論計算文本相似度的方法[13],張煥炯等提出的基于漢明距離的文本相似度計算方法[14],晉耀紅提出的基于語境框架的文本相似度計算方法[15],霍華、馮博琴提出的通過壓縮稀疏矩陣矢量相乘的文本相似度計算方法,余剛、裴仰軍等提出的基于詞匯語義進行文本相似度計算的方法。這些算法都有自己不同的優缺點,適用于不同的應用環境,本文的文本相似度計算主要是用來在學術論文大數據方面的聚類分析,由于基于向量空間模型的計算方法實現簡單,運行速度快等特點比較符合本文的要求。
2.1向量空間模型
向量空間模型是建立在一個假設基礎上的數學模型。這個基礎的假設是一個文本文件所表達的內容僅與該文件中出現的某些特定關鍵詞有關,而與這些關鍵詞在文本中出現的位置、順序無關,這些關鍵詞在文本中出現的頻次多少則反映了文本表述內容不同方面的重要程度。也就是說,一個文本中所蘊涵的內容知識可以通過文本中出現的關鍵詞和關鍵詞在文本中出現的次數來覆蓋。計算兩個文本內容方面的相似度問題可以轉換為計算兩個文本中包含的關鍵字的權重值組成的向量相似度問題。
在中文文本中,表述文本內容的基本組成單位由字、詞、詞組或短語組成,在向量空間模型中稱選用的這些基本組成單位為文本的特征項,根據向量空間模型的假設基礎,可以得到向量空間模型建立模型的基本思路是:首先對特征項在文本中出現的位置順序不考慮,然后假設所有的特征項之間相互之間沒有任何關聯,于是文本變轉換為若干相互不相干的特征項的集合。然后把這些特征項在文本中的權重值集合視為一個向量,一個文本就對應高維空間中的一個向量,文本相似度的計算問題就轉換為在高維空間中計算不同向量之間的相似問題。兩個向量的相似問題又可以通過計算兩個向量之間的夾角的大小來衡量。
假設現在有一個文本T,首先確定文本包含的n個特征項{t1,t2,t3,…,tn},其中ti是文本中的第i個特征項,1≤i≤n,然后計算每個特征項在文本T中的權重Wi,將Wi作為ti特征項的坐標,于是將文本T映射到n維空間在中,文本就可以表示為一個向量。

為了得到特征項的權重,通常采用統計學的方法進行,統計特征項在文本T中出現的頻次作為特征項的權重,認為某個特征項在文本T中出現的頻率越高,認為該特征項越能代表文本的主要意義。
向量空間模型中應用得最廣泛,并且也最能體現特征項權重的全面性的一種計算方法是TF_IDF權重計算法。在該方法中特征項的權重由TF權值和IDF權值兩個部分構成,對于文本中的第k個特征項tk,其對應權重計算方法為:

其中,TF(Term Frequency)為特征項tk在文本中出現的頻次與文本的總長度的比值,即:

IDF(Inverse Document Frequency)權值:特征項在全局文本D中的出現頻率,即:

假設全局文本集中共有M篇文本,特征項tk在m篇文章中出現過,那么

其中α為經驗系數,一般取0.01,從公式(4)可以看出,如果一個特征項只出現在一個或少數文本中,那么它很可能是能體現文本內容特征的語義中心詞,會被賦予大的IDF值以提高權重。
得到文本的特征向量以后,文本Ti和Tj之間的相似度S(Ti,Tj)可以通過它們的特征向量之間的關系來衡量。目前主流的相似度衡量方法是用兩個文本特征向量的內積或內積的某種相關系數作為文本相似度值,這種方法的本質是認為兩個文本的重疊特征項代表了它們內容的相似性。
如果兩文本的特征向量為
Vti=(Wi1,Wi2,Wi3,…,Win),Vtj=(Wj1,Wj2,Wj3,…,Wjn),并且兩特征向量在空間中的夾角為θ,那么它們的相似度衡量方法為:

2.2算法的改進和步驟
為了得到文本的特征項,需要將文本按照字、詞或者短語的語法單位進行分割,利用中文分詞程序可以得到需要的結果,但是在分詞過程中會遇到兩個問題。第一是不論哪種語言的文本,都存在一些沒有實際意義的但使用頻率很高的虛詞和功能詞,比如中文文本中經常使用的“的地得”、“之乎者也”、“啊嗎呢”等,這些詞匯往往把真正具有意義的一些關鍵詞淹沒掉,造成真正的特征項的權重變小。解決這個問題的方法通常是構造一個去除詞表(remove words 1ist),把這些詞從特征集中過濾掉。本文采用了四川大學機器智能實驗室的停用詞庫。第二個問題是向量空間模型以詞語作為文本的特征項,各個特征項被假定相互之間沒有任何關系,但是在實際的文本中,有些詞雖然外觀上不同,可是在語義方面可能有很強的聯系甚至有些意義完全相同,比如中文中的通假字、近義詞、多義詞等會增加文本向量的維數,增加運算量,而且會影響文本相似度的計算準確性,本文通過網絡資源收集整理了4 300多條近義詞庫,根據近義詞庫在分詞過程中對文本特征進行了合并操作。
根據公式(3)得知TF的計算是特征項的頻次除以文本的總長度,但是一篇文章中往往有30%~40%的無實際語義特征詞語,這些詞語的存在加大了文本的總長度,無疑降低了TF權重,本文在計算TF權重時將公式更改為

根據2.1節的描述和對算法的改進思想,基于向量空間模型的中文文本相似度的算法步驟如下:
1)得到一個中文文本,計算文本的總長度。
2)對中文文本進行分詞。
3)去掉文本中的虛詞和功能詞。
4)根據近義詞庫合并特征項。
5)統計文本特征項的頻率,按照公式(7)計算文本的TF。
6)按照公式(5)計算IDF。
7)得到另一個中文本文,重復1)~6)。
8)按照公式(6)計算兩個文本的相似度。
根據第2部分的描述,在Visua1 Studio 2008環境下,使用C#語言實現了基于向量空間模型的中文文本相似度的計算程序,運行界面如圖1所示。

圖1 文本相似度計算運行界面
程序在分詞時使用了開源中文分詞組件_盤古分詞。為了計算IDF需要一個很龐大的全局文本集D,程序采用了搜狗實驗室的數據資源_互聯網詞庫(SogouW)作為全局文本集D,在SogouW中共提供了157 202條數據,數據格式為:詞A詞頻詞性1詞性2…詞性N。整個程序中最主要的類是Document,類圖如圖2所示。

圖2 Documnt類圖
Document類主要的功能是加載需要計算相似度的文本文件,文本加載以前先加載互聯網詞庫SogouLabDic.dic文件,讀取內部每個詞出現的頻率,然后加載盤古分詞將文本文件分為一個字符串數組,將字符串數組逐個加入字典MyWord中,字典的KEY是字符串本身,字典的VALUE是一個Word類,Word類如圖3所示,Word類中有兩個屬性WordFrequency和CharacterVa1ue,WordFrequency用來存儲該字符串的詞頻,CharacterVa1ue用來存儲該字符串的TF*TDF即權重,在將字符串加入到字典MyWord中時,根據去除詞表刪除沒有實在意義的詞,同時根據近義詞庫對分詞后的結果合并分詞的結果。Document類的Simi1itudeVa1ueToDocumentUsingCos方法按照公式(6)計算兩個文本的相似度。

圖3 Word類
為了測試實現的中文文本相似度計算程序,在CNKI上選取具有相似研究內容論文的中文摘要作為測試對象,范圍主要集中在計算機、藝術、中文、馬列、教育等領域,每個領域100篇,共500篇,在每個領域中隨機選擇一篇中文摘要作為基準文本,衡量其他中文摘要與基準文本之間的相似度。
將收集的不同領域學術論文的中文摘要分發給不同領域的相關專業人員,讓相關人士對中文摘要進行人為的相似度評價,對不同人員對同一領域的相似度評價取平均值,作為文本之間相似度的標準值,然后使用本文的算法和傳統的算法按照同樣的規則對該中文摘要進行計算,比較兩種算法位于不同誤差范圍的篇數,同時也比較了每個領域中100篇中文摘要運行時間的平均值,比較的結果如表1所示。

表1 兩種算法運行結果比較
據表1的結果,可得出結論:本文的算法與傳統的算法比較而言,相對誤差更小,更能夠接近現實生活中人的判斷,但是由于在新算法中增加了刪除去除詞表和近義詞合并等的改進操作,所以新算法的運行時間比傳統的算法要長一些。
[1]陳飛宏.基于向量空間模型的中文文本相似度算法研究[D].成都:電子科技大學,2011.
[2]李洪巖.基于關鍵句的文本自動標簽研究[D].北京:北京郵電大學,2015.
[3]張艷杰,邵雄凱,劉建舟.一種基于語義與結構的句子相似度計算方法[J].湖北工業大學學報,2015(5):82_85.
[4]程志強,閔華松.一種基于向量詞序的句子相似度算法研究[J].計算機仿真,2014(7):419_424.
[5]陳麗莎.自動問答系統中基于WordNet的句子相似度計算研究與實現[D].廣州:華南理工大學,2014.
[6]劉亞軍,徐易.一種基于加權語義相似度模型的自動問答系統[J].東南大學學報,2004,34(5):609_612.
[7]孫昌年.基于主題模型的文本相似度計算研究與實現[D].合肥:安徽大學,2012.
[8]費紹棟.網絡輿情突發事件檢測與追蹤關鍵技術研究[D].濟南:山東師范大學,2015.
[9]彭敏,黃佳佳,朱佳暉,等.基于頻繁項集的海量短文本聚類與主題抽取[J].計算機研究與發展,2015(9):1941_1953.
[10]李曉嫻.微博熱點話題發現的研究[D].北京:北京交通大學,2014.
[11]程志強,閔華松.一種基于向量詞序的句子相似度算法研究[J].計算機仿真,2014(7):419_424.
[12]孫昌年.基于主題模型的文本相似度計算研究與實現[D].合肥:安徽大學,2012.
[13]李曉嫻.微博熱點話題發現的研究[D].北京:北京交通大學,2014.
[14]張煥炯,王國勝.基于漢明距離的文本相似度計算[J].計算機工程與應用,2001(19):21_22.
[15]朱青,李貞昊.基于主題詞分布的低價值新聞識別技術研究[J].計算機應用與軟件,2015(7):190_195.
Research on Chlnese text slmllarlty based on Vector sPace model
XUE Su-qin,NIU Yong-jie
(College of Mathematics&Computer Science,Yan'an University,Yan'an 716000,China)
In text c1ustering,the simi1arity between the Chinese text needs to be measured.First1y,this paper discusses the concept of text simi1arity and common a1gorithm,vector space mode1 and steps of the a1gorithm are introduced in detai1,using a stop1ist remova1 and merger of synonyms,modify fi1e 1ength 3 strategies to improve the a1gorithm.Fina11y With the he1p of Internet of Pangu word components and Sogou 1aboratory thesaurus,under the environment of Visua1 Studio 2008 using C# 1anguage a1gorithm is imp1emented.The a1gorithm was tested using the 500 academic papers on the CNKI obtained from 5 different fie1ds.The resu1ts show that new a1gorithm in the error rate is improved,but the running time is 1onger.
text simi1arity;vector space mode1;word segmentation;information processing;C#
TP391.1
A
1674_6236(2016)10_0028_04
2015_12_01稿件編號:201512008
陜西省自然科學基礎研究計劃項目(2013JM8042)
薛蘇琴(1971—),男,榆林吳堡人,碩士,副教授。研究方向:數據挖掘、智能算法、教育技術。