詞袋模型(Bag of Words)

詞袋模型是一種簡化文本表示的方法,忽略詞語的順序和語法結構,僅統計每個詞語在文本中出現的次數,形成詞頻向量。

完整說明

核心概念

詞袋模型的核心思想是將文本簡化為一個詞語的集合,忽略詞語之間的順序關係。它主要包含以下幾個步驟:

  1. 詞彙表構建 (Vocabulary Construction): 首先需要構建一個包含所有文本中出現的詞語的詞彙表。可以根據需要進行詞幹提取 (Stemming) 或詞形還原 (Lemmatization) 等預處理操作,以減少詞彙表的規模。
  2. 文本向量化 (Text Vectorization): 對於每個文本,統計詞彙表中每個詞語在文本中出現的次數,形成一個詞頻向量。向量的每個維度對應詞彙表中的一個詞語,維度的值表示該詞語在文本中出現的次數。

例如,假設有兩個文本:

  • 文本 1: "This is a good book"
  • 文本 2: "This is a bad book"

構建的詞彙表為:[“This”, “is”, “a”, “good”, “book”, “bad”]

則兩個文本的詞頻向量分別為:

  • 文本 1: [1, 1, 1, 1, 1, 0]
  • 文本 2: [1, 1, 1, 0, 1, 1]

運作原理

詞袋模型的運作原理非常簡單,主要包括以下幾個步驟:

  1. 文本預處理 (Text Preprocessing): 對文本進行清洗和預處理,例如去除標點符號、轉換為小寫、去除停用詞 (Stop Words) 等。
  2. 詞彙表構建 (Vocabulary Construction): 根據預處理後的文本構建詞彙表。可以設置詞頻閾值,只保留出現頻率較高的詞語。
  3. 文本向量化 (Text Vectorization): 對於每個文本,統計詞彙表中每個詞語在文本中出現的次數,形成詞頻向量。
  4. 向量歸一化 (Vector Normalization): 對詞頻向量進行歸一化處理,例如使用 L1 歸一化或 L2 歸一化,以消除文本長度的影響。

常用的詞袋模型變種包括:

  • TF-IDF (Term Frequency-Inverse Document Frequency): TF-IDF 不僅考慮詞語在文本中出現的頻率,還考慮詞語在整個文檔集合中的稀有程度。TF 表示詞頻,IDF 表示逆文檔頻率,TF-IDF 值越高,表示該詞語在文本中越重要。
  • N-gram 模型 (N-gram Model): N-gram 模型考慮詞語的局部順序關係,將連續的 N 個詞語作為一個單元進行統計。例如,2-gram 模型會將 “This is” 和 “is a” 作為兩個不同的單元。

實際應用

詞袋模型在許多領域都有廣泛的應用,包括:

  • 文本分類 (Text Classification): 將文本劃分到不同的類別,例如垃圾郵件過濾、情感分析等。
  • 資訊檢索 (Information Retrieval): 根據用戶的查詢,從文檔集合中找到相關的文檔。
  • 文本聚類 (Text Clustering): 將相似的文本聚集成一個簇,例如新聞主題分類、用戶興趣分析等。
  • 主題建模 (Topic Modeling): 從文檔集合中提取主題,例如使用 LDA (Latent Dirichlet Allocation) 模型。
  • 機器翻譯 (Machine Translation): 雖然詞袋模型在機器翻譯中的應用有限,但可以作為一種簡單的 baseline 方法。

常見誤區

  • 詞袋模型可以完美表示文本的語義: 詞袋模型忽略了詞語的順序和語法結構,因此無法捕捉到文本的深層語義信息。
  • 詞袋模型不需要預處理: 文本預處理對於詞袋模型的性能至關重要,例如去除停用詞可以提高模型的準確性。
  • TF-IDF 模型比詞頻模型更好: TF-IDF 模型在某些情況下可以提高性能,但在其他情況下可能不如詞頻模型。需要根據具體任務進行選擇。
  • 詞袋模型只適用於英文文本: 詞袋模型可以應用於任何語言的文本,但需要根據語言的特點進行相應的預處理。

相關術語

常見問題

延伸學習

深入了解 詞袋模型 的完整運作原理

延伸學習

想看 詞袋模型 的完整影片教學?前往 美第奇 AI 學院