前麵已經談到過分詞的問題。因為詞是表達語義的最小單位,所以幾乎所有語言處理模型都是建立在識別詞的基礎之上的,這是自然語言處理中的一個基本問題。
英文的詞之間存在天然的分界符(空格),所以隻要識別分界符就可以解決大部分分詞問題。這裏之所以說解決的是大部分問題,是因為在手寫文本識別任務中,因為存在書寫不規範的問題,所以英文同樣需要更高級的分詞技術。更重要的,在中文、日文等詞之間不存在明確分界符的語言中,準確分詞是幾乎所有其他自然語言處理工作的前提。接下來以中文為例介紹如何實現分詞任務。
一個簡單的處理分詞問題的方法是建立中文詞典,需要對句子進行分詞時,要從詞典中查詢,遇到詞典中存在的詞匯就標識出來。這樣做存在一個小問題,就是詞典需要不斷更新;還有一個大的問題,就是它不能很好地適應中文的複雜性。例如,“研究生命起源”,正確的分詞方式是“研究/生命/起源”。但是在詞典中還可以查詢到“研究生”“命”,如果按照“研究生/命/起源”分詞是不正確的,但是機器並不能確定使用哪種方式分詞,所以如果隻采用查詢詞典的方式分詞效果不是很好。
有一些辦法可以改進這些缺點。例如,很多學者在20世紀90年代以前,嚐試通過建立大量的文法規則來解決問題。但是語言的複雜性決定了基於規則的方法依然不是十分成功。隨著基於統計的方法開始大量應用於自然語言處理,分詞問題慢慢取得了越來越好的效果。現在已經有多個效果較好的開源分詞工具,如結巴分詞(jieba)、盤古分詞、LTP、THULAC等。下麵使用在網絡上抓取的新聞文本作為案例,介紹如何利用結巴分詞實現文本的分詞工作。相關的文本數據可以在平台下載。