iT邦幫忙

2025 iThome 鐵人賽

DAY 9
0

之前講到向量空間模型(Vector Space Model)跟 Cosine Similarity 時,都有談到把文本轉換成向量,
電腦才能夠處理人類的語言。

但是到底是怎麼把「文字、文本」轉換成「向量」呢?

今天就要來介紹其中一種常用的方法: Bag-of-Words Model(中文會叫做詞袋模型)


Bag-of-Words Model是什麼?

  • BoW Model 是自然語言處理(NLP)當中的一項技術
  • 它會把句子、段落或是整個文件變成一個字詞的集合,這個集合就像一個袋子,裡面裝的是文本當中出現的所有字,模型會去統計每個文字出現的次數
  • BoW 不會去管字的順序或是文法,只會去看字出現的頻率,像是哪些出現比較多次
  • 這種模型適用於文本分類、情感分析上面,很常會跟 Naive Bayes 去一起應用(Naive Bayes 之後會再介紹~~)

例子

假設今天有兩個句子:

I like them just as much as they like me.
I like the cheese, they do too.

利用這兩句話建立一個詞表:

["I", "like", "them", "just", "as", "much", "they", "me", "the", "cheese", "do", "too"]

接著把句子轉成向量:

I like them just as much as they like me. -> [1, 2, 1, 1, 2, 1, 1, 1, 0, 0, 0, 0]
I like the cheese, they do too. -> [1, 1, 0, 0, 0, 0, 1, 0, 1, 1, 1, 1]

🌟 其實把文字向量化的過程,就是把從文字當中抽取特徵


優點

  1. 概念非常簡單,操作起來也容易
  2. 適用在小型任務上面(一些文本分類任務)

缺點

  1. 語意:這個模型在處理文字時,不會去管語意,跟下面這一點相關
  2. 文字的關聯性:這個模型不會去管字與字之間的關聯,像是 apple 可能跟 juice 常常放在一起,但是 BoW不會去標記這項特徵,也就是他不會把文本的情境(context)納入考量
  3. 文字的稀疏性:在比較大的文本裡面,詞彙量很大,很多向量裡面的值可能會是0。向量的長度通常是所有詞彙的數量。但是一篇文章或是一句話實際上只會用到其中很少一部分的詞,其他大多數的詞並不會出現,因此它們在向量裡的值就是 0。這樣一來,向量裡只有少數幾個位置是非零值,這種情況就是稀疏(Sparse)
    • 這個情況有幾個問題,包括會佔記憶體、處理效率低、模型學習起來會比較困難,因為可能導致過度擬和(overfitting)(這個概念其實就像是模型會記住答案,沒有真的學習到,導致無法應用在新的資料上)

Bag-of-Words 算是 NLP 裡最基礎直觀的方法。它雖然簡單,但已經足夠讓我們處理和理解一些文字!


上一篇
Day 8 - Cosine Similarity:你我之間的夾角
系列文
AI、機器學習以及深度學習的語言學應用9
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言