机器学习之词袋模型

目录

1 词袋模型基本概念

2 词袋模型的表示方法

2.1 三大方法

1 独热表示法(One-Hot)

2 词频表示法(Term Frequency, TF)

3 词频-逆文档频率表示法(TF-IDF)

2.2 例子


1 词袋模型基本概念

词袋模型Bow,Bag of Words不考虑文本中词与词之间的上下文关系,仅仅只考虑所有词的权重(与词在文本中出现的频率有关),类似于将所有词语装进一个袋子里,其中每个词的出现都是独立的,不依赖于其他词是否出现。这种模型的主要目的是将文本转换为一个向量,其中向量的每个维度代表一个词,而该维度的值则表示该词在文本中出现的频率。

词袋模型的主要特征是:每个词的出现都是独立的,相当于每次随机试验为随机从词表中抽取一个单词,进行n次独立重复试验,因此适合使用多项式朴素贝叶斯

2 词袋模型的表示方法

2.1 三大方法

1 独热表示法(One-Hot)

One-Hot表示法的数值计算规则为:词语序列中出现的词语的数值为1,词语序列中未出现的词语的数值为0。其数学表达式为:

2 词频表示法(Term Frequency, TF)

TF表示法的数值计算规则为:词语序列中出现的词语的数值为该词语在所在文本中的频次,词语序列中未出现的词语的数值为0。其数学表达式为:

其中,t_{j}表示词语jcount(t_{j})表示词语j在所在文本出现的次数。

3 词频-逆文档频率表示法(TF-IDF)

TF-IDF的核心思想是:

  • 如果某个词语在文本中频繁出现,则认为该词语很重要
  • 如果某个词语在文本中频繁出现,但该词语在每篇文档都出现,则认为该词语不是特别重要,比如“的”字每篇文章都出现,但是重要性不大

TF-IDF表示法的数值计算规则为:词语序列中出现的词语的数值为词语在所在文本中的频次乘以词语的逆文档频率,词语序列中未出现的词语的数值为0。其数学表达式为:

其中,t_{j}表示词语jcount(t_{j})表示词语j在所在文本出现的次数。

idf(t_{j})的计算公式为:

当分母越大,idf(t_{j})越小,则说明其越不重要,为了防止分母为0,对idf(t_{j})进行改进,如下:

2.2 例子

已知有下边的几篇英文文本,请分别用词袋模型的三种方法来向量化表示每篇文本。

文档ID文档词列表
1Chinese Beijing Chinese
2Chinese Chinese Shanghai
3Chinese Macao
4Tokyo Japan Chinese

第一步:构建词袋

第二步:对于每一篇文本,计算词袋中各词语的数值,得到该篇文本的向量

One-Hot表示法

根据上述公式可得:

BeijingChineseJapanMacaoShanghaiTokyo
Chinese Beijing Chinese110000
Chinese Chinese Shanghai010010
Chinese Macao010100
Tokyo Japan Chinese011001

词频表示法

根据上述公式可得:

BeijingChineseJapanMacaoShanghaiTokyo
Chinese Beijing Chinese120000
Chinese Chinese Shanghai020010
Chinese Macao010100
Tokyo Japan Chinese011001

TF-IDF表示法

使用改进后的idf(t_{j}),如下:

计算过程如下:

idf(Beijing)=1+ln\frac{4+1}{1+1}\approx 1.916 ~~idf(Chinese)=1+ln\frac{4+1}{4+1}= 1

idf(Japan)=1+ln\frac{4+1}{1+1}\approx 1.916 ~~idf(Macao)=1+ln\frac{4+1}{1+1}\approx 1.916

idf(Shanghai)=1+ln\frac{4+1}{1+1}\approx 1.916 ~~idf(Tokyo)=1+ln\frac{4+1}{1+1}\approx 1.916

因此有:

BeijingChineseJapanMacaoShanghaiTokyo
Chinese Beijing Chinese1*1.916=1.9162*1=20000
Chinese Chinese Shanghai02*1=2001*1.916=1.9160
Chinese Macao01*1=101*1.916=1.91600
Tokyo Japan Chinese01*1=11*1.916=1.916001*1.916=1.916

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/648639.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

SpringValidation

一、概述: ​ JSR 303中提出了Bean Validation,表示JavaBean的校验,Hibernate Validation是其具体实现,并对其进行了一些扩展,添加了一些实用的自定义校验注解。 ​ Spring中集成了这些内容,你可以在Spri…

【深度学习基础】NumPy数组库的使用

目录 写在开头 一、数组的类型与维度 数组的类型 数组的维度 二、数组的创建 递增数组 同值数组 随机数数组 三、数组的索引 访问/修改单个元素 花式索引 数组的切片 四、数组的变形 数组的转置 数组的翻转 数组的形状改变 数组的拼接 五、数组的运算 数…

Simulate Ring Resonator in INTERCONNECT

Simulate Ring Resonator in INTERCONNECT 正文正文 首先,我们采用 Interconnect 模块的工作流程 一文中介绍的方法添加一个直波导器件。接着,我们需要对它的名称进行更改,此时我们看左侧 Property View - Root Element 中的 General 属性,我们发现 name 属性是灰色的,无…

旅游推荐管理系统

代码位置:旅游管理系统: 根据若依模版的一个旅游管理系统 - Gitee.com 分支dev 项目介绍 项目目的 随着社会的高速发展,人们生活水平的不断提高,以及工作节奏的加快,旅游逐渐成为一个热门的话题,因为其形式的多样,涉…

Android version与 SDK API level对应表

1.Android 版本: 截至目前主要是从android1 到 android15 Android版本对应的SDK API版本就比较多了。下面是一份来自官网的对照表,在此把它牢记下来: 2.如果需要查看具体信息,请访问API Levels | Android versions, SDK/API levels, version codes, co…

一文掌握Go性能分析、采样分析、链路追踪分析、生成火焰图、打点对比分析、压力测试分析、生成网页报告web查看

一文掌握Go性能分析、采样分析、链路追踪分析、生成火焰图、打点对比分析、压力测试分析、生成网页报告web查看。 Go性能分析 1. 准备工作 1.1 下载go-wrk 这个是用来进行http接口压测的, 官网地址:https://github.com/tsliwowicz/go-wrk 七牛云下载 使用 go-wr…

springboot vue 开源 会员收银系统 (5) 分类及商品模块开发

前言 完整版演示 前面我们对会员系统 门店模块开发的开发 完成了门店的基础管理 并与会员相关联 下面我们将开发门店的分类及商品管理 我们分析以下几个重点 分类可以随时禁用不用单独下架某个商品便于管理商品添加应该有图片上传商品设置会员价和散客价便于营销商品应该参与…

【工具分享】Annabelle勒索病毒解密工具

前言 Annabelle勒索病毒灵感来自恐怖电影系列 Annabelle。除了文件加密功能外,Annabelle 勒索软件还会试图禁用防火墙,强制停止一系列正在运行程序,通过连接的 USB 驱动器进行传播。 特征 勒索内容: Annabelle 使用 AES256 CBC 加…

喜讯!宝兰德斩获2024数字中国创新大赛·信创赛道全国总决赛三等奖

5月24日,由国家发展和改革委员会、国家数据局、国家互联网信息办公室、科学技术部、国务院国有资产监督管理委员会和福建省人民政府共同主办的2024数字中国创新大赛信创赛道全国总决赛颁奖典礼暨闭幕式大会在福州海峡国际会展中心圆满落幕。依托专业技术研发能力及丰…

IP地址在广告行业中的重要地位

新时代,广告已经成为了企业推广产品的必要手段,而企业想要广告效果好,就要做到精准投放营销广告,将“花钱”的广告精准送到产品的受众用户面前,让收益大于花销,而归根究底就是广告转化率与回报率是否达到预…

SwiftUI中TabView的基本用法及外观样式设置

TabView提供了一个交互式界面,允许用户在其内部的子界面间自由的切换,TabView有两种显示模式,一个是DefaultTabViewStyle,另一个是PageTabViewStyle,本文将对DefaultTabViewStyle这种类型的基本使用和外观样式设置进行…

Android消息机制回顾(Handler、Looper、MessageQueue源码解析)

回顾: Android消息机制 Android消息机制主要指的是Handler的运行机制以及Handler所附带的MessageQueue和Looper的工作机制。 介绍 通过Handler 消息机制来解决线程之间通信问题,或者用来切换线程。特别是在更新UI界面时,确保了线程间的数…

Swift使用JSONDecoder处理json数据,实现json序列化和反序列化

Json数据处理是开发中不可获取的一项技能,如果你不会处理json数据,那你离失业就不远了,所以学完了swift基础教程,还是先老老实实学习一下json处理吧,有了这项技能,你才可以继续下一个网络请求阶段的开发&am…

C++第二十弹---深入理解STL中vector的使用

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、vector的介绍 2、vector的使用 2.1、构造函数和赋值重载 2.1.1、构造函数的介绍 2.1.2、代码演示 2.2、容量操作 2.3、遍历 2.4、增删…

类和对象(上)【有关类的全面学习】【this指针的学习】

类和对象(上) 1.面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步骤,通过函数调用逐步解决问题。 C语言注重过程: C是基于面向对象的,关注的是对象&#xff0…

如何获取某个城市或区域的人口分布数据?

人口分布数据在多个领域都扮演着至关重要的角色。这些数据不仅反映了一个国家或地区的人口分布状况,而且为政策制定者、企业决策者和研究者提供了宝贵的信息。那么,我们如何获取这些重要的人口分布数据呢? 政府统计部门是最主要的来源。各国政…

绝缘鞋计量校准周期多长时间合适?校验检测方法是什么?

绝缘鞋的计量校准,通常是应用在电学相关领域,因此也是属于计量校准机构中的电学室管辖的范围,而绝缘鞋为了安全防护,也是采用了绝缘材料,其标准要求耐电压至少在15KV以下,可应用于工频(50到60F&…