进行学习的时候发现对Bag-Of-Word的概念还有点模糊,查找了一些资料转载在这里
Bag of Words即词袋模型,是对样本数据的一种表示方法,主要应用在 NLP(自然语言处理)和 IR(信息检索)领域,近年也开始在 CV(计算机视觉)发挥作用。
模型假设
该模型在表示样本数据时,可以假设假设:一个文本或文档可以看作一袋子的单词,而不考虑其语法和词序关系,每个词都是独立的。
文本的特征化
对于文本,通常使用的是Bag of Words词袋模型表示特征,即将文本映射成为一个词的向量,向量的长度是词典的大小,每一位表示词典中的一个词,向量中的每一位上的数值表示该词在文本中出现的次数。对于一个文本,其词向量通常是稀疏的。词袋模型如下图所示:
示例
有这样两个简单的文本文档:
John likes to watch movies. Mary likes too.
John also likes to watch football games.
对上述两个文档构造词典:
{
“John”: 1,
“likes”: 2,
“to”: 3,
“watch”: 4,
“movies”: 5,
“also”: 6,
“football”: 7,
“games”: 8,
“Mary”: 9,
“too”: 10}
词典中共有10个词项,每个词项后面是序号。那么,我们可以用一个向量表示一个文本文档:
[1, 2, 1, 1, 1, 0, 0, 0, 1, 1]
[1, 1, 1, 1, 0, 1, 1, 1, 0, 0]
上面的这个矩阵图形式的表示,就是词袋模型了,其中每个分量表示该词项在该文档中的出现次数。可以看到,词序的信息已经丢失,每个文档只看做一些单独词项的集合。
顺便说一下,矩阵图中的每一项,不仅可以用词典频数表示,一个更常用的方法是用tf-idf表示词项的权重。
本人注:词袋模型由于复杂程度不够,同时存在数据稀疏的问题,在NLP信息抽取领域的使用不是特别广泛。
原文地址:www.dataguru.cn/article-9446-1.html
原文中还涉及一部分与CV领域相关的Bag of Visual Words,有兴趣的同学可以在原文中阅读