什麼是詞幹提取?

自然語言處理 (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」。這樣一來,就能更輕鬆地看出整體正面情緒,避免因不同字形而混淆。然而,如果詞幹提取功能移除重要資訊或錯誤縮短字詞,有時會造成錯誤。不過,此功能會著重於字詞的核心意義,而非文法,因此通常能更快速且準確地分析情緒。

詞幹提取的優點

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

模型效能提升

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

降低維度

詞幹提取可直接減少處理的不重複字詞數量,進而降低資料維度。這能大幅減少建立字詞頻率矩陣或詞彙索引等工作所需的資源。維度減少後,處理速度也會加快,記憶體用量也會降低。

改善搜尋召回率

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

強化分群和主題建模

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

簡化的文字預先處理

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

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

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

詞幹提取的限制

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

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

展開下一步行動

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