知行编程网知行编程网  2022-02-24 06:00 知行编程网 隐藏边栏 |   抢沙发  31 
文章评分 0 次,平均分 0.0

三言两语入门Bag-of-words模型

Bag-of-words模型是信息检索领域常用的文档表示方法

在信息检索中,BOW模型假定对于一个文档,忽略它的单词顺序和语法、句法等要素,将其仅仅看作是若干个词汇的集合,文档中每个单词的出现都是独立的,不依赖于其它单词是否出现。(是顺序无关的)

也就是说,文档中任意一个位置出现的任何单词,都不受该文档语意影响而独立选择的。到底是什么意思呢?我们先给出具体的例子说明一下。

先举个栗子

Wikipedia[1]上给出了如下例子:

-John likes to watch movies. Mary likes too.

-John also likes to watch football games.

根据上述两句话中出现的单词, 我们能构建出一个字典 (dictionary)

{"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]

这两个向量共包含10个元素, 其中第i个元素表示字典中第i个单词在句子中出现的次数. 因此BoW模型可认为是一种统计直方图 (histogram). 在文本检索和处理应用中, 可以通过该模型很方便的计算词频.

但是从上面我们也能够看出,在构造文档向量的过程中可以看到,我们并没有表达单词在原来句子中出现的次序(这也是bag of words的一个缺点,但是听师兄说,很多情况简单的用bow特征产生的结果就比较好了)

适用场景

现在想象在一个巨大的文档集合D,里面一共有M个文档,而文档里面的所有单词提取出来后,一起构成一个包含N个单词的词典,利用Bag-of-words模型,每个文档都可以被表示成为一个N维向量。

变为N维向量之后,很多问题就变得非常好解了,计算机非常擅长于处理数值向量,我们可以通过余弦来求两个文档之间的相似度,也可以将这个向量作为特征向量送入分类器进行主题分类等一系列功能中去。

总之通过有效的办法转换为向量之后,后面的一切都变得明朗起来了,因为至少得想办法让计算机理解吧!

希望对大家的理解有帮助~欢迎大家指错交流!

参考

Bag-of-words模型入门介绍文章-博客-云栖社区-阿里云

 

为您推荐

【机器学习入门】 Learning Map 导览图

目标检测 vs 目标跟踪

带你理解朴素贝叶斯分类算法

一文理解朴素贝叶斯分类的拉普拉斯平滑

 

本篇文章来源于: 深度学习这件小事

本文为原创文章,版权归所有,欢迎分享本文,转载请保留出处!

知行编程网
知行编程网 关注:1    粉丝:1
这个人很懒,什么都没写

发表评论

表情 格式 链接 私密 签到
扫一扫二维码分享