你只想看一封訊息裡有哪些字,先不管順序,這種做法像不像很直覺? 你可以把詞袋模型想成只數詞、不看順序的文字表示法。 它簡單好用,但會丟掉詞序與上下文資訊。
你可以把它想成一個把抽象概念拉回日常判斷的提示,先知道它解決什麼問題,再看技術細節。
容易混淆
詞袋模型 vs N 元語法? 詞袋模型:只看詞出現次數 N 元語法:會把連續詞組也納入 最關鍵的區別:詞袋忽略順序,N 元語法保留部分順序資訊
詞袋模型 vs 詞嵌入? 詞袋模型:把文字變成稀疏向量 詞嵌入:把詞變成密集向量 最關鍵的區別:前者易懂,後者更能保留語意相似性
詞袋模型 vs 上下文模型? 詞袋模型:常搭配計數或 TF-IDF 上下文模型:會看前後句來理解詞意 最關鍵的區別:詞袋只看字面,現代模型會看上下文
記住這句就好
只數有哪些詞,不看它們怎麼排
實際案例
垃圾郵件辨識 郵件裡出現很多促銷、免費、立刻等詞,詞袋模型能先做快速分類
情緒分析 用詞袋統計負面詞與正面詞的數量,先做一版簡單的情感判斷
算法與應用
重點 你要看什麼 為什麼重要 表示 每個詞一個維度 適合快速做文字分類 優點 簡單、可解釋 新手很好上手 缺點 忽略語序與語意 碰到複雜語句就弱
情境判斷
Q1:如果兩句話詞彙幾乎一樣,但語氣完全不同,詞袋模型能分出來嗎? → 通常不行,因為它看不到順序與語氣差異
Q2:如果你只想快速做一版文字分類原型,詞袋模型有沒有價值? → 有,因為它簡單、好實作,常能先做出可用基線
常見問題
詞袋模型是不是很過時?
不一定。雖然現代模型更強,但詞袋在基線、解釋與小資料場景仍有用。
詞袋和 TF-IDF 差在哪?
TF-IDF 會把太常見的詞降權,讓比較有辨識力的字更突出。
詞袋可以處理中文嗎?
可以,但通常要先做斷詞,否則詞彙切分會很亂。