基于《知网》的词汇语义相似度计算以及复现
基于《知網》的詞匯語義相似度計算復現源碼:點擊下載
源來自gittub:https://github.com/daishengdong/WordSimilarity
問題描述:
“西紅柿”和“茄子”這兩個詞,基于字面檢測相似度為0,但是我們都知道它是一個東西,所以引入基于語義的相似度檢測。1
1.語義相似定義
兩個任意的詞語如果在不同的上下文中可以相互替換且不改變文本的語義的可能性越大,那么兩者之間的相似度就越高,否則相似度就越低。2
2.語義距離
定義:數值在0到正無窮,0表示相似度為1,正無窮表示相似度為0。
檢測方法:
1.基于世界知識。根據世界知識方法一般是利用一部同義詞詞典來計算詞語語義距離,現在常用的同義詞詞典有同義詞詞林、WordNet 和 HowNet 等,其中同義林詞林和 WordNet 都是將所有的概念歸結到一個樹狀的概念層次體系中,而 HowNet 是將用來描述概念的義原組織在多棵樹狀的層次體系中,處于同一棵樹狀圖中的任意兩個節點之間有且只有一條可達路徑,因此,兩個概念之間的語義距離就可以通過這條可達路徑的長度來表示。
2.基于大規模語料庫。根據詞匯上下文信息的概率分布計算詞語語義相似度,該方法所計算得到的詞語語義相似度結果精確度較高,但是計算量比較大,計算方法也比較復雜,因為該方法需要依賴于訓練所用的語料庫,此外,由于數據稀疏和數據噪聲等因素對基于統計的方法干擾較
大,故該方法一般很少使用。
3.知網(Hownet)簡介
知網是由機器翻譯專家董振東借助計算機建立的一個基于知識的系統,創建知網的本意是為了解決機器翻譯的問題,它是一個以漢語和英語詞語所代表的概念為描述對象的知識庫和常識庫。
知網中主要包含義項和義原兩個概念。
義項(概念):對詞語語義的一種描述。例如“組織”這個詞,其義項為‘組織’活動這個動詞以及世界衛生‘組織’這個名詞等。
義項(概念)組成,即三元組:〈W_X = 詞語 G_X = 詞語詞性 DEF = 概念定義〉(表達一個詞語的其中一個意思)
義原是用于描述義項(概念)的最小意義單位。2
一個義項(概念)由多個義原構成。
《知網》的知識描述語言2
《知網》對概念的描述是比較復雜的。在《知網》中,每一個概念用一個記錄來表示,如下所示:
NO.=017144
W_C=打
G_C=V
E_C=~ 網球, ~ 牌,~ 秋千,~ 太極,球~得很棒
W_E=play
G_E=V
E_E=
DEF=exercise|鍛練,sport|體育
其中NO.為概念編號,W_C,G_C,E_C分別是漢語的詞語、詞性和例子,W_E、G_E、E_E分別是英語的詞語、詞性和例子,DEF是知網對于該概念的定義,我們稱之為一個語義表達式。其中DEF是知網的核心。我們這里所說的知識描述語言也就是DEF的描述語言。
注:表中描述符號含義可以參考2
每個義原是有層次結構的。
4.基于《知網》的語義相似度計算方法
4.1.把詞語相似度等價于第一獨立義原的相似度。
優點:簡單。
缺點:沒有充分利用知網的其他語義。
4.2.詞語語義相似度計算
思路:比較兩個詞語所有概念的相似度,找出最相似的那個。
注:考慮的是獨立詞語,如果有上下文,則可以排除一些概念在比較。
4.3.義原相似度比較
由于所有的概念都最終歸結于用義原(個別地方用具體詞)來表示,所以義原的相似度計算是概念相似度計算的基礎。
其中p1和p2表示兩個義原(primitive),d是p1和p2在義原層次體系中的路徑長度,是一個正整數。α是一個可調節的參數。
缺點:1)只利用了義原的上下位關系,可以考慮其他關系,如:具有反義或者對義關系的兩個義原比較相似,因為它們在實際的語料中互相可以互相替換的可能性很大。2)一些義原可能再出現具體詞(概念),容易造成無限遞歸,增加算法復雜度。
解決2):
具體詞與義原的相似度一律處理為一個比較小的常數(γ);
具體詞和具體詞的相似度,如果兩個詞相同,則為1,否則為0。
4.4虛詞概念的相似度的計算
我們認為,在實際的文本中,虛詞和實詞總是不能互相替換的,因此,虛詞概念和實詞概念的相似度總是為零。
由于虛詞概念總是用“{句法義原}”或“{關系義原}”這兩種方式進行描述,所以,虛詞概念的相似度計算非常簡單,只需要計算其對應的句法義原或關系義原之間的相似度即可。
4.5實詞概念的相似度的計算
思路:
假設兩個整體A和B都可以分解成以下部分:A分解成A1,A2,……,An,B分解成B1,B2,……,Bm,那么這些部分之間的對應關系就有m×n種。問題是:這些部分之間的相似度是否都對整體的相似度發生影響?如果不是全部都發生影響,那么我們應該如何選擇那些發生影響的那些部分之間的相似度?選擇出來以后,我們又如何得到整體的相似度?
我們認為:一個整體的各個不同部分在整體中的作用是不同的,只有在整體中起相同作用的部分互相比較才有效。例如比較兩個人長相是否相似,我們總是比較它們的臉型、輪廓、眼睛、鼻子等相同部分是否相似,而不會拿眼睛去和鼻子做比較。
對于實詞概念的語義表達式,我們將其分成四個部分:
1)第一獨立義原描述式:我們將兩個概念的這一部分的相似度記為Sim1(S1,S2);
2)其他獨立義原描述式:語義表達式中除第一獨立義原以外的所有其他獨立義原(或具體詞),我們將兩個概念的這一部分的相似度記為Sim2(S1,S2);
3)關系義原描述式:語義表達式中所有的用關系義原描述式,我們將兩個概念的這一部分的相似度記為Sim3(S1,S2);
4)符號義原描述式:語義表達式中所有的用符號義原描述式,我們將兩個概念的這一部分的相似度記為Sim4(S1,S2)。
分成的部分各自比較,按照第一義原權重最高,其余各自對應添加權重進行比較。具體參考2
李蕾, 大數據環境下相似重復記錄數據清洗關鍵技術研究, 2019, 南京郵電大學. ??
劉群, 李素建. 基于《 知網》 的詞匯語義相似度計算[J]. 中文計算語言學, 2002. ?? ?? ?? ?? ??
總結
以上是生活随笔為你收集整理的基于《知网》的词汇语义相似度计算以及复现的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 不带缓存的I/O和标准(带缓存的)I/O
- 下一篇: 产品经理要学习的技术都在这里