cips2016+学习笔记︱NLP中的消岐方法总结(词典、有监督、半监督)
歧義問題方面,筆者一直比較關注利用詞向量解決歧義問題:
也許你寄希望于一個詞向量能捕獲所有的語義信息(例如run即是動車也是名詞),但是什么樣的詞向量都不能很好地進行凸顯。
這篇論文有一些利用詞向量的辦法:Improving Word Representations Via Global Context And Multiple Word Prototypes(Huang et al. 2012)
解決思路:對詞窗口進行聚類,并對每個單詞詞保留聚類標簽,例如bank1, bank2等
來源于筆者的筆記: NLP︱高級詞向量表達(一)——GloVe(理論、相關測評結果、R&python實現、相關應用)
那么在CIPS2016 中文信息處理報告《第二章 語義分析研究進展、現狀及趨勢》第三節 技術方法與研究現狀
P16-P17中提到了一些詞義消岐的記載。
詞義消歧的研究通常需要語義詞典的支持,因為詞典描述了詞語的義項區分。英語的詞義消歧研究中使用的詞典主要是ordNet,而中文使用的詞典有HowNet,以及北京大學的“現代漢語語義詞典”等。
除詞典外,詞義標注語料庫標注了詞的不同義項在真實文本中的使用狀況,為開展有監督的詞義消歧研究提供了數據支持。常見的英文詞義標注語料庫包括Semcor(普林斯頓大學標注)、DSO(新加坡國立大學標注)以及用于Senseval 評測的語料庫等。在中文方面,哈爾濱工業大學和北京大學分別基于HowNet 和北大“現代漢語語義詞典”標注了詞義消歧語料庫。
詞義消歧的研究是自然語言處理的一項基礎關鍵,根據所使用的資源類型不同,可以將詞義消歧方法分為以三類:
1、基于詞典的詞義消歧
基于詞典的詞義消歧方法研究的早期代表工作是Lesk 于1986 的工作。給定某個待消解詞及其上下文,該工作的思想是計算語義詞典中各個詞義的定義與上下文之間的覆蓋度,選擇覆蓋度最大的作為待消解詞在其上下文下的正確詞義。但由于詞典中詞義的定義通常比較簡潔,這使得與待消解詞的上下文得到的覆蓋度為0,造成消歧性能不高。
2、有監督詞義消歧
有監督的消歧方法使用詞義標注語料來建立消歧模型,研究的重點在于特征的表示。常見的上下文特征可以歸納為三個類型:(1)詞匯特征通常指待消解詞上下窗口內出現的詞及其詞性;
(2)句法特征利用待消解詞在上下文中的句法關系特征,如動-賓關系、是否帶主/賓語、主/賓語組塊類型、主/賓語中心詞等;
(3)語義特征在句法關系的基礎上添加了語義類信息,如主/賓語中心詞的語義類,甚至還可以是語義角色標注類信息。
最近隨著深度學習在自然語言處理領域的應用,基于深度學習方法的詞義消歧成為這一領域的一大熱點。深度學習算法自動的提取分類需要的低層次或者高層次特征,避免了很多特征工程方面的工作量。
3、無監督和半監督詞義消歧
雖然有監督的消歧方法能夠取得較好的消歧性能,但需要大量的人工標注語料,費時費力。為了克服對大規模語料的需要,半監督或無監督方法僅需要少量或不需要人工標注語料。
例如Yarowsky(1995)僅需要使用少量的人工標注語料作為種子數據,Ng 等(2003)從詞對齊的雙語語料抽取種子數據。Resnik(1997)根據詞的不同歧義往往也體現在句法搭配上的差異這一思想,通過計算“語義優選強度”和“選擇關聯度”在大規模語料中自動獲取句法結構的語義優選,然后用之于詞義消歧。
一般說來,雖然半監督或無監督方法不需要大量的人工標注數據,但依賴于一個大規模的未標注語料,以及在該語料上的句法分析結果。另一方面,待消解詞的覆蓋度可能會受影響。
例如,Resnik(1997)僅考察某部分特殊結構的句法,只能對動詞、動詞的主詞/賓語、形容詞修飾的名詞等少數特定句去位置上的詞進行消歧,而不能覆蓋所有歧義詞。
.
.
延伸一:谷歌讓機器更懂語言的博大精深,發布最大消歧語料庫(2017-1-19)
「he will receive stock in the reorganized company」,這個句子中,我們結合上下詞就能知道,「stock」在這里是股票的意思,我們可以從牛津字典中找到更為專業的解釋。
但是同樣在牛津字典中,stock 這個詞還有超過 10 個不同的含義,比如「(商店里的)庫存」或是「(鞭子、釣竿等的) 柄」。對于計算機算法而言,如何從博大精深的含義中找尋某個句子中對應的詞義?這的確是一個詞義消歧難題,也就是 AI-Complete 問題。
今天谷歌研究院又發出了重磅新聞,他們發布了基于 MASC&SemCor 數據集的大規模有監督詞義消歧語料。這些語料會與牛津字典上的例句做映照,廣泛適用于各個社區。與此同時,本次發布也是最大的全句釋義語料庫之一。
人們通過對句子中詞語的內容進行理解,因為我們能通過常識判斷上下文的含義。比如同樣一個例子,「『stock』 in a business」代表的自然是股票的意思,而「『stock』 in a bodega」更有可能是庫存的意思,即使這里的 bodega 也可能指酒窖生意。我們希望為機器提供足夠的背景信息,并應用于理解文本中詞語的含義。
有監督詞義消歧(WSD)嘗試解決這一問題,也就是讓機器學習使用人工標記的數據,并與字典中的詞語所代表的典型含義匹配。我們希望構建這樣的一個監督模型,能夠不考慮復雜語境,并匹配句中單詞在詞典中最可能表達的含義。雖然這一點富有挑戰,但監督模型在大量訓練數據支持下表現良好。
通過發布數據集,我們希望社區能夠提出更好的算法,讓機器對自然語言產生更深刻的理解,支持以下的應用:
從文本中自動搭建數據庫存,這樣一來,機器可以回答問題,并將文檔中的知識串聯起來。舉個例子,機器在經過學習后,明白「hemi engine」指的是一種自動化的機械;而「locomotive engine」則與火車有關。也能理解「Kanye West is a star」指的是名人的意思;而「Sirius is a star」則是天文學概念。
消除歧義。我們希望讓文本在查詢中能夠呈現不同的含義,避免張冠李戴,與此同時還能返回具有相關語義的文檔。
來源雷鋒網,文章《谷歌讓機器更懂語言的博大精深,發布最大消歧語料庫》
.
延伸二:word2vec在消岐中的作用
來源:第2期Talk實錄 | 詞向量的幾何分布及其應用
- 在消歧任務中,一個詞在不同的 context 下是生成了不同的向量么?
因為 word2vec 對多義詞的表述并不準確,在消歧過程中我們并沒有使用多義詞本身的 vector,而是使用的除去這個多義詞之外其他 context words 的 vectors。
- 當歧義詞出現在不同的句子中時,這些句子對應的平面一定會相交么?這種特性有沒一種直觀的解釋?
這里“相交”的定義比較寬泛 - 由于噪聲的影響,三個平面完全相交都是幾乎不可能的。我們只希望存在一個 unitvector 距離所有的 subspace 都很接近。這種特性是基于最初 subspace 的假設的。假如我們考慮同義詞,那么這個同義詞應該在 context1 對應的 subspace 中,context2 對應的 subspace 中… 那么這個同義詞的所有 subspace 都會和這個同義詞的 vector 很接近,恢復 intersection 就可以近似地恢復這個同義詞的 representation。同理,假設 polysemy 的每一個 sense 都有一個 representation,那么這個 sense vector 就距離它對應所有的 subspace 很近,也就是這些 subspace 近似相交了。
.
延伸三:利用word2vec進行消岐-華院
華院數據:自然語言理解在金融領域的應用 | 尹相志
總結下來:實體詞+加一個詞來“輔助”正確識別語義
我們將詞向量技術用于枚舉出所有的幣種。我們通過掃描大量的文本,可以得到每個單詞的詞向量,那么我們怎么把所有的貨幣的名稱跳出來呢?答案很簡單就是利用如下這個cos距離的公式,我們只要將與美元的距離+英鎊的距離和最小的那些詞向量所對應的實體列舉出來就可以了。
解決方案是引入第三個詞。這里有兩種方法,一種是語義增強,一種是語義消岐。采用下面的兩個公式分別能夠做到這兩點:
這樣就可以得到我們希望要的結果了。但是這里的冰棒和雪糕還是有點怪怪的。
總結
以上是生活随笔為你收集整理的cips2016+学习笔记︱NLP中的消岐方法总结(词典、有监督、半监督)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python爬取周杰伦歌词_Python
- 下一篇: 在黎明前死去