Bag-of-words 詞袋模型基本原理

Bag-of-words詞袋模型最初被用在信息檢索領域,對於一篇文檔來說,假定不考慮文檔內的詞的順序關係和語法,只考慮該文檔是否出現過這個單詞。假設有5類主題,我們的任務是來了一篇文檔,判斷它屬於哪個主題。在訓練集中,我們有若干篇文檔,它們的主題類型是已知的。我們從中選出一些文檔,每篇文檔內有一些詞,我們利用這些詞來構建詞袋。我們的詞袋可以是這種形式:{‘watch’,'sports','phone','like','roman',……},然後每篇文檔都可以轉化爲以各個單詞作爲橫座標,以單詞出現的次數爲縱座標的直方圖,如下圖所示,之後再進行歸一化,將每個詞出現的頻數作爲文檔的特徵。

近幾年,在圖像領域,使用Bag-of-words方法也是取得了較好的結果。如果說文檔對應一幅圖像的話,那麼文檔內的詞就是一個圖像塊的特徵向量。一篇文檔有若干個詞構成,同樣的,一幅圖像由若干個圖像塊構成,而特徵向量是圖像塊的一種表達方式。我們求得N幅圖像中的若干個圖像塊的特徵向量,然後用k-means算法把它們聚成k類,這樣我們的詞袋裏就有k個詞,然後來了一幅圖像,看它包含哪些詞,包含單詞A,就把單詞A的頻數加1。最後歸一化,得到這幅圖像的BoW表示,假如k=4,每幅圖像有8個小塊(patch),那麼結果可能是這樣的:[2,0,4,2],歸一化之後爲[0.25,0,0.5,0.25]。

同樣,在語音識別領域,也有Bag-of-words方法也大施了拳腳。假設一段語音信號有2秒長,我們取每幀長40ms,幀移10ms,就可以得到一小段一小段的語音信號,然後提取每一小段上的音頻特徵,假設這裏使用12維MFCC,那麼有多少個小段語音信號,就有多少個MFCC特徵向量。我們的目標是來一段語音信號,判斷它的情感類別。我們的做法是:取一定數量的MFCC特徵向量,將它們聚成k個類,那麼這裏的詞袋裏的詞就是這k個類別。對於一段語音信號,我們對其進行分段之後,將各小段分配到這k個類別上,那麼,每個類別上就對應了這一段語音信號裏屬於該類的段的個數。最後歸一化,得到其特徵表示。

 

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