Bag of words模型

Posted tuji-sjp

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Bag of words模型相关的知识,希望对你有一定的参考价值。

因为在使用SIFT特征作图像分类时,一张图像通常有很多keypoints,一个keypoints有一个128维的特征向量,而若直接将这些特征向量只做简单的串联就输入分类器中,是不对的。我们需要一个能够表示整体图像的特征向量,所以要用到该模型。今天写一下学习的笔记。

简介:

Bag of words模型最初被用在文本分类中,将文档表示成特征矢量。

对于一个文档,忽略单词之间的词序、语法和句法等,仅将其看作是一堆单词(words)的集合。

多个文档的单词集合可组成一个袋子(bag)。袋子也称为词典、词汇表(Dictionary / vocabulary)。

袋中每个单词相互独立,将其聚类,类内相似度高,类间相似度低。合并后袋中只有不重复的单词(类)。

统计袋中每个单词在每个文档中出现的次数。假设有K个单词,则可对每个文档可画出对应的K维直方图。

若是分类问题,则可根据K维直方图中的单词词频,判断每个文档属于哪一类别。

经典例子:

文档一:Bob likes to play basketball, Jim likes too.

文档二:Bob also likes to play football games.

基于这两个文档构建的词典:

Dictionary = {1:"Bob", 2:"like", 3:"to", 4:"play", 5:"basketball", 6:"also", 7:"football", 8:"games", 9:"Jim", 10:"too"}

利用词典的索引号,以及每个单词在每个文档中出现的次数,我们可以得到表示两个文档的10维特征向量:

文档一:[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]

文档二:[1, 1, 1, 1 ,0, 1, 1, 1, 0, 0]

向量中并没有表现出单词在文档中的词序。

应用于CV:

Bow模型也可用于计算机视觉的图像分类(image classification)中,每张图像的特征可视为视觉单词。A bag of visual words则为统计视觉单词出现的次数,用一个K维特征向量表示每张图像。

如何利用Bag of words模型将一幅图像表示为一个特征向量:

1、利用SIFT算法从属于不同类别的图像中提取出N个局部不变的特征点(keypoints)向量,作为视觉词汇;(每张图像的N,个数不同)

2、将所有特征点向量集中到一块,利用K-Means算法(基于样本间相似性度量的间接聚类方法)合并词义相近的视觉词汇,构造一个包含K个视觉词汇的词汇表(vocabulary);

3、统计词汇表中每个单词在每张图像中出现的次数,从而将每张图像表示为一个K维数值向量。即所求特征向量,最后用于分类器的输入。

以上是关于Bag of words模型的主要内容,如果未能解决你的问题,请参考以下文章

Bag of words模型

词袋模型(BOW,bag of words)和词向量模型(Word Embedding)概念介绍

2-bag of words 视觉词袋模型-2

Bag of features:图像检索

Bag of features:图像检索

1-bag of words 视觉词袋模型-1