TreeTagger


大家都知道TreeTagger是一個用於詞性標注和詞型還原的工具,它的返回結果由三部分組成:目標詞匯,詞性,原形。那該工具是怎樣判斷目標詞匯的詞性的呢?又是怎樣得到目標詞匯的原形的呢?本文就是從這兩個問題入手,對TreeTagger的原理進行簡單的介紹。

1. 詞性的識別判斷

這里詞性的識別采用的決策樹分類方法。如下圖所示,首先將目標文本分成三元短語,然后通過判斷目標詞匯的前兩個單詞的詞性來判斷當前詞匯的詞性,具體思路下圖所示:當前一個詞的詞性為ADJ時,判斷前面倒數第二個詞的詞性,當詞性為DET時,我們就可以得出結論:當前詞匯的詞性70%的可能性是NN,10%的可能性是ADJ。

那具體這棵樹是如何構建的呢?

1)從當前詞出發,判斷其前面第一個相鄰詞匯的所有可能詞性標記,選擇特征性最明顯的詞性標記,將當前節點分成yes, 和no 兩個子樹。判斷特征性明顯的公式如下:

這里的C為當前節點的上下文,C+為測試q成功的情況, C-為對應的測試q失敗的情況,

為測試q成功(失敗)的概率;

為在測試q成功(失敗)的條件下,第三個標記為t的概率。

Iq為平均信息量,我們要選擇最大信息量等價於與選擇最小平均信息量。

其中,各個指標的計算如下:

如果下一個測試產生的三元子集中有一個的大小低於閾值,則停止當前遞歸。

然后已經通過遞歸步驟的所有三元詞組將被用於估計第三個詞性標記的標記概率,並將其保存在當前節點中。

那構建好這棵樹后需要進行剪枝工作,那具體是怎樣實現的呢?

如果一個節點的兩個子節點都是葉子節點,並且該節點上的權重信息增益低於所給的閾值,這該節點的子節點將會被移除,然后當前節點自己變成葉子節點。權重信息增益的計算公式如下:

 

G為權重信息增益,I0是信息總量,在測試q已知的情況下。與上面的描述不同。

2. 原形

treeTagger中的詞匯原形是通過查找詞典的方式獲得的,該詞典是從Penn Treebank 語料庫中訓練得到的。總共分為三部分: a fullform lexicon,  a suffix lexicon  and a default entry.

當從詞典中查找一個單詞的時候,首先從fullform lexicon中查找,如果找到了,就直接返回相應的詞性標記概率向量(即作為每種詞性出現的可能性),如果沒有找到,則將其中的大寫轉換成小寫,再次遍歷the fullform lexicon,如果還是找不到,就到suffix lexicon中去查找。如果還是沒有找到,則一個默認值將會被返回。那該詞典的各個部分是怎樣被構建的呢?有什么特點呢?

1)the fullform lexicon: 是從Penn Treebank Corpus的200萬個詞中訓練得到的。在該部分中,每個詞匯與其對應出現的詞性組成對被計算,如果一個單詞的某個詞性出現的次數很少,低於1,則將會刪除對應的詞-詞性對。因為該種情況的造成大多數是由於標注錯誤造成的。

2)the suffix lexicon: 被組織成一顆樹,樹上的每一個節點都用一個特征值進行標記。在葉子節點中,包含了詞性標記概率向量。當進行查找操作時,首先從根節點進行。

講了這麽多,可能大家都有點頭昏了,舉個例子吧!

假如我們想查找單詞tagging 在suffix lexicon中,如下圖。 

 

我們首先會從根節點開始,然后遍歷分支,到達節點g,然后往前到達節點n, 最后我們在標記為i的節點處結束搜索。這個節點就是一個葉子節點,與其對應的概率向量將會被返回。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



猜您在找
 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM