Bag-of-words模型入門


轉(zhuǎn)載:https://zhuanlan.zhihu.com/p/29933242
更詳細(xì)的介紹:https://yq.aliyun.com/articles/83866

總括

Bag-of-words模型是信息檢索領(lǐng)域常用的文檔表示方法。
在信息檢索中,BOW模型假定對于一個文檔,忽略它的單詞順序和語法、句法等要素,將其僅僅看作是若干個詞匯的集合,文檔中每個單詞的出現(xiàn)都是獨立的,不依賴于其它單詞是否出現(xiàn)。(是不關(guān)順序的)

也就是說,文檔中任意一個位置出現(xiàn)的任何單詞,都不受該文檔語意影響而獨立選擇的。那么到底是什么意思呢?那么給出具體的例子說明:

例子

Wikipedia[1]上給出了如下例子:

John likes to watch movies. Mary likes too.

John also likes to watch football games.
根據(jù)上述兩句話中出現(xiàn)的單詞, 我們能構(gòu)建出一個字典 (dictionary):

{"John": 1, "likes": 2, "to": 3, "watch": 4, "movies": 5, "also": 6, "football": 7, "games": 8, "Mary": 9, "too": 10}
該字典中包含10個單詞, 每個單詞有唯一索引, 注意它們的順序和出現(xiàn)在句子中的順序沒有關(guān)聯(lián). 根據(jù)這個字典, 我們能將上述兩句話重新表達(dá)為下述兩個向量:

[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
這兩個向量共包含10個元素, 其中第i個元素表示字典中第i個單詞在句子中出現(xiàn)的次數(shù).因此BoW模型可認(rèn)為是一種統(tǒng)計直方圖 (histogram).在文本檢索和處理應(yīng)用中, 可以通過該模型很方便的計算詞頻
但是從上面我們也能夠看出,在構(gòu)造文檔向量的過程中可以看到,我們并沒有表達(dá)單詞在原來句子中出現(xiàn)的次序(這也是bag of words的一個缺點,但是聽師兄說,很多情況簡單的用bow特征產(chǎn)生的結(jié)果就比較好了)

適用場景

現(xiàn)在想象在一個巨大的文檔集合D,里面一共有M個文檔,而文檔里面的所有單詞提取出來后,一起構(gòu)成一個包含N個單詞的詞典,利用Bag-of-words模型,每個文檔都可以被表示成為一個N維向量。

變?yōu)镹維向量之后,很多問題就變得非常好解了,計算機非常擅長于處理數(shù)值向量,我們可以通過余弦來求兩個文檔之間的相似度,也可以將這個向量作為特征向量送入分類器進(jìn)行主題分類等一系列功能中去。

總之通過有效的辦法轉(zhuǎn)換為向量之后,后面的一切都變得明朗起來了,因為至少得想辦法讓計算機理解吧!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容