現在隨處可見的聊天機器人(chatbot)是如何理解人類的語言呢?想必這是一個大家都有的疑問吧!
我們先回想一下在之前的文章中,像圖書管理員一樣,把堆疊成山的書分類成小說、散文或是詩集;或是英國文學、日本文學、本土文學⋯⋯。
但是,把一整本書的內容丟給電腦,電腦很難去理解這是一本什麼類型的書;將一大串話丟給電腦也是。電腦沒有辦法像人類一樣厲害,可以馬上理解書的內容。這時候,我們需要像教小朋友一樣,先從簡單的字詞開始教起。因此,就需要經過一個重要的步驟——「斷詞」。
什麼是斷詞?
在認識斷詞之前,我們可以先想一下,一篇文章是由好幾個段落組成,一個段落又可以分成一句一句話,每一句話可以再分類成最小的字詞。正確地將最小且有意義的字詞辨識出來,就必須透過「斷詞」。

把字詞拆分開來讓電腦去理解,電腦才有辦法進行更高層次的分析。因此,斷詞的正確性也是自然語言處理的關鍵。
舉個例子,「努力才能成功」,正確的斷詞為「努力/才/能/成功」,這個結果輸入電腦之後,電腦便會利用它學習過的經驗再去判斷其他句子。例如,「他的領導才能很傑出」,電腦可能因為過去的經驗,把它切分成「他/的/領導/才/能/很/傑出」,但實際上正確的斷詞應為「他/的/領導/才能/很/傑出」。

解決沒斷好的詞
而現在大部分的斷詞系統是如何解決這樣的問題呢?有幾種常見的方法:
- 正向最大匹配法:我們會有一個字典,從字典中收錄的字一一比對最長詞在字典中的匹配結果,就可以判斷出「他|的|領導|才能|很|傑出」。
- 逆向最大匹配法:一樣利用字典,而這次我們倒過來,從後向前跟字典收錄的字做比對,一一比對最長詞的匹配結果,就可以斷出「傑出|很|才能|領導|的|他」,因此就知道「他|的|領導|才能|很|傑出」是對的斷詞結果。
- 正向最大匹配法結合逆向最大匹配法:兩相比對,取得最符合的斷詞。

不過上述的方法有個缺點,就是如果該詞沒有被收錄到字典中,就無法做匹配,那麼出來的結果就有可能是錯誤的。因此,現在大部分比較好的斷詞系統都是使用全切分方法,切分出與詞庫匹配的所有可能,再運用統計模型計算出最好的切分結果。
了解電腦是怎麼處理人類語言之後,我們接下來會更進一步介紹在聊天的過程中,電腦是如何利用斷詞後的詞彙,來預測出正確的回覆。
參考資料
中文斷詞:斷句不要悲劇 / Head first Chinese text segmentation
你也可以在這兒找到Justka的文章喔!