十七 讓機器做詞性自動標註的具體方法

2021-07-26 10:34:55 字數 1913 閱讀 8277

分詞、命名實體識別和詞性標註這三項技術如果達不到很高的水平,是難以建立起高效能的自然語言處理系統,也就難以實現高質量的聊天機械人,而詞性是幫助計算機理解語言含義的關鍵,本節來介紹一些詞性標註的具體方法

漢語詞性標註最大的困難是「兼類」,也就是乙個詞在不同語境中有不同的詞性,而且很難從形式上識別。

為了解決詞性標註無法達到100%準確的問題,詞性標註一般要經過「標註」和「校驗」兩個過程,第一步「標註」根據規則或統計的方法做詞性標註,第二步「校驗」通過一致性檢查和自動校對等方法來修正。

詞性標註具體方法包括:基於統計模型的方法、基於規則的方法和兩者結合的方法。下面我們分別來介紹。

提到基於統計模型,勢必意味著我們要利用大量已經標註好的語料庫來做訓練,同時要先選擇乙個合適的訓練用的數學模型,《自己動手做聊天機械人 十五-一篇文章讀懂拿了圖靈獎和諾貝爾獎的概率圖模型》中我們介紹了概率圖模型中的隱馬爾科夫模型(hmm)比較適合詞性標註這種基於觀察序列來做標註的情形。語言模型選擇好了,下面要做的就是基於語料庫來訓練模型引數,那麼我們模型引數初值如何設定呢?這裡面就有技巧了

模型引數初始化是在我們尚未利用語料庫之前用最小的成本和最接近最優解的目標來設定初值。hmm是一種基於條件概率的生成式模型,所以模型引數是生成概率,那麼我們不妨就假設每個詞的生成概率就是它所有可能的詞性個數的倒數,這個是計算最簡單又最有可能接近最優解的生成概率了。每個詞的所有可能的詞性是我們已經有的詞表裡標記好的,這個詞表的生成方法就比較簡單了,我們不是有已經標註好的語料庫嘛,很好統計。那麼如果某個詞在詞表裡沒有呢?這時我們可以把它的生成概率初值設定為0。這就是隱馬爾可夫模型引數初始化的技巧,總之原則就是用最小的成本和最接近最優解的目標來設定初值。一旦完成初始值設定後就可以利用前向後向演算法進行訓練了。

規則就是我們既定好一批搭配關係和上下文語境的規則,判斷實際語境符合哪一種則按照規則來標註詞性。這種方法比較古老,適合於既有規則,對於兼詞的詞性識別效果較好,但不適合於如今網路新詞層出不窮、網路用語新規則的情況。於是乎,有人開始研究通過機器學習來自動提取規則,怎麼提取呢?不是隨便給一堆語料,它直接來生成規則,而是根據初始標註器標註出來的結果和人工標註的結果的差距,來生成一種修正標註的轉換規則,這是一種錯誤驅動的學習方法。基於規則的方法還有乙個好處在於:經過人工校總結出的大量有用資訊可以補充和調整規則庫,這是統計方法做不到的。

統計方法覆蓋面比較廣,新詞老詞通吃,常規非常規通吃,但對兼詞、歧義等總是用經驗判斷,效果不好。規則方法對兼詞、歧義識別比較擅長,但是規則總是覆蓋不全。因此兩者結合再好不過,先通過規則排歧,再通過統計標註,最後經過校對,可以得到正確的標註結果。在兩者結合的詞性標註方法中,有一種思路可以充分發揮兩者優勢,避免劣勢,就是首選統計方法標註,同時計算計算它的置信度或錯誤率,這樣來判斷是否結果是否可疑,在可疑情況下採用規則方法來進行歧義消解,這樣達到最佳效果。

做完詞性標註並沒有結束,需要經過校驗來確定正確性以及修正結果。

第一種校驗方法就是檢查詞性標註的一致性。一致性指的是在所有標註的結果中,具有相同語境下同乙個詞的標註是否都相同,那麼是什麼原因導致的這種不一致呢?一種情況就是這類詞就是兼類詞,可能被標記為不同詞性。另一種情況是非兼類詞,但是由於人工校驗或者其他原因導致標記為不同詞性。達到100%的一致性是不可能的,所以我們需要保證一致性處於某個範圍內,由於詞數目較多,詞性較多,一致性指標無法通過某一種計算公式來求得,因此可以基於聚類和分類的方法,根據歐式距離來定義一致性指標,並設定乙個閾值,保證一致性在閾值範圍內。

第二種校驗方法就是詞性標註的自動校對。自動校對顧名思義就是不需要人參與,直接找出錯誤的標註並修正,這種方法更適用於乙個詞的詞性標註通篇全錯的情況,因為這種情況基於資料探勘和規則學習方法來做判斷會相對比較準確。通過大規模訓練語料來生成詞性校對決策表,然後根據這個決策表來找通篇全錯的詞性標註並做自動修正。

詞性標註的方法主要有基於統計和基於規則的方法,另外還包括後期校驗的過程。詞性標註是幫助計算機理解語言含義的關鍵,有了詞性標註,我們才可以進一步確定句法和語義,才有可能讓機器理解語言的含義,才有可能實現聊天機械人的夢想

奮戰聊天機械人(三)自動化對語料做詞性標註

import nltk porter nltk.porterstemmer porter.stem lying import nltk text nltk.word tokenize and now for something completely different nltk.pos tag te...

讓MySQL資料庫自動恢復的具體操作

如果mysql伺服器啟用了二進位制日誌,你可以使用mysqlbinlog工具來恢復從指定的時間點開始 例如,從你最後一次備份 直到現在或另乙個指定的時間點的資料。mysqlbinlog 用於處理二進位制日誌檔案的實用工具 要想從二進位制日誌恢復資料,你需要知道當前二進位制日誌檔案的路徑和檔名。一般可...

二十七 用深度學習來做自動問答的一般方法

聊天機械人本質上是乙個範問答系統,既然是問答系統就離不開候選答案的選擇,利用深度學習的方法可以幫助我們找到最佳的答案,本節我們來講述一下用深度學習來做自動問答的一般方法 問答系統訓練其實是訓練乙個怎麼在一堆答案裡找到乙個正確答案的模型,那麼為了讓樣本更有效,在訓練過程中我們不把所有答案都放到乙個向量...