1. 程式人生 > >詞彙鏈相關概念及常用演算法學習篇

詞彙鏈相關概念及常用演算法學習篇

1.  詞彙鏈的基礎概念

  •  詞彙凝聚力
  • 詞彙鏈

2.  WordNet

  •  WordNet概念
  • 同義詞集
  • WordNet與同義詞集的關係

3.  傳統詞彙鏈構造方法

  •  Hirst演算法    
  • Barzilay演算法    

1. 詞彙鏈

  • 詞彙凝聚力:一篇文件的句子及其詞彙具有統一性,往往是描述同一些事物的,這些句子通過回指、聯接詞及詞之間的語義關係形成某種凝聚力。其中,由單詞之間的語義關係而產生的這種凝聚力稱為詞彙凝聚力。詞彙鏈可以用來描述這種凝聚力。       

  • 詞彙鏈是指一個主題之下的一系列詞義相關的詞之間共同組成的詞網。詞彙鏈是一種圖型的資料結構,圖中的頂點包含詞語及其詞義資訊,邊則表示兩個頂點間的詞義關係。一個文字的詞彙鏈通常有多條,每一條就表示著文字的子主題。詞彙鏈的構造通常需要基於某個本體如WordNet.

       詞彙鏈可以用無向帶權圖G(V,E)來表示,其中:(1)V為頂點包含詞彙及其語義資訊,語義資訊由同義詞集表示;(2)E表示邊集,邊表示頂點間的語義關係;(3) 若頂點u與v存在語義關係,當且僅當存在邊e=(u,v),同時e還附帶一個權值,表示具體的語義關係。詞彙鏈構造演算法就是要構造詞彙鏈的圖表示結構.

2.WordNet

  • WordNet

       WordNet是由美國由美國普林斯頓大學心理學家、語言學家們共同研發的線上詞彙參考系統,是傳統的詞典資訊與現代計算機技術以及心理語言學的研究成果有機結合的產物。最顯著的特徵就是它是以單詞的含義而不是單詞的拼寫形式來組織詞彙資訊的。WordNet包含4種開放詞類:名詞、動詞、形容詞和副詞。名詞在詞典儲存中是按主題的等級層次組織的,動詞按各種搭配關係來組織,形容詞和副詞以N維超空間組織。

  • 同義詞集

       同義詞集由一組相關的同義詞組成,同義詞集是對它所包含詞語的詞義的一種表示方式。如果一個詞語出現在多個同義詞集中,則這個詞語有多個詞義,並且它出現的每一個同義詞集表示它的一種詞義。

  • WordNet與同義詞集的關係

      WordNet的基本單元是同義詞集(Synset),同義詞集正是WordNet用來表示詞義的。例如,WordNet中的關於board兩個同義詞集:

       Synset1:{board,plank,(a stout  length of sawn timber)}

       Synset2:{board, committee , (a group with supervisory powers)}

       注:圓括號中的是該同義詞集的定義.

       這表示,Synset1是board的一種詞義,即a stout  length of sawn timber,結實長板的意思;Synset2是board的另一種詞義:a group with supervisory powers,管理委員會的意思。plank與board是同義詞,都含有長板的意思,而committee與board也是同義詞,都含有管理委員會的意思。

         同義詞集合之間是以一定數量的關係型別相關聯的,如上下位關係、整體部分關係、繼承關係等。         目前,利用WordNet計算詞彙間語義關係都是針對名詞的。在WordNet中,名詞是按照等級層次組織的,所有的名詞同義詞集根據上下位關係組成一棵層次樹。WordNet中的名詞關係主要有以下三種關係:(1)上下位關係,它是一種基於詞位對的有限等級,在這種詞位對中一個詞位是另一個詞位的次類;(2)整體部分關係,表示詞語間組成與被組成的關係;(3)反義關係,表示詞語詞義相反。

3.  傳統詞彙鏈構造方法

       詞彙鏈構造演算法實際上是為文字構造圖型的詞彙鏈資料結構,它需要完成兩部分工作:(1)建立頂點。頂點關鍵字是詞語的字串表示,頂點還應包含詞語的詞義資訊,用中的同義詞集表示,因此詞彙鏈演算法同時應該為詞語選擇詞義。(2)建立邊。邊表示詞語間的詞義關係,因此詞彙鏈還需計算詞語間的詞義關係。值得注意的是,最終的詞彙鏈結果中將包含若干條詞彙鏈,每一條鏈代表著一個文字的主題,這也是為什麼詞彙鏈可以用於分析文字主題結構的原因。在詞彙鏈演算法中,我們通常會提到候選詞語集及當前詞語的概念.

候選詞語集:它是指詞彙鏈的處理物件,是一系列詞語的集合。它是通過對文字進行預處理,抽取出其中的名詞而組成的。用符號WS{w1,w2,...,wn}表示。也稱WS為wi的上下文。

當前詞語:指演算法正在處理的詞語,用符號W表示。

       詞語與詞彙鏈的語義關係:是指該詞語與詞彙鏈所有詞語的語義關係中緊密程度最高的語義關係,如果該詞語與詞彙鏈中的所有詞語都沒有下面的三種關係,則稱該詞語與該詞彙鏈無關。

       超強關聯:指兩個詞語完全相同。

       強關聯:可以分為三種情況:(1)兩個詞共同出現在同一個同義詞集中;(2)兩個詞的同義詞集中的某兩個集合存在著             某 種直接的語義關係同義、反義、上下位等;(3)如果有一個是短語或是複合詞,而另一個詞的某個同義詞集中的詞就包含         在短語或是複合詞中,在這種關係中我們並不考慮這種包含是一種什麼樣的關係。

       中等關聯:當在WordNet中存在著一種路徑連線著兩個詞,兩個詞間距設定為一個視窗,一般取三個句子,並且這種路徑的長           度  通常限制在一之間,如果不在這個範圍之內就不是這種關係了。

       詞彙鏈構造演算法需要為詞語選擇一條合適的鏈,選擇的標準就是與該詞語的語義關係最強的詞彙鏈,而那個擁有最強語義關係的詞義就被選為該詞的詞義。常見的詞彙鏈的構造演算法有兩種:Hirst演算法和Barzilay演算法。

  • Hirst演算法

Hirst演算法採用“貪心”的策略,每一步根據已處理詞的詞義為當前詞語選擇一條詞義關係最密切的鏈,將該詞加入該鏈,並選擇導致發生最密切關係的詞義作為該詞的詞義,加入該鏈後,同時計算該詞與其他頂點間的語義關係,在這個演算法中,詞義一經確定,就不再改變。演算法具體步驟如下:

(1)對文字進行切分,取文字的名詞集合作為候選詞語集WS{w1,w2,...,wn};

(2)初始化詞彙鏈集,初始集為空,用詞表示。

(3)順序處理每個詞語,設當前詞語為W.

       若chains非空,chains={chain1,chain2,...,chainm}.計算W與chains中所有chain的語義關係,設W與chaini之間的語義關係為chains中最強,且此時W所取得詞義為Syn,則在chaini中加新的頂點(W,Syn),同時計算頂點(W,Syn)與chaini其他頂點間的語義關係,並將語義關係的值儲存在邊中。 若chains為空,或者如果該詞語與任何詞彙鏈都不存在語義關係,則新建一條詞彙鏈,該詞彙鏈僅包含當前詞語。

  • Barzilay演算法

       Barzilay演算法認為採用貪心演算法,容易導致詞義選擇的錯誤,影響對文字的主題分析,進而影響文摘的質量,因此他提出了新的演算法。一該演算法的思想就是考慮詞語所有的詞義,根據一定的規則確定一種最合適的解釋,而每一種解釋都對應著一種詞彙鏈,此演算法考慮詞語詞義的所有可能的組合,並在全域性範圍內選優。       對於候選詞語集WS{w1,w2,...,wn},每個詞有若干詞義,為每個詞語選擇一個確定的詞義,相當為這個詞集選擇一個解釋。Barzilay演算法,考慮了所有可能的解釋,並根據一定的標準,在整個上下文內,為這個詞集選擇一個最優的解釋。解釋與詞彙鏈之間存在一一對應的關係。Barzilay演算法用元件來表示一個解釋以及其所對應的詞彙鏈。演算法每處理一個詞語就用當前詞語的所有詞義擴充套件當前的所有元件,當最終所有的元件都被構造出來之後,選擇元件中詞彙鏈的邊數最多的鏈為最終的結果。Barzilay詞彙鏈構造演算法步驟如下:

(1)對文字進行切分,取文字的名詞集合作為候選詞語集WS{w1,w2,...,wn};

(2)順序處理每個詞語,設當前詞語為W。若W為第一個詞,則初始化元件集合CS,此時CS集合中的每一個元件包含該詞的一個詞義。否則,設W的詞義集合為S{syn1,syn2,...,synm},用S擴充套件CS中的每個元件.

(3)當所有的詞語處理完後,計算元件的分數,元件的分數等於元件中詞彙鏈的邊數,取分數最高的元件作為最後的結果。

      元件的數目是詞的數目的指數函式,如果將所有的元件都構造出來,最終的元件的數量可能過於巨大,因此在構造的過程中,可以對元件進行適當的裁剪,即時去除不合適的元件,從而降低處理的空間