1. 程式人生 > >斯坦福大學-自然語言處理入門 筆記 第十九課 單詞含義與相似性

斯坦福大學-自然語言處理入門 筆記 第十九課 單詞含義與相似性

一、單詞含義與單詞關係

  • 回顧:詞目(lemma)與單詞形式(wordform)
    • 詞目:表示相同的詞根、詞性以及大致的語義
    • 單詞形式:表示在文件中出現的具體單詞形式
      在這裡插入圖片描述
  • 一個詞目可能會含有很多含義(sense)。含義(sense)表示單詞意思的一個方面的表現。比如說bank就有兩個含義。
    • …a bank can hold the investments in a custodial account…
    • “…as agriculture burgeons on the east bank the river will shrink even more”
  • 同音異義詞(homonymy):有同一個形式但是有獨立不同的含義的單詞,形如bank,bat
    • bank1: financial institution, bank2: sloping land
    • bat1: club for hitting a ball, bat2: nocturnal flying mammal
    • 同音異義詞分為兩種: 同形異義(Homographs )(bank/bank, bat/bat);同音異義(Homophones):Write/right或者Piece/peace
    • 同音異義詞可能會引起NLP應用的很多問題:資訊檢索(“bat care”),機器翻譯(bat: murciélago (animal) or bate (for baseball)),文件發音(bass (stringed instrument) vs. bass (fish))
  • 一詞多義(polysemy):多義詞會有相關聯的含義。一詞多義可以分為兩種:轉喻(metonymy)以及系統性的(systematic)。大部分的一詞多義都是系統性的,比如school,hospital等等都可以既指組織又指建築。
  • 我們怎麼知道單詞有一種以上的含義?zeugma測試。
    • 利用連詞把兩個句子連起來,然後看一下句子是否奇怪,如果奇怪的話就說明有兩種含義。
      • 句子1:Which flights serve breakfast?
      • 句子2:Does Lufthansa serve Philadelphia?
      • 連起來:?Does Lufthansa serve breakfast and San Jose?
  • 同義(synonyms):在某些語境下單詞有相同的含義
    • couch / sofa big / large automobile / car Water / H20
    • 如果他們能在所有語境中互相替代,我們就認為他們有相同的命題含義(propositional meaning)
    • 但是基本有沒有完全同義的兩個單詞,即使在某些情況寫是完全一致的,但是在正式用語,俗語等等各種方面還是會有所不同的。因此,同義是一種針對含義(sense)的關係,而不是針對單詞的關係。比如下面的big和large的例子,前者是同義,後者則不是。
      在這裡插入圖片描述
  • 反義(Antonyms):在某一種含義上有相反的含義。可以是對立的兩個方面,或者是反向關係。比如:
    在這裡插入圖片描述
  • 下義(hyponymy)與上義(hypernymy):如果一種含義是另一種的子集的話,我們認為前者是後者的下義,後者是前者的上義。比如car是vehicle的下義,vehicle是car的上義。下義一般是具有傳遞性的,如果A是B的下義,B是C的下義,那麼A也是C的下義。我們也可以稱下義為IS-A等級(IS-A hierarchy)

二、Wordnet與其他線上分類詞典(thesauri)

  • 分類詞典在很多的領域都有廣泛的應用:資訊抽取,資訊檢索,問答系統,生物和藥物資訊學,機器翻譯等等

1、WordNet

  • 其中一個典型的線上分類詞典就是Wordnet,它是一個按照層次組織的詞彙資料庫,是一個線上的分類詞典,同時也包含一些除了英語以外的其他語言。
    在這裡插入圖片描述
    • 一個具體單詞的展示:下面的一個S就代表一個含義(sense)
      在這裡插入圖片描述
    • 對於同義關係的表達,我們會用對同一個同義註釋集的單詞的含義進行標註。比如chump1, fool2, gull1, mark9, patsy1, fall guy1, sucker1, soft touch1, mug2,這個九個單詞的對應序號的含義是同義的,就都對這些含義打上標註(gloss)“a person who is gullible and easy to take advantage of”。
    • 上義關係的展示
      在這裡插入圖片描述
    • WordNet的名詞關係
      在這裡插入圖片描述
    • WordNet3.0 :http://wordnetweb.princeton.edu/perl/webwn

2、MeSH: Medical Subject Headings thesaurus from the National Library of Medicine

  • 這個是專門針對醫學領域的分類詞典,包含177000款目詞(entry term)以及26142主題詞(heading)
    在這裡插入圖片描述- MeSH的層次展現
    在這裡插入圖片描述
  • MeSH的用途:提供同義詞(即款目詞);提供上義關係(層次);MEDLINE/PubMED資料庫的索引

三、單詞相似度:分類詞典法

1、單詞相似度

  • 同義(synonymy):是一個二分類問題,兩個單詞要麼同義要麼不同義
  • 相似度(similarity):是一個更寬鬆的度量,如果兩個單詞在意思更接近,就更相似
  • 相似度是一個和含義(sense)相關的關係,而不是和單詞相關的關係,因此我們在衡量的時候是以某個單詞的某個含義來進行衡量的,比如Bank¹相似於fund³。但是我們會同時在單詞和含義的基礎上計算相似度。
  • 計算相似度的應用領域:資訊檢索,問答系統,機器翻譯,自然語言生成,語言模型,自動論文打分,抄襲檢測,文件聚類
  • 單詞相似度(similarity) 和單詞相關度(relatedness)是不一樣的:相似的單詞是度量單詞的同義程度;單詞可以以各種可能進行關聯,比如car和bicycle關聯,car和gasoline關聯。
  • 計算單詞相似度有兩種方法:
    • 基於分類詞典的方法:判斷單詞在上義等級中是否接近?單詞是否有相似的標註(gloss)
    • 分佈演算法:判斷單詞是否有相似的上下文分佈

2、基於分類詞典的相似度計算方法

  • 基於路徑的相似度
    • 如果兩個含義(sense)在分類詞典的層次中越接近,就認為他們越相似。這種接近程度以路徑長度為度量
    • 路徑長度:pathlen(c1,c2)=1+ c1和c2之間在上義關係圖中最短路徑的邊數
    • 相似路徑:simpath(c1,c2)=1/pathlen(c1,c2)
    • 單詞相似度:wordsim,對兩個單詞的含義組合配對計算相似度,然後取最大的那個
      在這裡插入圖片描述
    • 計算例子
      在這裡插入圖片描述
    • 基於這種方法存在的問題
      • 這種方法假設每個層次關係都有一樣的距離,但是我們在上面的例子中可以看到nickel和money以定會比nickel和standard的更接近,因為在層次中比較高的節點含義會更抽象,但是基於路徑的相似度結果計算出來卻是一樣的。
      • 所以我們想要中的度量需要滿足下面兩個條件:1,獨立代表每個邊的代價;2、只通過抽象節點連線的單詞相似程度更低
  • 資訊內容(content)相似度量
    • 定義P(c)表示在語料庫中隨便取的一個單詞是概念c的一個例項(instance)的概率。所以,這是一個在層次中所有概念都有的隨機變數。對於一個給定的概念,每個觀測到的名詞要麼是概念中的成員,概率是P(c),要麼不是成員,概率是1-P(c)
    • 所有的單詞都是根節點(entity)的成員,所以P(root)=1
    • 在層次中一個節點越低,它的概率就越低
    • 我們可以通過在語料庫中計數來進行訓練:每個hill的例項都計入natural elevation, geological formation, entity等的頻率。計算公式如下,其中words©表示c及其所有的子節點
      在這裡插入圖片描述在這裡插入圖片描述
    • 資訊內容:IC©=-log§
    • 最富資訊類(subsumer)/最低公共類(subsumer),即LCS(c1,c2)也就是c1和c2的最低公共子節點
    • Resnik相似度計算方法:兩個單詞之間的相似度和他們的公共資訊有關係;兩個單詞的公共資訊越多,他們就越相似。所以計算的相似度就是最低公共類的資訊內容,公式如下:
      在這裡插入圖片描述
    • dekang lin方法:這種方法認為相似度計算不僅和公共資訊成正比,而且和兩者之間的不同成反比。對應的計算公式和計算例子為:
      在這裡插入圖片描述
  • 拓展的Lesk演算法:這種演算法把分類詞典中的註釋(gloss)放入了相似度計算。如果兩個概念的註釋有相似的單詞那麼我們認為這兩個概念相似。對於在註釋中公共存在的n個單片語成的片語,我們計分為n²。把所有的公共片語,包括上義詞和下義詞的公共片語的得分都相加,就可以得到一個分數。下面是一個簡單的例子:
    在這裡插入圖片描述
  • 四種方法的公式總結
    在這裡插入圖片描述在這裡插入圖片描述

3、相似度評估

  • 內在評估:演算法和人工相似度得分進行比較
  • 外在(基於任務的,頭尾連線)評估:利用一些需要單詞相似度的任務來進行評估,比如拼寫錯誤糾察,WSD,論文評分,以及TOEFL多選詞彙題。

四、單詞相似度:基於分佈的模型

1、基於分類詞典的相似模型的問題

  • 不是每一種語言我們都有一個分類詞典(thesaurus)
  • 即使我們有該語言的分類詞典,但是應用分類詞典的演算法會有recall的問題
    • 很多單詞都沒有收錄
    • 大部分的片語也沒有收錄
    • 有一些含義(sense)之間的關聯也沒有收錄
    • 分類詞典在動詞和形容詞上做得不好,因為形容詞和動詞的結構化的上義關係很少

2、意思的分佈模型(distributional models of meaning)

  • 我們也可以稱之為意思的向量空間模型(space-vector model of meaning)
  • 這種模型會比前一種模型的recall更高,但是precision會有所下降
  • 這種模型的基本想法是:如果兩個單詞的上下文相似的話,這兩個單詞很有可能就是相似的。舉例而言,看下面的四句話,我們很容易就看出加粗部分的單詞是一種酒。
    在這裡插入圖片描述

3、項上下文矩陣(term-context matrix)

  • 這種模型的第一步是構建項上下文矩陣。這個矩陣基本構建思想是和項文件矩陣一致的。項文件矩陣的每一行表示的是每一個單詞,每一列表示的是文件,每一格表示的是該行單詞在對應文件中的計數。而項上下文矩陣每一列表示的是下文中出現的單詞,每一格表示的是該行單詞的上下文中出現該列單詞的數量。
  • 所謂的上下文,我們一般指段落,或者是10個單詞的視窗。
    在這裡插入圖片描述
  • 如果兩個單詞在他們對應的行向量上是相似的話,就意味著他們的含義相似。
    在這裡插入圖片描述

4、PPMI(Positive Pointwise Mutual Information)

  • 在項上下文矩陣中,我們不是直接使用純計數,而是使用PPMI(Positive Pointwise Mutual Information)來替代。PMI的計算公式如下,PPMI的區別就是當PMI為負的時候就直接喲個0替代。
    在這裡插入圖片描述
    • 一個計算的例子:W表示行,C表示列
      在這裡插入圖片描述在這裡插入圖片描述在這裡插入圖片描述
    • 除了這個以外,我們還可以在加入拉普拉斯平滑
      在這裡插入圖片描述在這裡插入圖片描述

5、基於句法的上下文

  • 在構建項上下文矩陣的時候,上下文矩陣和每一列是單詞和對應的單詞依存關係,比如主語、介詞等等
    在這裡插入圖片描述

6、基於PPMI的相似度計算

  • 我們利用cosine來進行相似度估計,公式如下:其中v和w分別表示兩個相似單詞的對應在項上下文矩陣中的行向量
    在這裡插入圖片描述
    • 一個計算的例子
      在這裡插入圖片描述
  • 其他相似度的計算
    在這裡插入圖片描述

7、相似度評估

  • 與上一節基於分類詞典的相似度評估一致。