寫個能幹的中文斷詞系統

摘要

我們利用語言學的中文句法原則,從零開始打造了一套中文斷詞引擎 - 文截斷詞 (Articut),而且不只斷詞,它還能推理詞性標記。

本演講將分享一點點中文語言學 (雖然深度不足以理解程式邏輯)、我們在開發過程中遇到的有趣語料和斷詞結果 (可能會有些冷場)以及 Python3 的 Unicode 如何省下我們和字串編碼戰鬥的力氣 (還有 Python3.5 的 re 模組有什麼問題…啊啊,扯遠了)、還有看著 Articut 犯下和人類孩童一樣的語言錯誤時的感動(底特律變人嗎?)、以不同斷詞引擎處理特殊語料的修羅場 (我們對同領域的前輩還是非常尊敬的)以及最後用 SIGHAN 2005 的資料集,和其它文獻中的演算法進行良率競爭的結果。

說明

中文由於文字系統的特性,若要進行有效率的資訊處理,需要先經過斷詞處理以後才能投入後續的應用。目前主流的中文斷詞演算法皆需要資料集並利用統計和機器學習…等方式進行學習,產生模型以後才能開始使用。考量收集資料的過程困難且曠日費時 (其實是因為懶) 以及租用大型主機的成本 (其實是因為窮),我們利用語言學的中文句法原則,從零開始打造了一套「不用資料集,也不是基於統計模型」的中文斷詞引擎 - 文截斷詞 (Articut)。 本演講將分享一點點中文語言學 (雖然深度不足以理解程式邏輯)、我們在開發過程中遇到的有趣語料和斷詞結果 (可能會有些冷場)以及 Python3 的 Unicode 如何省下我們和字串編碼戰鬥的力氣 (還有 Python3.5 的 re 模組是如何地糞作…啊啊,扯遠了)、還有看著 Articut 犯下和人類孩童一樣的語言錯誤時的感動(底特律變人嗎?)、以不同斷詞引擎處理特殊語料的修羅場 (我們對同領域的前輩還是非常尊敬的)以及最後用 SIGHAN 2005 的資料集,和其它文獻中的演算法進行良率競爭的結果。

投影片

https://github.com/Droidtown/PyConTW2019

講者

PeterWolf

Droidtown Linguistic Tech. Co. (卓騰語言科技) 創辦人兼核心開發者。

平常開發基於語言學理論的中文斷詞(NLP)、中文語意處理(NLU)、自動語音處理、語音辨識、自然語言文本解析及資料探勘的演算法及前端應用。

是一個覺得流浪很美,卻差一點成為流浪漢的大叔。