2013年5月6日 星期一

ubuntu上以規則式(stanford-segmenter)及統計式方法進行斷詞

規則式(stanford-segmenter)

先到 http://nlp.stanford.edu/software/segmenter.shtml 抓個新版的 ,目前是stanford-segmenter-2013-04-04

解壓後進入 stanford-segmenter-2013-04-04 目錄,執行個範例程式

./segment.sh ctb test.simp.utf8 UTF-8 0

若是要對正體中文文檔斷字,需用類似iconv的程式作轉換,例如以utf-8格式儲存的繁體文檔fan.txt要斷字的話,執行以下指令:

 iconv -c -f utf-8 -t big5 fan.txt | iconv -c -f big5 -t gb2312 | iconv -f gb2312 -t utf8

試用結果感覺,對於科學詞彙較多的文檔,似乎斷得有點不好,而且有類似的句子斷出來的結果卻明顯不同的情況。

統計式


http://ckipsvr.iis.sinica.edu.tw/ 中有對中文的類統計方式斷詞步驟的說明,可分為:

  1. 初步斷詞
  2. 未知詞偵測
  3. 中國人名擷取
  4. 歐美譯名擷取
  5. 複合詞擷取
  6. bottom-up merging algorithm
  7. 重新斷詞
我覺得可以歸納這些步驟為一個迭代的迴圈,斷詞後把結果依詞庫分為已知和未知,已知的部分當然就不需要處理,但是需要微調,該小組是分為中外人名及複合詞;未知的部分則嘗試依前後順序結合為新詞(是否就是pat-tree呢? 參 http://newweb.management.ntu.edu.tw/chinese/im/theses/r93/R91725013.pdf‎ )

改寫的步驟為:

while (未知詞比重<閥值 && 迭代次數<閥值) {
    標示已知詞(可能有多個解)
    產生候選詞,加入詞庫,調整權重
}




沒有留言:

張貼留言