如何計算詞語的相似性(附github)

超人汪小建發表於2019-03-07

前言

文字的相似性計算方法有很多,前面也講了很多方式,下面繼續討論一種詞語相似度的計算方法——基於知網的詞語相似性計算。

詞語語義

詞語相似度也是沒有一種明確的客觀標準可用來衡量,相似度涉及到詞語的詞法、句法、語義、語用等,很難有一個統一的定義。

兩類方法

詞語相似度一般可分為兩類方法,一種是基於 Ontology 或 Taxonomy 來計算,另外一種是基於大規模語料進行統計。

第一類方法一般是基於同義詞詞典,所有片語織在一棵或幾棵樹結構中,兩個節點的路徑長度即可作為語義距離。比如前面說到過的基於詞林的相似度計算。

第二類方法需要大規模的語料,我們認為凡是語義相近的詞,它們的上下文也應該相似,通過一定的概率模型可計算出詞語的相關性,進而可計算相似性。

知網

《知網》由董振東先生研究十多載的成果,用於揭示概念與概念之間以及概念所具有的屬性之間的關係為基本內容的常識知識庫。知網含有豐富的詞彙語義知識和世界知識,為自然語言處理提供了寶貴的資源。

知網結構

知網主要包含了“概念”和“義原”。概念是對詞彙語義的一種描述,一個詞也可以為幾個概念。義原用於描述概念的最小意義單位。

《知網》一共採用了個 1500 義原,這些義原分為以下幾個大類:

  1. Event|事件
  2. entity|實體
  3. attribute|屬性值
  4. aValue|屬性值
  5. quantity|數量
  6. qValue|數量值
  7. SecondaryFeature|次要特徵
  8. syntax|語法
  9. EventRole|動態角色
  10. EventFeatures|動態屬性

比如

概念編號 描述語言
017144 exercise|鍛練,sport|體育
男人 059349 human|人,family|家,male|男
高興 029542 aValue|屬性值,circumstances|境況,happy|福,desired|良
生日 072280 time|時間,day|日,@ComeToWorld|問世,$congratulate|祝賀
北京 003815 place|地方,capital|國都,ProperName|專,(China|中國)
兒童基金會 024083 part|部件 ,%institution|機構 ,politics|政,#young|幼,#fund|資金,(institution|機構=UN|聯合國)

義原劃分

我們可以把知網的義原分為三組。

組別 名稱 範圍 作用
第一組 基本義原 包括第 1 到第 7 類的義原 用來描述單個概念的語義特徵
第二組 語法義原 只包括第 8 類義原 用於描述詞語的語法特徵,主要是詞性(Part of Speech)
第三組 關係義原 包括第 9 和第 10類的義原 用於描述概念和概念之間的關係(類似於深層格語法中的格關係)

描述語言符號

, 多個屬性之間,表示“和”的關係
# 表示“與其相關”
% 表示“是其部分”
$ 表示“可以被該‘V’處置,或是該“V”的受事,物件,領有物,或者內容
* 表示“會‘V’或主要用於‘V’,即施事或工具
+ 對 V 類,它表示它所標記的角色是一種隱性的,幾乎在實際語言中不會出現
& 表示指向
~ 表示多半是,多半有,很可能的
@ 表示可以做“V”的空間或時間
? 表示可以是“N”的材料,如對於布匹,我們標以“?衣服”表示布匹可以是“衣服”的材料
{} (1) 對於 V 類,置於 [ ] 中的是該類 V 所有的“必備角色”。如對於“購買”類,一旦它發生了,必然會在實際上有如下角色參與:施事,佔有物,來源,工具。儘管在多數情況下,一個句子並不把全部的角色都交代出來(2) 表示動態角色,如介詞的定義
() 置於其中的應該是一個詞表記,例如,(China|中國)
^ 表示不存在,或沒有,或不能
! 表示某一屬性為一種敏感的屬性,例如:“味道”對於“食物”,“高度”對於“山脈”,“溫度” 對於“天象”等

實詞與虛詞

知網的概念包含了實詞和虛詞,虛詞的描述比較簡單,用“{句法義原}”或“{關係義原}”進行描述。實詞的描述比較複雜,由一系列用逗號隔開的“語義描述式”組成。

image

實詞可以包括如下描述:

  1. 基本義原描述式,用“基本義原”進行描述,第一個描述式總是一個基本義原描述式,這也是對該實詞最重要的一個描述式,這個基本義原描述了該實詞的最基本的語義特徵;
  2. 關係義原描述式:用“關係義原=基本義原”或者“關係義原=(具體詞)”或者“(關係義原=具體詞)”來描述;
  3. 關係符號描述式:用“關係符號 基本義原”或者“關係符號(具體詞)”加以描述,還可以由多個關係符號描述式採用同一個關係符號;

基本思想

知網中的每一個概念並非對應於一個樹狀概念層次體系中的一個結點,這點與同義詞詞林不一樣,知網中是通過用一系列的義原並利用某種知識描述語言來描述一個概念。這些義原通過上下位關係組織成一個樹狀義原層次體系。現在要做的事就是找到一種方法來計算這種知識描述語言表示的兩個語義表示式的相似度。

對於兩個漢語詞語 W1 和 W2,如果 W1 有 n 個概念:S11,S12,……,S1n, W2 有 m 個概念:S21,S22,……,S2m,則規定 W1 和 W2 的相似度是各 個概念的相似度最大值。

image

義原相似度

義原相似度計算時概念相似度的基礎,義原由一個樹狀的義原層次體系構成,假設兩個義原在這個層次體系中的路徑距離為 d,可以得到這兩個義原之間的語義距離為,

image

其中 p1 和 p2 表示兩個義原,d 是 p1 和 p2 在義原層次體系中的路徑長度,是一個正整數。α是一個可調節的引數。

虛詞相似度

由於虛詞和實詞總是不能替換,所以虛詞和實詞的相似度總是為零。

另外,虛詞總是用“{句法義原}”或“{關係義原}”這兩種方式進行描述,所以虛詞的相似度只需要計算其對應的句法義原或關係義原之間的相似度。

實詞的相似度

知網的知識由義原、集合和特徵結構共同表達,實詞的整體相似建立在部分相似的基礎上,把一個複雜的整體分解成部分,通過計算部分之間的相似度得到整體的相似度。

一個實詞的描述可以表示為一個特徵結構,該特徵結構含有以下四個特徵:

  1. 第一基本義原描述:其值為一個基本義原,我們將兩個概念的這一部分的相似度記為 Sim1(S1,S2);
  2. 其它基本義原描述:對應於語義表示式中除第一基本義原描述式以外的所有基本義原描述式,其值為一個基本義原的集合,我們將兩個概念的這一部分的相似度記為Sim2(S1,S2);
  3. 關係義原描述:對應於語義表示式中所有的關係義原描述式,其值是一個特徵結構,對於該特徵結構的每一個特徵,其屬性是一個關係義原,其值是一個基本義原,或一個具體詞。我們將兩個概念的這一部分的相似度記為 Sim3(S1,S2);
  4. 關係符號描述:對應於語義表示式中所有的關係符號描述式,其值也是一個特徵結構,對於該特徵結構的每一個特徵,其屬性是一個關係義原,其值是一個集合,該集合的元素是一個基本義原,或一個具體詞。我們將兩個概念的這一部分的相似度記為Sim4(S1,S2)。

則兩個概念語義表示式的整體相似度為,

image

其中,

image

反映了 Sim1 到 Sim4 對於總體相似度所起到的作用依次遞減。由於第一基本義原描述式反映了一個概念最主要的特徵,所以應該將其權值定義得比較大,一般應在0.5以上。

第一基本義原描述相似度:就是兩個義原的相似度,按照義原相似度計算;

其它基本義原描述相似度:其值為一個集合,轉換為兩個基本義原集合的相似度計算問題;建立兩個集合的元素之間一一對應關係,方法為:

  1. 首先計算兩個集合的所有元素兩兩之間的相似度;
  2. 從所有的相似度值中選擇最大的一個,將這個相似度值對應的兩個元素對應起來;
  3. 從所有的相似度值中刪去那些已經建立對應關係的元素的相似度值;
  4. 重複上述第 2 步和第 3 步,直到所有的相似度值都被刪除;
  5. 沒有建立起對應關係的元素與空元素對應。

建立起兩個集合元素的一一對應關係後,就很容易計算兩個集合的相似度了:集合的相似度等於其元素對的相似度的加權平均。

關係義原描述相似度:其值為一個特徵結構,轉換為兩個特徵結構的相似度計算問題。屬性相同的特徵之間一一對應,如果沒有屬性相同的特徵,那麼該特徵的對應物為空。特徵結構的相似度就轉化為各個特徵的相似度的加權平均。

關係符號描述相似度:其值為一個特徵結構,轉換為兩個特徵結構的相似度計算問題。

github

https://github.com/sea-boat/TextAnalyzer/blob/master/src/main/java/com/seaboat/text/analyzer/similarity/HownetSimilarity.java

-------------推薦閱讀------------

我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)

為什麼寫《Tomcat核心設計剖析》

2018彙總資料結構演算法篇

2018彙總機器學習篇

2018彙總Java深度篇

2018彙總自然語言處理篇

2018彙總深度學習篇

2018彙總JDK原始碼篇

2018彙總Java併發核心篇

2018彙總讀書篇


跟我交流,向我提問:

如何計算詞語的相似性(附github)

歡迎關注:

如何計算詞語的相似性(附github)

相關文章