Bag-of-words model

2023-05-16

Bag-of-words model (BoW model) 最早出现在NLP和IR领域. 该模型忽略掉文本的语法和语序, 用一组无序的单词(words)来表达一段文字或一个文档. 近年来, BoW模型被广泛应用于计算机视觉中. 与应用于文本的BoW类比, 图像的特征(feature)被当作单词(Word).

引子: 应用于文本的BoW model

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). 在文本检索和处理应用中, 可以通过该模型很方便的计算词频.

应用于计算机视觉的BoW model[2]

Fei-fei Li[3]在中提出了用BoW模型表达图像的方法. 他们认为, 图像可以类比为文档(document), 图像中的单词(words)可以定义为一个图像块(image patch)的特征向量. 那么图像的BoW模型即是 “图像中所有图像块的特征向量得到的直方图”. 建立BoW模型主要分为如下几个步骤:

1. 特征提取

假设有N张图像, 第i张图像图像可由n(i)个image patch组成, 也即可以由n(i)个特征向量表达. 则总共能得到sum(n(i))个特征向量(即单词).

特征向量可以根据特征问题自行设计, 常用特征有Color histogram, SIFT, LBP等.

2. 生成字典/码本(codebook)

对上一步得到的特征向量进行聚类(可以使用K-means等聚类方法), 得到K个聚类中心, 用聚类中心构建码本.

3. 根据码本生成直方图

对每张图片, 通过最近邻计算该图片的每个 “单词”应该属于codebook中的 “哪一类”单词, 从而得到该图片对应于该码本的BoW表示.

Reference

[1].   Bag-of-words model. (2012, November 30). In Wikipedia, The Free Encyclopedia. Retrieved 11:48, December 3, 2012, from http://en.wikipedia.org/w/index.php?title=Bag-of-words_model&oldid=525730564

[2].   Bag-of-words model in computer vision. (2012, October 11). In Wikipedia, The Free Encyclopedia. Retrieved 11:50, December 3, 2012, fromhttp://en.wikipedia.org/w/index.php?title=Bag-of-words_model_in_computer_vision&oldid=517192612

[3].   L. Fei-Fei and P. Perona (2005). "A Bayesian Hierarchical Model for Learning Natural Scene Categories". Proc. of IEEE Computer Vision and Pattern Recognition. pp. 524–531.

转载于:https://www.cnblogs.com/platero/archive/2012/12/03/2800251.html

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Bag-of-words model 的相关文章

  • Ruby on Rails - 创建用户时创建配置文件

    所以基本上我已经编写了自己的身份验证而不是使用 gem 因此我可以访问控制器 我的用户创建工作正常 但是当创建我的用户时 我还想在我的个人资料模型中为他们创建个人资料记录 我已经让它大部分工作了 我只是似乎无法将新用户的 ID 传递到新的
  • Django - 多态模型还是一个大模型?

    我目前正在 Django 中开发一个模型 其中一个模型可以具有多种不同的特征 具体取决于它是什么类型的对象 因此 假设我们有一个名为哺乳动物的模型 它可以是大象或海豚 分别具有自己的特征 tusk length 和 flipper leng
  • 设计模式 - Objective-C - MVC 模型视图控制器

    您好 我已经阅读了网上有关 MVC 的教程 并且已经阅读了此处的主题 我想我已经了解了 MVC 的概念 但我不确定它的实现 我尝试将其应用于一个简单的程序 一个带有标签和按钮的窗口 该按钮增加一个计数器 标签显示它的值 我尝试了两种不同的方
  • AngularJS 的面向对象方法

    Angular 似乎没有提供内置的解决方案来定义具有属性和方法的类实例 并且需要开发人员来构建它 您认为这样做的最佳做法是什么 如何将其与后端链接 我收集的一些技巧使用工厂服务和命名函数 资料来源 Tuto 1 https medium c
  • 如何在 Ruby on Rails 中实现 Active Record 继承?

    如何实现活动记录的继承 例如 我想要一个动物类 狗类和猫类 模型和数据库表映射如何 Rails 支持单表继承 来自AR docs http api rubyonrails org classes ActiveRecord Base html
  • 现有模型和数据库表的rails g脚手架

    我想创建一个结构rails g scaffold Article 但我已经创建了表Articles和型号Articles 有什么办法可以做到这一点吗 rails generate scaffold controller Article
  • 如何在 GEKKO 中实现 OR 约束

    我有一个优化问题 我必须找到给定电机的最低成本 并且存在一个限制 即电机要么运行 要么不运行 但如果它运行的话 它必须达到其功率范围的下限 我将包含我的代码 以展示我所尝试的内容 from gekko import GEKKO power
  • zend 模型架构

    假设我的数据库中有两个表 项目和用户 我创建了两个扩展 Zend Db Table Abstract 的模型 Model DbTable Users and Model DbTable Projects 现在 创建一个实例是一个好的模式吗
  • 关闭 Rails 中的“updated_at”列

    我有一个简单的 日志 模型 它记录调用控制器操作的事实 该 日志 记录的条目应该创建一次并且永远不会更改 另外 我的数据库中会有很多这样的记录 因此 不需要 updated at 列 不需要浪费硬盘上的内存 我如何告诉 Rails 仅保留
  • Rails 在模型中验证值在数组内

    我有一个表格 我可以在其中传递一个字段命名 type我想要检查它的值是否在允许类型的数组内以便任何人不得发布不允许的类型 数组看起来像 allowed types type1 type2 type3 type4 type5 type6 ty
  • Kohana 3:经过验证的模型示例

    我找到有关模型和验证的示例和教程 我说验证 或至少大部分 应该在模型中 我同意这一点 但我无法提供任何示例或教程来说明应该如何完成此操作 谁能帮我举一个简单的例子来说明如何做到这一点 模型中的规则在哪里 验证将在哪里进行 控制器如何知道验证
  • Rails:是否可以向 has_and_belongs_to_many 关联添加额外的属性?

    我的意思是 如果我有两个模型 通过 has and belongs to many 关联连接 我可以在每个关联的连接表中存储其他数据吗 也就是说 额外的数据不会成为任一表中单个记录的一部分 而是它们之间的连接 我的实际模型如下 class
  • 为树视图创建 Qt 模型

    我正在用 Qt 使用 C 编写一个应用程序 我需要在树视图中表示一个对象结构 实现此目的的方法之一是为此创建一个模型 但在阅读有关该主题的 Qt 文档后我仍然很困惑 我的 结构 非常简单 有一个Project持有的物体Task中的对象std
  • 如何在 Laravel 中基于迁移文件制作模型

    我已经创建了一个迁移 我想根据迁移文件制作一个模型 这可能吗 如果是这样 该怎么办 这是不可能的 到目前为止 您最多可以通过运行以下命令同时创建迁移和模型 php artisan make model ModelName m
  • MVC 模型在 OnExecuted 操作过滤器中为 null ...或者设置模型的更优雅的方式?

    我有一个 ActionFilter 它覆盖了 OnActionExecuted 方法 在 POST 操作中 filterContext Controller ViewData Model 始终为 null 我确实发现下面的文章似乎在说它不应
  • Laravel 中如何返回数组而不是集合?

    在 Laravel 中 可以仅选择一个字段并将其作为集合 数组返回 例如考虑模型Foo链接到表foos其中有字段id a b c 考虑以下示例数据 1 10 15 20 1 12 15 27 1 17 15 27 1 25 16 29 1
  • zend框架找不到模型类?

    Yall 我有一个简单的问题 这可能是一个简单的配置问题 但是 我定义了一个模型 当我尝试从控制器访问它时 失败 模型位于模型目录中 当我查看快速启动应用程序时 看来这应该可行 这是我的模型 我的控制器停止了 这是控制器代码
  • 如何在模型更改时停止ListView“跳跃”

    我需要做什么 我需要创建一个聊天窗口用一个ListView在 QML 中存储聊天消息 我设置listView positionViewAtEnd 以便跟踪最后的消息 我禁用positionViewAtEnd当我向上滚动时 我可以阅读过去的消
  • Magento:如何覆盖本地模块中的模型

    我试图在本地文件夹中覆盖本地文件夹中的模块 但我不知道是否可能 这就是我所做的 我创建了 local Mycompany Modulename Model Model php 我想覆盖 local Othercompany Modulena
  • 来自控制器的 Rails 验证

    有一个联系页面 可以输入姓名 电话 电子邮件和消息 然后发送到管理员的电子邮件 没有理由将消息存储在数据库中 问题 如何 在控制器中使用 Rails 验证 根本不使用模型 或者 在模型中使用验证 但没有任何数据库关系 UPD Model c

随机推荐

  • BPDU报文(RSTP)

    与STP 的BPDU报文格式相同 xff0c 就是在flags字段报文中间几位得到应用 主要原理 xff1a 利用flages位中的Proposal与Agreement来进行协商 xff0c 从而快速从 discarding 转成 forw
  • 怎么在一堆身份证中筛选出大于18岁的?

    最近一朋友找我帮个忙 xff0c 让我在N多身份证中找到18岁以上的人 我还想着用SQL查询来弄 xff0c 谁让是干IT的呢 xff0c 没想到被我一个朋友用excel瞬间解决 学习新的东西是多么的重要啊 其实就是利用了excel中的MI
  • 微信小程序我的界面

    前言 感谢 承蒙关照 微信小程序我的界面 界面效果 界面结构 小程序代码 我们先看me json代码 34 navigationBarTitleText 34 34 个人中心 34 me wxml代码 lt view class 61 34
  • __sync_fetch_and_add

    最近在公司离职的前辈写的代码哪里看到了 sync fetch and add这个东东 比较好奇 找些资料学习学习 http www lxway com 4091061956 htm http www cnblogs com FrankTan
  • 2.5年, 从0到阿里

    从来没有想到自己的求职之路会这么顺利 第一次投阿里就拿到了offer 以前一直都是做好被刷的准备的 3月31号晚上收到了来自阿里的正式offer 签下录取意向书 粗略算了一下 从2012年9月份正式入学进入计算机系到2015年3月签下阿里o
  • Cmake知识整理

    目录 CMake官方文档 CMake特点CMake命令find package二进制目标构建选项CMake文本内置命令CMake工程内置命令CMake toolchainsCMake变量 信息描述部分CMake变量 动作行为部分CMake变
  • closstol-ng制作交叉编译器

    crosstool ng制作交叉编译器 本文档基于凌云物网智科实验室文档制作 1 xff0c gt gt mkdir crosstool gt gt cd crosstool gt gt wget http crosstoolng org
  • How to resolve `unmet dependencies, Depends: nodejs but it is not going to be installed` npm

    为了安装Node Red xff0c 将ubuntu 18 04 的node js v8 升到 node js v10 Supported Node versions https nodered org docs faq node vers
  • Android开源项目及库搜集

    TimLiu Android 自己总结的Android开源项目及库 github排名 https github com trending github搜索 xff1a https github com search 目录 UI 卫星菜单节选
  • 深入Linux内核架构——简介与概述

    一 内核的任务 纯技术层面上 xff0c 内核是硬件与软件的之间的一个中间层 作用是将应用程序的请求传递给硬件 xff0c 并充当底层驱动程序 xff0c 对系统中的各种设备和组件进行寻址 从应用程序视角上看 xff0c 内核可以被认为是一
  • Flask快速入门(4) — CBV写法与解析

    目录 方式一 xff1a 继承View as view 源码分析方式二 xff1a 继承MethodView 方式一 xff1a 继承View code from flask import Flask views app 61 Flask
  • Flask快速入门(6) — 常见的请求与响应参数

    Flask快速入门 6 常见的请求与响应参数 code from flask import Flask from flask import request from flask import render template from fla
  • Flask快速入门(5) — 模板渲染

    Flask快速入门 5 模板渲染 视图函数 code from flask import Flask request render template Markup app 61 Flask name 64 app route 39 39 e
  • [转帖]windows10,business版和consumer版本区别

    windows10 business版和consumer版本区别 时间 2018 07 08 10 50 来源 原创 作者 5分享 点击 7113 次 windows10系统 xff08 1803 xff09 business editio
  • \0 的ASCII码值是多少

    0 的ASCII码值是多少 include lt iostream gt using namespace std void main char c 61 39 0 39 cout lt lt int c lt lt endl 输出是0 xf
  • python练习:编写一个程序,要求用户输入10个整数,然后输出其中最大的奇数,如果用户没有输入奇数,则输出一个消息进行说明。...

    python练习 xff1a 编写一个程序 xff0c 要求用户输入10个整数 xff0c 然后输出其中最大的奇数 xff0c 如果用户没有输入奇数 xff0c 则输出一个消息进行说明 重难点 xff1a 通过input函数输入的行消息为字
  • thenApply()和thenCompose()的区别

    thenApply 和thenCompose xff08 xff09 的区别 xff1a thenapply xff08 xff09 是返回的是非CompletableFuture类型 xff1a 它的功能相当于将CompletableFu
  • 超宽带(UWB)无线通信技术介绍

    http hi baidu com hieda blog item 1cb9c81122eaed7acb80c42e html 一 超宽带无线通信技术 UWB 简介 二 超宽带无线通信技术概述 作者 李唐 刘亚峰 三 超宽带 UWB 无线通
  • TTGO T-Watch-2020 编程系列(二) 开发环境的搭建Windows

    现阶段只介绍windows下的环境搭建 xff0c Linux和Mac的环境类似 这里只介绍Arduino开发 xff0c 还可以用其他的工具 visual studio code 43 PlatformIO或者micropython等 x
  • Bag-of-words model

    Bag of words model BoW model 最早出现在NLP和IR领域 该模型忽略掉文本的语法和语序 用一组无序的单词 words 来表达一段文字或一个文档 近年来 BoW模型被广泛应用于计算机视觉中 与应用于文本的BoW类比