美文网首页
BoW(Bag of words)模型详解

BoW(Bag of words)模型详解

作者: Wonshington | 来源:发表于2018-01-25 15:40 被阅读277次

最近在研究自然场景图像和结构图像的分类时,碰巧遇到词袋模型,就顺便对其进行了学习。下文算是本人学习后的一点总结吧。


Bag of words模型最初被用在文本分类中,将文档表示成特征矢量。它的基本思想是假定对于一个文本,忽略其词序和语法、句法,仅仅将其看做是一些词汇的集合,而文本中的每个词汇都是独立的。简单说就是将每篇文档都看成一个袋子(因为里面装的都是词汇,所以称为词袋,Bag of words即因此而来),然后根据袋子里装的词汇对其进行分类。如果文档中猪、马、牛、羊、山谷、土地、拖拉机这样的词汇多些,而银行、大厦、汽车、公园这样的词汇少些,我们就倾向于判断它是一篇描绘乡村的文档,而不是描述城镇的。

BoW使用一组无序的单词(words)来表达一段文字或一个文档.。近年来,BoW模型被广泛应用于计算机视觉中。

基于文本的BoW模型的一个简单例子,首先给出两个简单的文本文档如下:

 文档1:       John likes to watch movies. Mary likes too.

 文档2:       John also likes to watch football games.

基于上述两个文档中出现的单词,构建如下一个词典 (dictionary):

Vocabulary=  {"John": 1, "likes": 2,"to": 3, "watch": 4, "movies": 5,"also": 6, "football": 7, "games": 8,"Mary": 9, "too": 10}

上面的词典中包含10个单词, 每个单词有唯一的索引, 那么每个文本我们可以使用一个10维的向量来表示。(用整数数字0~n(n为正整数)表示某个单词在文档中出现的次数):

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

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

该向量与原来文本中单词出现的顺序没有关系,而是词典中每个单词在文本中出现的频率。

以上向量也可以用单词的直方图表示:词表就相当于直方图的基,新来要表述的文档向这个基上映射。

图1  词袋模型直方图表示实例

并不是所有的单词都用来构建词表:

(1) 相似的词:相似的单词用一个单词表示。例如“walk,walking,walks” 都用 “walk” 表示。(聚类问题)

(2) 禁用的词:像 a,an,the等冠词在各个文档中出现的频率都很高,不容易被区分,这类单词在建立词表的时候不被使用。(TF-IDF)


 现在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维的向量来表示这幅图像。对所有图像计算完成之后,就可以进行分类聚类训练预测之类的了。


上述内容仅个人的点滴粗见,如有不当之处,请同行批评指正。

相关文章

  • BoW(Bag of words)模型详解

    最近在研究自然场景图像和结构图像的分类时,碰巧遇到词袋模型,就顺便对其进行了学习。下文算是本人学习后的一点总结吧。...

  • 中文NLP笔记:8. 基于LSTM的文本分类

    序列模型 语言模型 N-gram 前面的词袋模型(Bag-of-Words,BoW),没有考虑每个词的顺序 有...

  • 词袋模型

    词袋模型(Bag of words,简称 BoW ) 词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅只考...

  • Bag-of-words模型入门

    总括 Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索中,BOW模型假定对于一个文档,忽略...

  • BOW模型

    1.BOW: Bag of words 词袋模型。2.Bg: 最初被用在文本分类中,将文档表示成特征矢量。它...

  • 图像检索----BOW(词袋)算法

    1. BOW算法简介 Bag-of-Words模型源于文本分类技术。在信息检索中,它假定对于一个文本,忽略其词序、...

  • 文本向量化表示方法一(词袋模型)

    词袋(Bag-of-words)模型简介 Bag-of-words模型是信息检索领域常用的文档表示方法。在信息检索...

  • 视觉词典在SLAM中应用

    前言 视觉词典技术是采用视觉Bag-of-word模型的技术。BOW模型最先是信息检索领域常用的文档表示方法,它假...

  • [笔记] Introduction to Shallow Lan

    Bag of Words 解释: 搜素引擎用词袋模型这种shallow form理解语言。词袋模型的特征有: 1)...

  • Quora句子相似度匹配

    预备知识 NLP基础: 词袋模型(Bag-of-words model): TF-IDF算法(term frequ...

网友评论

      本文标题:BoW(Bag of words)模型详解

      本文链接:https://www.haomeiwen.com/subject/xqypaxtx.html