
概述
在資訊爆炸時代,人們迫切希望從海量資訊中擷取與自身需要和興趣吻合度高的内容,為了滿足此需求,出現了多種技術,如:搜尋引擎、推薦系統、問答系統、文檔分類與聚類、文獻查重等,而這些應用場景的關鍵技術之一就是文本相似度計算技術。是以了解文本相似度的計算方法是很有必要的。
文本相似度定義
文本相似度在不同領域被廣泛讨論,由于應用場景不同,其内涵有所差異,故沒有統一、公認的定義。
Lin從資訊論的角度闡明相似度與文本之間的共性和差異有關,共性越大、差異越小、則相似度越高;共性越小、差異越大、則相似度越低。相似度最大的情況是文本完全相同。同時提出基于假設推論出相似度定理,如下所示:
其中,common(A,B)是A和B的共性資訊,description(A,B)是描述A和B的全部資訊,上述公式表達出相似度與文本共性成正相關。由于沒有限制領域,此定義被采用較多。
相關度與相似度是容易混淆的概念,大量學者沒有對此做過對比說明。相關度展現在文本共現或者以任何形式互相關聯(包括上下位關系、同義關系、反義關系、部件-整體關系、值-屬性關系等)反映出文本的組合特點。而相似度是相關度的一種特殊情況,包括上下位關系和同義關系。由此得出,文本的相似度越高,則相關度越大,但是相關度越大并不能說明相似度高。
相似度一般用[0,1]表示,該實數可以通過語義距離計算獲得。相似度與語義距離呈反比關系,語義距離越小,相似度越高;語義距離越大,相似度越低。通常用下面的公式表示相似度與語義距離的關系。
其中,
之間的非負語義距離,為調節因子,保證了當語義距離為0時上述公式的意義。
文本相似度計算中還有一個重要的概念是文本表示,代表對文本的基本處理,目的是将半結構化或非結構化的文本轉化為計算機可讀形式。 文本相似度計算方法的不同本質是文本表示方法不同
文本相似度計算方法
文本相似度計算方法
文本相似度計算方法可分為四大類:
- 基于字元串的方法(String-Based)
- 基于語料庫的方法(Corpus-Based)
- 基于世界知識的方法(Knowledge-Based)
- 其他方法
基于字元串的方法
該方法從字元串比對度出發,以字元串共現和重複程度為相似度的衡量标準。根據計算粒度不同,可以将該方法分為 基于字元的方法 和 基于詞語的方法 。下圖列出兩種方法常見的算法以及思路
基于字元串的方法
基于字元串的方法是在字面層次上的文本比較,文本表示即為原始文本,該方法原理簡單,易于實作,現已成為其他方法的計算基礎。
但不足的是将字元或詞語作為獨立的知識單元,并未考慮詞語本身的含義和詞語之間的關系。以同義詞為例,盡管表達不同,但具有相同的含義,而這類詞語的相似度依靠基于字元串的方法并不能準确計算。
基于語料庫的方法
基于語料庫的方法利用語料庫中擷取的資訊計算文本相似度。基于語料庫的方法可以劃分為:
- 基于詞袋模型的方法
- 基于神經網絡的方法
- 基于搜尋引擎的方法
基于詞袋
詞袋模型(Bag of Words Model,BOW)建立在分布假說的基礎上,即“詞語所處的上下文語境相似,其語義則相似”。其基本思想是:不考慮詞語在文檔中出現的順序,将文檔表示成一系列詞語的組合。
根據考慮的語義成程度不同,基于詞袋模型的方法主要包括:
- 向量空間模型(Vector Space Model,VSM)
- 潛在語義分析(Latent Semantic Analysis,LSA)
- 機率潛在語義分析(Probabilistic Latent Semantic Analysis,PLSA)
- 潛在狄利克雷分布(Latent Dirichlet Allocation,LDA)
VSM
VSM模型的基本思想是将每篇文檔表示成一個基于詞頻或者詞頻-逆文檔頻率權重的實值向量,那麼N篇文檔則構成n維實值空間,其中空間的每一維都對用詞項,每一篇文檔表示該空間的一個點或者向量。兩個文檔之間的相似度就是兩個向量的距離,一般采用餘弦相似度方法計算。
VSM有兩個明顯的缺點:一是該方法基于文本中的特征項進行相似度計算,當特征項較多時,産生的高維稀疏矩陣導緻計算效率不高;二是向量空間模型算法的假設是文本中抽取的特征項沒有關聯,不符合文本語義表達。
LSA,PLSA
LSA算法的基本思想是将文本從稀疏的高維詞彙空間映射到低維的潛在語義空間,在潛在的語義空間計算相似性。LSA是基于VSM提出的,兩種方法都是采用空間向量表示文本,但LSA使用潛在語義空間,利用奇異值分解提高對高維的詞條-文檔矩陣進行處理,去除了原始向量空間的某些“噪音”,使資料不再稀疏。Hofmann在LSA的基礎上引入主題層,采用期望最大化算法(EM)訓練主題。
LSA本質上是通過降維提高計算準确度,但該算法複雜度比較高,可移植性差,比較之下,PLSA具備統計基礎,多義詞和同義詞在PLSA中分别被訓練到不同的主題和相同的主題,進而避免了多義詞,同義詞的影響,使得計算結構更加準确,但不适用于大規模文本。
LDA
LDA主題模型是一個三層的貝葉斯機率網絡,包含詞、主題和文檔三層結構。采用LDA計算文本相似性的基本思想是對文本進行主題模組化,并在主題對應的詞語分布中周遊抽取文本中的詞語,得到文本的主題分布,通過此分布計算文本相似度。
以上三類盡管都是采用詞袋模型實作文本表示,但是不同方法考慮的語義程度有所不同。基于向量空間模組化的方法語義程度居中,加入潛在語義空間概念,解決了向量空間模型方法的稀疏矩陣問題并降低了多義詞,同義詞的影響。基于LDA的主題模型的方法語義程度最高,基于相似詞語可能屬于統一主題的理論,主題經過訓練得到,進而保證了文本的語義性。
基于神經網絡
基于神經網絡生成詞向量計算文本相似度是近些年提的比較多的。不少産生詞向量的模型和工具也被提出,比如Word2Vec和GloVe等。詞向量的本質是從未标記的非結構文本中訓練出一種低維實數向量,這種表達方式使得類似的詞語在距離上更為接近,同時較好的解決了詞袋模型由于詞語獨立帶來的維數災難和語義不足問題。
基于神經網絡方法與詞袋模型方法的不同之處在于表達文本的方式。詞向量是經過訓練得到的低維實數向量,維數可以認為限制,實數值可根據文本距離調整,這種文本表示符合人了解文本的方式,是以基于詞向量判斷文本相似度的效果有進一步研究空間。
基于搜尋引擎
基本原理是給定搜尋關鍵詞
,搜尋引擎傳回包含
的網頁數量
以及同時包含
的網頁數量
,計算谷歌相似度距離如下所示:
但是該方法最大的不足是計算結果完全取決于搜尋引擎的查詢效果, 相似度因搜尋引擎而異
基于世界知識的方法
基于世界知識的方法是利用具有規範組織體系的知識庫計算文本相似度,一般分為兩種:基于本體知識和基于網絡知識。
基于本體知識
文本相似度計算方法使用的本體不是嚴格的本體概念, 而指廣泛的詞典、叙詞表、詞彙表以及狹義的本體。由于本體能夠準确地表示概念含義并能反映出概念之間的關系, 是以本體成為文本相似度的研究基礎[7]。最常利用的本體是通用詞典, 例如 WordNet、《知網》(HowNet)和《同義詞詞林》等, 除了詞典還有一些領域本體, 例如醫療本體、電子商務本體、地理本體、農業本體等。
結合Hliaoutaki、Batet等的研究,将基于本體的文本相似度算法概括為四種:
- 基于距離
- 基于内容
- 基于屬性
- 混合式相似度
下表列出了各種方法的基本原理、代表方法和特點
基于本體的文本相似度算法
基于網絡知識
由于本體中詞語數量的限制,有些學者開始轉向基于網絡知識方法的研究,原因是後者覆寫範圍廣泛、富含豐富的語義資訊、更新速度相對較快,使用最多的網絡知識是維基百科、百度百科。網絡知識一般包括兩種結構,分别是詞條頁面之間的連結和詞條之間的層次結構。
基于網絡知識的文本相似度計算方法大多利用頁面連結或層次結構,能較好的反映出詞條的語義關系。但其不足在于:詞條與詞條的資訊完備程度差異較大,不能保證計算準确度,網絡知識的生産方式是大衆參與,導緻文本缺少一定的專業性。
其他方法
除了基于字元串、基于語料庫和基于世界知識的方法, 文本相似度計算還有一些其他方法,比如:
- 句法分析
- 混合方法
總結
本文總結了文本相似度計算的四種方法,以及他們的優缺點。作者認為今後文本相似度的計算方法趨勢有三個方向,分别是:
- 基于神經網絡的方法研究将更加豐富
- 網絡資源為文本相似度計算方法研究提供更多支援
- 針對特定領域以及跨領域文本的相似度計算将成為今後發展的重點