词袋模型(Bag-of-words model)
词袋模型
- 词袋模型
- 简介
- 示例
- 计算机视觉中的词袋模型
词袋模型
简介
词袋模型(Bag-of-words model)是用于自然语言处理和信息检索中的一种简单的文档表示方法。通过这一模型,一篇文档可以通过统计所有单词的数目来表示,这种方法不考虑语法和单词出现的先后顺序。这一模型在文档分类里广为应用,通过统计每个单词的出现次数(频率)作为分类器的特征。
示例
如下两篇简单的文本文档:
Jane wants to go to Shenzhen.
Bob wants to go to Shanghai.
基于这两篇文档我们可以构建一个字典:
{‘Jane’:1, ‘wants’:2, ‘to’:4, ‘go’:2, ‘Shenzhen’:1, ‘Bob’:1, ‘Shanghai’:1}
我们可将两篇文档表示为如下的向量:
例句1:[1,1,2,1,1,0,0]
例句2:[0,1,2,1,0,1,1]
词袋模型实际就是把文档表示成向量,其中向量的维数就是字典所含词的个数,在上例中,向量中的第i个元素就是统计该文档中对应字典中的第i个单词出现的个数,因此可认为词袋模型就是统计词频直方图的简单文档表示方法。
计算机视觉中的词袋模型
对于一副图像,我们可以看作文档——若干个“词汇”的集合,同样的,视觉词汇之间没有顺序。将文档中的单词类比到图像,图像中的单词是图像特征。
大概过程:首先提取图像集特征的集合,然后通过聚类的方法聚出若干类,将这些类作为dictionary,即相当于words,最后每个图像统计字典中words出现的频数作为输出向量,我们便可将一幅图表示成基于图像特征的统计直方图,用于后续的分类、检索等操作。
具体步骤如下:
利用SIFT算法从图像集的所有图像中提取SIFT特征形成视觉词汇向量。假如有自行车、人脸、吉他,我们提取词汇如下:
利用聚类方法(如k-means)对上一步提取的SIFT特征即视觉词汇进行聚类,得到k个聚类中心,利用这些聚类中心构建词典(码本)。假设对上面自行车、人脸、吉他得到的视觉词汇进行k-means聚类(如k=4),形成码本的过程如下:
在每一幅图片中统计码本的每个单词对应SIFT特征的数量,这样一幅图就可用k维向量或者说是统计直方图的形式表示出来。对于我们的例子,我们将图像用统计直方图的形式可表示如下:
综上,我们把图像用词袋模型表示成了一个向量,这样我们便可以利用其代表图像进行检索、分类等操作。
我们可以通过下图更加整体的理解用词袋模型表示一幅图的方法:
图1 基于矢量量化关键点特征的视词图像表示
词袋模型(Bag-of-words model)相关推荐
- R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、基于自定义函数构建xgboost文本分类模型
R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.基于自定义函数构建xgboost文本分类模型 目录
- R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、xgboost模型预测推理并使用混淆矩阵评估模型、可视化模型预测的概率分布
R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.xgboost模型预测推理并使用混淆矩阵评估模型.可视化模型预测的概率分布 目录
- 词袋模型(bag of words)构建实战
词袋模型(bag of words)构建实战 目录 词袋模型(bag of words)构建实战 语料数据预处理 词袋模型(BOW)构建
- BoW词袋模型Bag of Words cpp实现(stable version 0.01)
致谢:基础框架来源BoW,开发版本在此基础上进行,已在Ubuntu.OS X上测试通过,Windows需要支持c++11的编译器(VS2012及其以上). 使用 代码下载地址:bag-of-words ...
- 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了
摘自:https://mp.weixin.qq.com/s/OZnnuA31tEaVt0vnDOy5hQ 作为SLAM中最常用的闭环检测方法,视觉词袋模型技术详解来了 原创 小翼 飞思实验室 今天 基 ...
- 词袋模型 matlab,【火炉炼AI】机器学习051-视觉词袋模型+极端随机森林建立图像分类器...
[火炉炼AI]机器学习051-视觉词袋模型+极端随机森林建立图像分类器 (本文所使用的Python库和版本号: Python 3.6, Numpy 1.14, scikit-learn 0.19, m ...
- python自然语言处理之词袋模型
词袋模型 文本分词处理后, 若需要分析文本语义, 需要把分词得到的结果构建样本模型, 词袋模型就是由每一个句子为一个样本, 单词在句子中出现的次数为特征值构建的数学模型. The brown do ...
- java构建词性词袋_词袋模型
词袋模型(英语:Bag-of-words model)是个在自然语言处理和信息检索(IR)下被简化的表达模型.此模型下,一段文本(比如一个句子或是一个文档)可以用一个装着这些词的袋子来表示,这种表示方 ...
- java词袋模型_自然语言处理——词袋模型与向量化
词袋模型 词袋模型(Bag of Words,简称BoW),所谓的词袋模型是一种用机器学习算法对文本进行建模时表示文本数据的方法. 词袋模型假设我们不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词 ...
- 【NLP】词袋模型(bag of words model)和词嵌入模型(word embedding model)
本文作为入门级教程,介绍了词袋模型(bag of words model)和词向量模型(word embedding model)的基本概念. 目录 1 词袋模型和编码方法 1.1 文本向量化 1.2 ...
最新文章
- jseclipse 是eclipse插件,让你编写js代码感觉更爽
- ofstream写文件
- .NET 面试题(2)
- Android 中文 API (16) —— AnalogClock
- Djang drf:APIView源码分析
- java 监听器能监听宕机_java内存泄漏与内存溢出
- ROS的学习(十九)用rosserial创建一个subscriber
- 用友数据库错误“未能读取并闩锁页(1:3355)(用闩锁类型SH)”修复
- VB.NET数据库编程基础教程
- IT人才薪水“虚高” ,寡头垄断下小企业工程师告急[转]
- oneapi安装CMAQ
- adb隐藏Android手机状态栏和导航栏
- FrameMaker 10启动时报错(Licensing for this product has expired)的解决办法
- 暑假教师计算机培训总结,关于暑期教师信息技术培训总结范文
- 荧光染料Alexa Fluor 647 carboxylic acid/COOH/羧基羧酸
- Unity 场景切换间的内存清理
- 前端学习—JavaScript
- IntelliJ IDEA 为JAVA 项目添加lib
- 2021华为鸿蒙,2021华为鸿蒙系统什么时候上线 2021华为鸿蒙系统上线时间
- php编写函数6,【函数分享】每日PHP函数分享(2021-2-6)