詞袋模型基本原理(Bag of words)

最初的Bag of words,也叫做“詞袋”,在信息檢索中,Bag of words model假定對於一個文本,忽略其詞序和語法,句法,將其僅僅看做是一個詞集合,或者說是詞的一個組合,文本中每個詞的出現都是獨立的,不依賴於其他詞是否出現,或者說當這篇文章的作者在任意一個位置選擇一個詞彙都不受前面句子的影響而獨立選擇的。

       現在Computer Vision中的Bag of words來表示圖像的特徵描述也是很流行的。大體思想是這樣的,假設有5類圖像,每一類中有10幅圖像,這樣首先對每一幅圖像劃分成patch(可以是剛性分割也可以是像SIFT基於關鍵點檢測的),這樣,每一個圖像就由很多個patch表示,每一個patch用一個特徵向量來表示,咱就假設用Sift表示的,一幅圖像可能會有成百上千個patch,每一個patch特徵向量的維數128。
      接下來就要進行構建Bag of words模型了,假設Dictionary詞典的Size爲100,即有100個詞。那麼咱們可以用K-means算法對所有的patch進行聚類,k=100,我們知道,等k-means收斂時,我們也得到了每一個cluster最後的質心,那麼這100個質心(維數128)就是詞典裏德100 個詞了,詞典構建完畢。
      詞典構建完了怎麼用呢?是這樣的,先初始化一個100個bin的初始值爲0的直方圖h。每一幅圖像不是有很多patch麼?我們就再次計算這些patch和和每一個質心的距離,看看每一個patch離哪一個質心最近,那麼直方圖h中相對應的bin就加1,然後計算完這幅圖像所有的 patches之後,就得到了一個bin=100的直方圖,然後進行歸一化,用這個100維的向量來表示這幅圖像。對所有圖像計算完成之後,就可以進行分類聚類訓練預測之類的了。



轉自:http://blog.csdn.net/lcj_cjfykx/article/details/8948888

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章