什麼是詞幹提取?

自然語言處理 (NLP) 中,詞幹提取是指將字詞縮減為詞根或詞幹,但產生的結果不一定是有效字詞。舉例來說,「arguing」和「argued」經過詞幹提取後,有時可能會變成「argu」,但這並非正確的字詞。詞幹提取的主要做法是移除字尾。移除字尾可將同一字詞的不同形式歸為一組,有助於電腦更有效率地處理這些字詞。這項程序會減少需要考量的不重複字詞數量,進而提高各種自然語言處理任務的準確率與效率。

重點摘要

  • 說明:詞幹提取是自然語言處理領域中,根據規則快速將字詞縮減為詞根形式的程序 (例如:將「running」縮減為「run」)
  • 用途:減少字詞變化,改善搜尋引擎與文字分析模型的效率
  • 重要考量:詞幹提取比詞形還原快,但準確率較低,因為輸出內容可能不是實際存在的字詞 (例如:「arguing」變成「argu」)
  • 常見演算法:最知名的類型包括 Porter、Snowball 與 Lancaster 詞幹提取器

詞幹提取的用途為何?

詞幹提取的主要目的是減少機器必須處理的字詞變化。機器可將字詞縮減為基本形式,將同一字詞的不同形式視為單一實體。例如,「running」、「runs」和「runner」都會縮減為詞幹「run」。這樣的簡化有助於提升各種自然語言處理任務的準確率與效率。

詞幹提取的幾個主要用途包括:

  • 資訊檢索:即使搜尋查詢使用的字詞形式與文件中的不同,詞幹提取也能讓搜尋引擎檢索相關文件
  • 文字探勘:詞幹提取可將同一字詞的不同形式歸為一類,協助找出大型文字資料集的模式與趨勢
  • 機器翻譯:詞幹提取可減少需要翻譯的字詞數量,有助於改善機器翻譯的準確率

詞幹提取在自然語言處理中的運作方式

詞幹提取演算法會使用一組規則,找出並移除字詞的字尾。這些規則通常以語言模式或大量文字的統計分析為依據。演算法通常會依序執行一系列步驟,每個步驟都會移除特定類型的字尾。舉例來說,簡單的詞幹提取規則可能是從結尾為「-ing」的字詞中移除字尾「-ing」。這項程序通常相當快速,且運算成本不高,因此適合處理大量文字資料。

詞幹提取和合併

詞幹提取的重要概念之一是「合併」,也就是將不同字詞或詞組視為語意相符,因為它們都指涉同一個核心概念。舉例來說,「decided」和「decidable」可能不是同義詞,但在某些情境下可視為相似,例如:分析與決策過程相關的主題時。詞幹提取可視為一種合併,著重於減少字詞的屈折變化。   

詞幹提取在字詞合併中扮演重要角色,這是一種更廣義的程序,可減少文字中的詞彙變化。字詞合併的目的是減少字詞的不同形式 (如詞幹提取與詞形還原),以及語意、文法或拼字上的變化。詞幹提取可減少這些差異,讓文字分析與資訊搜尋更具成效。

詞幹提取演算法類型

1968 年,Julie Beth Lovins 開發出第一個公開的詞幹提取器,奠定了詞幹提取演算法的基礎。自此以後,出現了許多不同的詞幹提取演算法,各有優缺點:

Porter 詞幹提取器

Porter 詞幹提取器是歷史最悠久且最廣泛使用的詞幹提取演算法之一,由 Martin Porter 於 1980 年開發。這項演算法會使用一系列規則,移除英文單字的字尾。這項技術以簡單快速著稱,但有時會過度縮減字詞,導致結果不準確,而且可能不適用於英文以外的語言。舉例來說,Porter 詞幹提取器可能會將「university」、「universal」和「universities」都縮減為相同的詞幹「univers」。這清楚展現了該演算法縮減幅度較大的特性,以及可能造成的語意流失。

Snowball 詞幹提取器

Snowball 詞幹提取器是 Porter 詞幹提取器的改良版。支援多種語言 (不只英文),一般認為準確率較高。不過,不一定能避免過度詞幹提取。這項演算法更精細,能掌握更多語言細微差異,產生更多語意有意義的詞幹,並在準確率和速度之間取得更好的平衡。這項技術在資訊檢索和機器翻譯等應用中相當實用,因為這些應用必須保留字詞的脈絡和意義。

Lancaster 詞幹提取器

Lancaster 詞幹提取器是另一個熱門演算法,以更積極地減少字詞而聞名。雖然這麼做可以加快處理速度,但與 Porter 或 Snowball 詞幹提取器相比,通常會導致更多詞幹提取錯誤。雖然速度提升在某些情況下很有幫助,例如處理大量文字時,時間至關重要。但在許多應用中,速度提升可能無法彌補準確率下降的損失。

詞幹提取與詞形還原

詞幹提取和詞形還原都是將字詞簡化為基本形式的方法,但兩者並不相同。詞形還原是詞幹提取的進階版,會考量字詞的脈絡和文法。這項技術會使用字典和構詞學分析,找出字詞的字典形式,也就是詞目。詞形還原通常會產生有效的字詞 (詞目),但詞幹提取可能不會。雖然詞形還原通常比詞幹提取更準確,但需要更多時間和精力,因此運算成本較高。

功能

詞幹提取

詞形還原

複雜度

較低

較高

準確率

較低

較高

速度

較快

稍慢

輸出內容

可能不是有效字詞

一律為有效字詞

功能

詞幹提取

詞形還原

複雜度

較低

較高

準確率

較低

較高

速度

較快

稍慢

輸出內容

可能不是有效字詞

一律為有效字詞

詞幹提取的應用

詞幹提取可用於各種自然語言處理工作:

資訊檢索

詞幹提取可大幅提升資訊檢索系統的效能,例如搜尋引擎、桌面搜尋工具、檢索增強生成 (RAG) 和文件管理系統。這些系統會對搜尋字詞和待搜尋的文件進行詞幹提取,即使用字不完全相同,也能更有效地將查詢與相關內容進行比對。

文字分類

詞幹提取可減少文字資料的特徵或屬性數量,並提高相關字詞歸為同一組的機率,進而改善文字分類演算法的準確率。這讓演算法更容易找出模式,並準確地分類文字。

為文字製作摘要

文字摘要功能可運用詞幹提取,找出最重要的字詞並減少重複內容。詞幹提取可將相關字詞歸為一組,有助於生成更簡潔實用的摘要。

情緒分析

詞幹提取可將字詞縮短為主要形式,協助判斷文字是正面、負面或中性。例如,「happy」、「happily」與「happiness」都會變成「happy」。這樣一來,就能更輕鬆地看出整體正面情緒,並避免因不同字詞形式造成混淆。然而,如果詞幹提取移除重要資訊或錯誤縮短字詞,有時可能造成錯誤。不過,詞幹提取著重於字詞的核心語意,而非文法,因此通常可提升情緒分析的成效與速度。

詞幹提取的優點

詞幹提取可帶來多項潛在優勢:

提升模型成效

詞幹提取可減少不重複的字詞數量,進而提升自然語言處理模型的效能。這有助於縮短訓練時間,並改善預測準確率。詞幹提取可將相關字詞分組,強化文字中模式識別的信號。因此,您可能會看到更穩健且準確的模型,特別是在文字分類與情緒分析等任務中。舉例來說,在 Gemini Enterprise Agent Platform 中,將詞幹提取作為預先處理步驟,可減少細微字詞變化造成的影響,進而改善情緒分析模型的準確率。

降低維度

詞幹提取可直接減少需要處理的不重複字詞數量,進而降低資料維度。這有助於大幅減少建立字詞頻率矩陣或詞彙索引等任務所需的資源。維度降低後,也有助於提升處理速度,並減少記憶體用量。

改善搜尋召回率

在資訊檢索系統中,詞幹提取可大幅改善召回率。舉例來說,搜尋「hiking poles」的使用者,也可能找到包含「hikes」、「hiker」或「hiked」的文件。詞幹提取可消弭同一字詞不同形式之間的落差,確保不會因用詞略有差異而遺漏相關文件。雖然可能產生較多不相關的結果,但召回率提升有助於確保搜尋結果更全面。

強化分群和主題建模

詞幹提取可提升文件分群和主題建模的成效。詞幹提取可將字詞還原為詞根,根據文件的基本語意將文件分組,而非根據字詞形式的表面變化。進而產生更連貫且有意義的分群或主題。

簡化文字預先處理

詞幹提取可大幅簡化整體文字預先處理管道。這可減少後續步驟中需要考量的不重複字詞數量,例如:去除停用詞、特徵擷取 (TF-IDF、字詞嵌入) 和資料正規化。更清楚、精簡的資料表示法通常更容易管理與分析,有助於節省開發時間與資源。

減少資料稀疏度和過度配適

在處理文字資料的機器學習模型中,詞幹提取可將同一字的不同形式歸為一類,有助於減少資料稀疏度。這可以避免過度配適,也就是模型記住特定字詞形式,而非學習具有可推論性的模式。

詞幹提取的限制

雖然詞幹提取有許多優點,但也有一些限制:

  • 過度詞幹提取:詞幹提取演算法移除過多字詞,導致詞幹不是有效字詞,或與原始字詞的意義不同
  • 詞幹提取不足:詞幹提取演算法無法移除足夠的字詞,導致同一字詞的不同形式被視為不同字詞
  • 資訊遺失:詞幹提取有時會導致資訊遺失,因為移除的字尾可能包含重要的文法或語意資訊
  • 情境錯誤:詞幹提取演算法通常不會考慮字詞的情境,因此在相同字詞依情境而有不同意義時,可能會產生錯誤

後續行動

運用價值 $300 美元的免費抵免額和 20 多項一律免費的產品,開始在 Google Cloud 建構產品與服務。