薛蘇琴,牛永潔
(延安大學數(shù)學與計算機學院,陜西延安716000)
基于向量空間模型的中文文本相似度的研究
薛蘇琴,牛永潔
(延安大學數(shù)學與計算機學院,陜西延安716000)
在文本聚類中需要衡量中文文本之間的相似性。本文首先討論了文本相似度的概念和常用計算算法,詳細介紹了向量空間模型和算法步驟,采用刪除去除詞表、近義詞合并、修改文件長度3中策略對算法進行了改進。最后借助盤古分詞組件和搜狗實驗室的互聯(lián)網(wǎng)詞庫,在Visua1 Studio 2008環(huán)境下使用C#語言對算法進行了實現(xiàn)。使用在CNKI上得到的5個不同領(lǐng)域的500篇學術(shù)論文的中文摘要對算法進行了測試,結(jié)果表明新算法在誤差率方面有較大改善,但運行時間較長。
文本相似度;向量空間模型;分詞;信息處理;C#
隨著互聯(lián)網(wǎng)的迅速普及和發(fā)展,人們從萬維網(wǎng)上獲取信息的途徑和速度得到極大的拓展和提高,在獲得信息的同時,對信息處理也提出了相應(yīng)的需求。目前,在信息的表示中,聲音、圖形、圖像、文本等類型眾多,但是文本仍然是這些類型中最主要的表示載體之一,在信息處理領(lǐng)域中,對于文本聚類、分類、查重等領(lǐng)域往往需要計算兩個文本之間的相似度,而且相似度計算往往是其他處理步驟的前提和基礎(chǔ),相似度的計算往往決定著后續(xù)處理過程的準確性和有效性。
文本相似度是衡量多個文本之間在表述內(nèi)容方相似程度的一個具體數(shù)值,這個數(shù)值越大表明互相比較的兩個文本之間在內(nèi)容方面交集越大,否則就表示相比較的文本之間在內(nèi)容上相互交集的內(nèi)容越少[1]。相似度的計算目前已經(jīng)應(yīng)用到很多的領(lǐng)域,在機器翻譯[2_3]領(lǐng)域需要通過文本相似度來選取平行語料、在信息檢索[4]領(lǐng)域需要通過文本相似度來擴展或者縮減檢索的范圍,從而獲得用戶最希望得到的結(jié)果,自動問答[5_7]領(lǐng)域中往往需要問題自動分類以及答案聚類,這些都需要進行文本相似的計算,文本聚類[8_10]和文本分類[11]的核心問題就是將相似的對象歸為一類,所以文本相似度的計算是一個非常重要和非?;A(chǔ)而且關(guān)鍵的一個技術(shù)問題。
文本相似度是一個非常復雜的概念,在眾多的學科中被廣泛地討論。世界各國的語言歸屬于不同的語法體系,這些體系之間既有相同的地方,也有很多很大的差異性,如果使用一種文本相似度計算方法來處理,顯然不符合實際的需求,而且結(jié)果也往往會差距很大。相對于其他的語言體系,中文有自己的獨特的語言特點,經(jīng)過長時間的語言演化,中文語言的靈活性及語法的寬松性都比較大,因此,使用精確計算比較強的計算機對中文進行處理比語言更為嚴謹和語法更為有規(guī)律的其他語言而言就困難很多,并且國內(nèi)在該領(lǐng)域的研究起步比較晚,而且發(fā)展速度也比較緩慢。
到現(xiàn)在為止,世界上還沒有形成一個能夠被學術(shù)界一致廣泛認可的統(tǒng)一的文本相似度概念,主要原因是各個不同的語言體系的語法規(guī)律、語句結(jié)構(gòu)、表達方式等都差別很大。Patrick Pante1和Dekang Lin曾給出了一個統(tǒng)一的文本相似度定義,由于該定義去除了與應(yīng)用領(lǐng)域的相關(guān)性,緊緊從文本組成的最基本元素出發(fā),所以該概念的應(yīng)用范圍比較廣泛。他們認為:如果兩個文本之間的共性越多,那么相似度也就越高;相反,如果兩個文本之間的區(qū)別越大,相似度也就越低;當兩個文本的組成元素完全相同時,相似度達到最大值1。
如果要計算文本X和Y的相似度,首先從X和Y文本中提取兩者之間相同或相似的屬性和特征組成相似元組,用Si=(xi,yi)表示。假設(shè)它們之間存在n個相似元組,這些相似元組就組成了一個集合,集合表示為{S1,S2,S3,…,Sn},其中Si的取值用于表示相似元組(xi,yi)中xi和yi的相似度,這個取值是一個具體的實數(shù),取值范圍是0到1之間,其中:
當Si=0,表示相似元組(xi,yi)中的兩個特征項不相同也不相似;
當0<Si<1,表示相似元組(xi,yi)中的兩個特征項有一定的相似程度;
當Si=1,表示相似元組(xi,yi)中的兩個特征項完全相同。
相似元組(xi,yi)的集合代表了兩個文本之間在內(nèi)容表述上的共性,為了消除文本長短對這種共性的影響,往往使用相似元組除以文本的總長度來進行歸一化處理,歸一化后的結(jié)果如果越大,則認為文本之間的相似度越高,否則相似度就越小。
向量空間模型VSM(Vector Space Mode1)的提出時間比較早,早在1969年就由Gerard Sa1ton和McGi11兩人首先提出[12]。向量空間模型的基本思想完全符合Patrick Pante1和Dekang Lin提出的文本相似度定義,向量空間模型首先將完整的文本切分為若干個不容的部分,每個組成部分作為文本的特征項,然后按照一定的方法取得每個特征項在該文本中的權(quán)重,于是整個文本的字符就被轉(zhuǎn)換為由特征項權(quán)重表示的多個離散的數(shù)字,如果將這些數(shù)字視為一個向量的分量,那么這些權(quán)重就將文本映射到一個高維空間中,不同的文本就對應(yīng)高維空間中的不同向量,最后在高維空間中再使用特定的方法來計算這些向量之間的差異性,用這個差異性來表示文本之間的相似度。
使用空間向量模型進行文本相似度的計算過程中,核心的計算步驟是計算相似元組(xi,yi)的權(quán)重,目前,在計算相似元組權(quán)重的各種算法中,應(yīng)用最廣泛的是TF_IDF算法及該算法的各種改進方法,TF_IDF算法使用特征項在文本中的出現(xiàn)頻次和該特征項在文本中的重要程度的乘積作為該特征項的權(quán)重。TF_IDF算法由于概念簡單,實現(xiàn)方便等特點而使用最為廣泛,而且TF_IDF算法不用考慮文本的語義特點直接利用權(quán)重向量在高維空間中的相似性來近似的代替文本本身的語義相似性,避免了各種不同語言的語法差異性和語句結(jié)構(gòu),降低了文本相似度計算的復雜度,而且能夠得到讓人可以接受的結(jié)果。
為了得到更加精確的文本相似度結(jié)果,除了基于向量空間模型以外,還有很多其他比較具有廣泛代表性的算法。比如貝爾實驗室提出的隱性語義索引(Latent Semantic Indexing),這種算法使用海量的文獻找出詞匯之間的關(guān)系,雖然需要海量數(shù)據(jù)的支持,但是能夠得到讓人滿意的結(jié)果,Goog1e就是使用該算法的典型代表。V1adimir O1eshchuk等提出的基于本體論(Onto1ogy)的文本相似度計算方法,這種算法需要對文本中的實體和屬性進行識別或者標注,盡管能夠得到比較滿意的結(jié)果,但是本體在不同語言中差別巨大,使得這種算法的通用性大大降低,其他具有代表性的文本相似度算法還有Carbone11等提出的最大邊緣相關(guān)的方法(Maxima1 Margina1 Re1evance),Nirenburg提出的兩種基于串匹配和罰分機制的文本相似度計算方法等。這些文本相似度的計算方法都是針對英文文本進行的,由于中文和英文的差異性以及這些算法的其他一些要求,使得這些算法在中文領(lǐng)域的使用工程中,效果往往并不是很好。
在中文相似度領(lǐng)域,國內(nèi)很多學者也提出了很多不同的針對于中文相似度的很多方法,比如,潘謙紅、王炬、史忠植提出的利用屬性論計算文本相似度的方法[13],張煥炯等提出的基于漢明距離的文本相似度計算方法[14],晉耀紅提出的基于語境框架的文本相似度計算方法[15],霍華、馮博琴提出的通過壓縮稀疏矩陣矢量相乘的文本相似度計算方法,余剛、裴仰軍等提出的基于詞匯語義進行文本相似度計算的方法。這些算法都有自己不同的優(yōu)缺點,適用于不同的應(yīng)用環(huán)境,本文的文本相似度計算主要是用來在學術(shù)論文大數(shù)據(jù)方面的聚類分析,由于基于向量空間模型的計算方法實現(xiàn)簡單,運行速度快等特點比較符合本文的要求。
2.1向量空間模型
向量空間模型是建立在一個假設(shè)基礎(chǔ)上的數(shù)學模型。這個基礎(chǔ)的假設(shè)是一個文本文件所表達的內(nèi)容僅與該文件中出現(xiàn)的某些特定關(guān)鍵詞有關(guān),而與這些關(guān)鍵詞在文本中出現(xiàn)的位置、順序無關(guān),這些關(guān)鍵詞在文本中出現(xiàn)的頻次多少則反映了文本表述內(nèi)容不同方面的重要程度。也就是說,一個文本中所蘊涵的內(nèi)容知識可以通過文本中出現(xiàn)的關(guān)鍵詞和關(guān)鍵詞在文本中出現(xiàn)的次數(shù)來覆蓋。計算兩個文本內(nèi)容方面的相似度問題可以轉(zhuǎn)換為計算兩個文本中包含的關(guān)鍵字的權(quán)重值組成的向量相似度問題。
在中文文本中,表述文本內(nèi)容的基本組成單位由字、詞、詞組或短語組成,在向量空間模型中稱選用的這些基本組成單位為文本的特征項,根據(jù)向量空間模型的假設(shè)基礎(chǔ),可以得到向量空間模型建立模型的基本思路是:首先對特征項在文本中出現(xiàn)的位置順序不考慮,然后假設(shè)所有的特征項之間相互之間沒有任何關(guān)聯(lián),于是文本變轉(zhuǎn)換為若干相互不相干的特征項的集合。然后把這些特征項在文本中的權(quán)重值集合視為一個向量,一個文本就對應(yīng)高維空間中的一個向量,文本相似度的計算問題就轉(zhuǎn)換為在高維空間中計算不同向量之間的相似問題。兩個向量的相似問題又可以通過計算兩個向量之間的夾角的大小來衡量。
假設(shè)現(xiàn)在有一個文本T,首先確定文本包含的n個特征項{t1,t2,t3,…,tn},其中ti是文本中的第i個特征項,1≤i≤n,然后計算每個特征項在文本T中的權(quán)重Wi,將Wi作為ti特征項的坐標,于是將文本T映射到n維空間在中,文本就可以表示為一個向量。
為了得到特征項的權(quán)重,通常采用統(tǒng)計學的方法進行,統(tǒng)計特征項在文本T中出現(xiàn)的頻次作為特征項的權(quán)重,認為某個特征項在文本T中出現(xiàn)的頻率越高,認為該特征項越能代表文本的主要意義。
向量空間模型中應(yīng)用得最廣泛,并且也最能體現(xiàn)特征項權(quán)重的全面性的一種計算方法是TF_IDF權(quán)重計算法。在該方法中特征項的權(quán)重由TF權(quán)值和IDF權(quán)值兩個部分構(gòu)成,對于文本中的第k個特征項tk,其對應(yīng)權(quán)重計算方法為:
其中,TF(Term Frequency)為特征項tk在文本中出現(xiàn)的頻次與文本的總長度的比值,即:
IDF(Inverse Document Frequency)權(quán)值:特征項在全局文本D中的出現(xiàn)頻率,即:
假設(shè)全局文本集中共有M篇文本,特征項tk在m篇文章中出現(xiàn)過,那么
其中α為經(jīng)驗系數(shù),一般取0.01,從公式(4)可以看出,如果一個特征項只出現(xiàn)在一個或少數(shù)文本中,那么它很可能是能體現(xiàn)文本內(nèi)容特征的語義中心詞,會被賦予大的IDF值以提高權(quán)重。
得到文本的特征向量以后,文本Ti和Tj之間的相似度S(Ti,Tj)可以通過它們的特征向量之間的關(guān)系來衡量。目前主流的相似度衡量方法是用兩個文本特征向量的內(nèi)積或內(nèi)積的某種相關(guān)系數(shù)作為文本相似度值,這種方法的本質(zhì)是認為兩個文本的重疊特征項代表了它們內(nèi)容的相似性。
如果兩文本的特征向量為
Vti=(Wi1,Wi2,Wi3,…,Win),Vtj=(Wj1,Wj2,Wj3,…,Wjn),并且兩特征向量在空間中的夾角為θ,那么它們的相似度衡量方法為:
2.2算法的改進和步驟
為了得到文本的特征項,需要將文本按照字、詞或者短語的語法單位進行分割,利用中文分詞程序可以得到需要的結(jié)果,但是在分詞過程中會遇到兩個問題。第一是不論哪種語言的文本,都存在一些沒有實際意義的但使用頻率很高的虛詞和功能詞,比如中文文本中經(jīng)常使用的“的地得”、“之乎者也”、“啊嗎呢”等,這些詞匯往往把真正具有意義的一些關(guān)鍵詞淹沒掉,造成真正的特征項的權(quán)重變小。解決這個問題的方法通常是構(gòu)造一個去除詞表(remove words 1ist),把這些詞從特征集中過濾掉。本文采用了四川大學機器智能實驗室的停用詞庫。第二個問題是向量空間模型以詞語作為文本的特征項,各個特征項被假定相互之間沒有任何關(guān)系,但是在實際的文本中,有些詞雖然外觀上不同,可是在語義方面可能有很強的聯(lián)系甚至有些意義完全相同,比如中文中的通假字、近義詞、多義詞等會增加文本向量的維數(shù),增加運算量,而且會影響文本相似度的計算準確性,本文通過網(wǎng)絡(luò)資源收集整理了4 300多條近義詞庫,根據(jù)近義詞庫在分詞過程中對文本特征進行了合并操作。
根據(jù)公式(3)得知TF的計算是特征項的頻次除以文本的總長度,但是一篇文章中往往有30%~40%的無實際語義特征詞語,這些詞語的存在加大了文本的總長度,無疑降低了TF權(quán)重,本文在計算TF權(quán)重時將公式更改為
根據(jù)2.1節(jié)的描述和對算法的改進思想,基于向量空間模型的中文文本相似度的算法步驟如下:
1)得到一個中文文本,計算文本的總長度。
2)對中文文本進行分詞。
3)去掉文本中的虛詞和功能詞。
4)根據(jù)近義詞庫合并特征項。
5)統(tǒng)計文本特征項的頻率,按照公式(7)計算文本的TF。
6)按照公式(5)計算IDF。
7)得到另一個中文本文,重復1)~6)。
8)按照公式(6)計算兩個文本的相似度。
根據(jù)第2部分的描述,在Visua1 Studio 2008環(huán)境下,使用C#語言實現(xiàn)了基于向量空間模型的中文文本相似度的計算程序,運行界面如圖1所示。
圖1 文本相似度計算運行界面
程序在分詞時使用了開源中文分詞組件_盤古分詞。為了計算IDF需要一個很龐大的全局文本集D,程序采用了搜狗實驗室的數(shù)據(jù)資源_互聯(lián)網(wǎng)詞庫(SogouW)作為全局文本集D,在SogouW中共提供了157 202條數(shù)據(jù),數(shù)據(jù)格式為:詞A詞頻詞性1詞性2…詞性N。整個程序中最主要的類是Document,類圖如圖2所示。
圖2 Documnt類圖
Document類主要的功能是加載需要計算相似度的文本文件,文本加載以前先加載互聯(lián)網(wǎng)詞庫SogouLabDic.dic文件,讀取內(nèi)部每個詞出現(xiàn)的頻率,然后加載盤古分詞將文本文件分為一個字符串數(shù)組,將字符串數(shù)組逐個加入字典MyWord中,字典的KEY是字符串本身,字典的VALUE是一個Word類,Word類如圖3所示,Word類中有兩個屬性WordFrequency和CharacterVa1ue,WordFrequency用來存儲該字符串的詞頻,CharacterVa1ue用來存儲該字符串的TF*TDF即權(quán)重,在將字符串加入到字典MyWord中時,根據(jù)去除詞表刪除沒有實在意義的詞,同時根據(jù)近義詞庫對分詞后的結(jié)果合并分詞的結(jié)果。Document類的Simi1itudeVa1ueToDocumentUsingCos方法按照公式(6)計算兩個文本的相似度。
圖3 Word類
為了測試實現(xiàn)的中文文本相似度計算程序,在CNKI上選取具有相似研究內(nèi)容論文的中文摘要作為測試對象,范圍主要集中在計算機、藝術(shù)、中文、馬列、教育等領(lǐng)域,每個領(lǐng)域100篇,共500篇,在每個領(lǐng)域中隨機選擇一篇中文摘要作為基準文本,衡量其他中文摘要與基準文本之間的相似度。
將收集的不同領(lǐng)域?qū)W術(shù)論文的中文摘要分發(fā)給不同領(lǐng)域的相關(guān)專業(yè)人員,讓相關(guān)人士對中文摘要進行人為的相似度評價,對不同人員對同一領(lǐng)域的相似度評價取平均值,作為文本之間相似度的標準值,然后使用本文的算法和傳統(tǒng)的算法按照同樣的規(guī)則對該中文摘要進行計算,比較兩種算法位于不同誤差范圍的篇數(shù),同時也比較了每個領(lǐng)域中100篇中文摘要運行時間的平均值,比較的結(jié)果如表1所示。
表1 兩種算法運行結(jié)果比較
據(jù)表1的結(jié)果,可得出結(jié)論:本文的算法與傳統(tǒng)的算法比較而言,相對誤差更小,更能夠接近現(xiàn)實生活中人的判斷,但是由于在新算法中增加了刪除去除詞表和近義詞合并等的改進操作,所以新算法的運行時間比傳統(tǒng)的算法要長一些。
[1]陳飛宏.基于向量空間模型的中文文本相似度算法研究[D].成都:電子科技大學,2011.
[2]李洪巖.基于關(guān)鍵句的文本自動標簽研究[D].北京:北京郵電大學,2015.
[3]張艷杰,邵雄凱,劉建舟.一種基于語義與結(jié)構(gòu)的句子相似度計算方法[J].湖北工業(yè)大學學報,2015(5):82_85.
[4]程志強,閔華松.一種基于向量詞序的句子相似度算法研究[J].計算機仿真,2014(7):419_424.
[5]陳麗莎.自動問答系統(tǒng)中基于WordNet的句子相似度計算研究與實現(xiàn)[D].廣州:華南理工大學,2014.
[6]劉亞軍,徐易.一種基于加權(quán)語義相似度模型的自動問答系統(tǒng)[J].東南大學學報,2004,34(5):609_612.
[7]孫昌年.基于主題模型的文本相似度計算研究與實現(xiàn)[D].合肥:安徽大學,2012.
[8]費紹棟.網(wǎng)絡(luò)輿情突發(fā)事件檢測與追蹤關(guān)鍵技術(shù)研究[D].濟南:山東師范大學,2015.
[9]彭敏,黃佳佳,朱佳暉,等.基于頻繁項集的海量短文本聚類與主題抽取[J].計算機研究與發(fā)展,2015(9):1941_1953.
[10]李曉嫻.微博熱點話題發(fā)現(xiàn)的研究[D].北京:北京交通大學,2014.
[11]程志強,閔華松.一種基于向量詞序的句子相似度算法研究[J].計算機仿真,2014(7):419_424.
[12]孫昌年.基于主題模型的文本相似度計算研究與實現(xiàn)[D].合肥:安徽大學,2012.
[13]李曉嫻.微博熱點話題發(fā)現(xiàn)的研究[D].北京:北京交通大學,2014.
[14]張煥炯,王國勝.基于漢明距離的文本相似度計算[J].計算機工程與應(yīng)用,2001(19):21_22.
[15]朱青,李貞昊.基于主題詞分布的低價值新聞識別技術(shù)研究[J].計算機應(yīng)用與軟件,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
陜西省自然科學基礎(chǔ)研究計劃項目(2013JM8042)
薛蘇琴(1971—),男,榆林吳堡人,碩士,副教授。研究方向:數(shù)據(jù)挖掘、智能算法、教育技術(shù)。