在自然語言處理 (NLP) 中,詞幹提取是指將字詞縮減為詞根或詞幹,但不一定是有意義的字詞。舉例來說,「arguing」和「argued」經過詞幹提取,有時會輸出為「argu」,但這並非正確的字詞。主要做法是移除字尾。移除字尾可將同一字詞的不同形式歸為一組,有助於電腦更有效率地處理這些字詞。這個程序會減少需要考量的不重複字詞數量,進而提高各種自然語言處理工作的準確率和效率。
詞幹提取的主要目的是減少機器必須處理的字詞變化。將字詞還原為基本形式後,機器就能將同一字詞的不同形式視為單一實體。例如:「running」、「runs」和「runner」都會簡化為詞幹「run」。簡化後,各種自然語言處理工作的準確率和效率都能提升。
詞幹提取的幾個主要用途包括:
詞幹提取演算法會使用一組規則,找出並移除字詞的字尾。這些規則通常是根據語言模式或大量文字的統計分析結果制定。演算法通常會依序執行一系列步驟,每個步驟都會移除特定類型的字尾。舉例來說,簡單的詞幹提取規則可能是從結尾為「-ing」的字詞中移除字尾「-ing」。這個程序通常很快,運算成本也不高,因此適合處理大量文字資料。
詞幹提取的重要概念之一是「合併」,也就是將不同字詞或詞組視為語意相符,因為它們都指涉同一個核心概念。舉例來說,「decided」和「decidable」可能不是同義詞,但在某些情況下可以視為相似,例如分析與決策過程相關的主題時。詞幹提取可視為一種合併,著重於減少字詞的屈折變化。
詞幹提取在字詞合併中扮演重要角色,這是更一般的程序,可減少文字中的詞彙變化。字詞合併的目的是減少不同形式的字詞 (例如詞幹提取和詞形還原),以及意義、文法或拼字上的變化。詞幹提取可減少這些差異,讓文字分析和資訊搜尋更有效率。
1968 年,Julie Beth Lovins 開發出第一個公開的詞幹提取器,奠定了詞幹提取演算法的基礎。自此以後,出現了許多不同的詞幹提取演算法,各有優缺點:
Porter 詞幹提取器是歷史最悠久且最廣泛使用的詞幹提取演算法之一,由 Martin Porter 於 1980 年開發。它會使用一系列規則,從英文單字中移除字尾。這項技術以簡便快速著稱,但有時會過度減少字詞,導致不準確,而且可能無法在英文以外的語言中發揮良好效果。舉例來說,Porter 詞幹提取器可能會將「university」、「universal」和「universities」都還原為相同的詞幹「univers」。這清楚說明了演算法的積極性質和可能造成的意義損失。
Snowball 詞幹提取器是 Porter 詞幹提取器的改良版。支援多種語言 (不只英文),一般認為準確率較高。不過,不一定能避免過度詞幹提取。這項演算法更精細,能掌握更多語言細微差異,產生更多語意有意義的詞幹,並在準確率和速度之間取得更好的平衡。這項技術在資訊檢索和機器翻譯等應用中相當實用,因為這些應用必須保留字詞的脈絡和意義。
Lancaster 詞幹提取器是另一個熱門演算法,以更積極地減少字詞而聞名。雖然這麼做可以加快處理速度,但與 Porter 或 Snowball 詞幹提取器相比,通常會導致更多詞幹提取錯誤。雖然速度提升在某些情況下很有幫助,例如處理大量文字時,時間至關重要。但在許多應用中,速度提升可能無法彌補準確率下降的損失。
詞幹提取和詞形還原都是將字詞簡化為基本形式的方法,但兩者並不相同。詞形還原是詞幹提取的進階版,會考量字詞的脈絡和文法。這項技術會使用字典和構詞學分析,找出字詞的字典形式,也就是詞目。詞形還原通常會產生有效的字詞 (詞目),但詞幹提取可能不會。雖然詞形還原通常比詞幹提取更準確,但需要更多時間和精力,因此運算成本較高。
功能 | 詞幹提取 | 詞形還原 |
複雜度 | 較低 | 較高 |
準確率 | 較低 | 較高 |
快速 | 較快 | 稍慢 |
輸出 | 可能不是有效字詞 | 一律是有效字詞 |
功能
詞幹提取
詞形還原
複雜度
較低
較高
準確率
較低
較高
快速
較快
稍慢
輸出
可能不是有效字詞
一律是有效字詞
詞幹提取可用於各種自然語言處理工作:
詞幹提取可大幅提升資訊檢索系統的效能,例如搜尋引擎、桌面搜尋工具、檢索增強生成 (RAG) 和文件管理系統。這些系統會對搜尋字詞和待搜尋的文件進行詞幹提取,即使用字不完全相同,也能更有效地將查詢與相關內容進行比對。
詞幹提取可減少文字資料的特徵或屬性數量,並提高相關字詞歸為同一群組的機率,進而提升文字分類演算法的準確率。讓演算法更容易找出模式,並準確分類文字。
文字摘要功能可運用詞幹提取,找出最重要的字詞並減少重複內容。詞幹提取可將相關字詞歸為一組,有助於生成更簡潔實用的摘要。
詞幹提取可將字詞縮短為主要形式,協助判斷文字是正面、負面或持平。例如:「happy」、「happily」和「happiness」都會變成「happy」。這樣一來,就能更輕鬆地看出整體正面情緒,避免因不同字形而混淆。然而,如果詞幹提取功能移除重要資訊或錯誤縮短字詞,有時會造成錯誤。不過,此功能會著重於字詞的核心意義,而非文法,因此通常能更快速且準確地分析情緒。
詞幹提取可帶來多項潛在優勢:
詞幹提取可減少不重複的字詞數量,進而提升自然語言處理模型的成效。這有助於縮短訓練時間,並提高預測準確率。詞幹提取可將相關字詞分組,強化文字中模式識別的信號。因此,您可能會看到更完善且準確的模型,特別是文字分類和情緒分析等工作。舉例來說,在 Vertex AI 中,將詞幹提取做為預先處理步驟,可減少細微字詞變化造成的影響,進而提高情緒分析模型的準確率。
詞幹提取可直接減少處理的不重複字詞數量,進而降低資料維度。這能大幅減少建立字詞頻率矩陣或詞彙索引等工作所需的資源。維度減少後,處理速度也會加快,記憶體用量也會降低。
在資訊檢索系統中,詞幹提取可大幅改善召回率。舉例來說,搜尋「登山杖」的使用者,也可能找到包含「登山」、「登山者」或「登山活動」的文件。詞幹提取可消弭同一字詞不同形式之間的落差,確保不會因用字略有不同而遺漏相關文件。雖然可能產生較多不相關的結果,但強化的召回率可確保搜尋結果更全面。
詞幹提取可提升文件分群和主題建模的成效。詞幹提取可將字詞還原為詞根,根據文件的基本語意將文件分組,而非根據字詞形式的表面變化。進而產生更連貫且有意義的分群或主題。
詞幹提取可大幅簡化整體文字預先處理管道。可減少後續步驟 (例如去除停用詞、特徵擷取 (TF-IDF、字詞嵌入) 和資料正規化) 中需要考量的不重複字詞數量。簡潔的資料呈現方式通常更容易管理和分析,有助於節省開發時間和資源。
在處理文字資料的機器學習模型中,詞幹提取可將同一字的不同形式歸為一類,有助於減少資料稀疏度。這可以避免過度配適,也就是模型記住特定字詞形式,而非學習具有可推論性的模式。
雖然詞幹提取有許多優點,但也有一些限制:
使用詞幹提取或相關文字處理技術時,可運用多項 Google Cloud 產品: