詞形還原 是什麼?
Lemmatization:詞形還原 的完整解釋
詞形還原是自然語言處理中將單詞還原為其基本形式(詞元)的過程,考慮了單詞的語法和上下文。
容易混淆
詞形還原 vs 詞幹提取 詞形還原會查字典,詞幹提取只把尾巴砍掉。 一個重視正確詞形,一個重視速度。
詞形還原 vs 分詞 分詞是把句子切成詞,詞形還原是把詞變回基本形式。 一個在切開文字,一個在整理文字。
最關鍵的區別: 切詞和還原不是同一件事。
記住這句就好
先看懂詞,再把詞變回字典型。
實際案例
英文搜尋引擎 使用者搜 running 時,也能找到 run、runs、ran 相關文件,召回率通常會更好。
客服意圖分類 把 likes、liked、liking 都整理到同一語義底下,分類器比較不容易被詞形干擾。
深入了解
詞形還原通常需要詞典或語言規則,處理英文時會搭配詞性標註一起看。 它比詞幹提取準確,但速度較慢,也比較依賴語言工具品質。 對英文 NLP 很重要,對其他語言則要看詞形變化有多複雜。
中英對照與常見說法
| 說法 | 出現場合 |
|---|---|
| 詞形還原 | 台灣與中國大陸通用譯名 |
| 词形还原 | 簡體寫法 |
| Lemmatization | 英文原名 |
| 詞元化、詞條還原 | 常見變體 |
| Lemma(詞元、詞條) | 還原後的那個標準形式 |
跟詞幹提取的差別,這是最常一起被問的
| 詞幹提取(Stemming,词干提取) | 詞形還原(Lemmatization) | |
|---|---|---|
| 做法 | 依規則砍掉字尾 | 查詞典並判斷詞性 |
| 產出 | 不一定是真的單字 | 一定是字典裡的詞 |
| 速度 | 快 | 慢,需要查詞典與詞性標註 |
| 例子 studies | studi | study |
| 例子 better | better(規則砍不動) | good |
| 例子 running | run | run |
兩者的目的相同:把同一個詞的不同變形歸到一起,讓「study、studies、studying」被視為同一個東西。差別在手段與品質的取捨。
選擇準則:只是要做檢索或分群,詞幹提取夠用而且快;要做語意分析、要把結果拿給人看、或要跟詞典與知識庫對接,就得用詞形還原。
詞形還原一定要先做詞性標註。同樣的字在不同詞性下還原結果不同:meeting 當名詞還原成 meeting,當動詞則還原成 meet。沒有給詞性的詞形還原工具,預設多半當名詞處理,錯誤率會明顯上升。
中文需要這一步嗎
中文沒有動詞變位與名詞複數,所以傳統意義的詞形還原在中文幾乎用不到。中文的對應問題是斷詞(把連續字串切成詞)與同義詞正規化(「計程車」與「出租車」、「網路」與「网络」)。
這也是為什麼中文自然語言處理的前處理流程跟英文長得很不一樣:英文是斷詞加詞形還原加停用詞移除,中文是斷詞加繁簡與全半形正規化加同義詞對應。
現在還需要做嗎
用詞袋模型、TF-IDF、BM25 這類基於字面比對的方法時,詞形還原仍然重要,因為字面對不上就是比不到。
用子詞切分加上嵌入模型時通常不需要,甚至有害。現代模型的斷詞器會把 studies 切成子詞,嵌入空間裡它跟 study 本來就靠得很近,額外的還原反而可能丟掉時態與單複數這些有用的訊息。
判斷準則很簡單:下游是字面比對就做,下游是語意向量就別做。
情境判斷
Q1(直覺題): 如果你要做英文搜尋,想把不同詞形一起查到,該先考慮什麼?
→ 詞形還原,因為它能把不同變化收回同一詞元。
Q2(判斷題): 所有語言都適合用同一套詞形還原工具嗎?
→ 不一定,不同語言的詞形規則差很多,工具要跟語言配套。
相關術語
常見問題
詞形還原一定比詞幹提取好嗎?
不一定。詞形還原更準,但更慢;如果只是快速索引,詞幹提取也可能夠用。
詞形還原會不會把意思變錯?
如果詞典或詞性標註不準,確實可能還原錯,所以工具品質很重要。
什麼情況最需要詞形還原?
英文搜尋、文本分類、資訊檢索這類需要合併詞形的任務最常見。