机器学习之词袋模型

目录

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

《Effective Objective-C 2.0》读书笔记——熟悉Objective-C

目录 第一章:熟悉Objective-C第1条:了解Objective-C语言的起源第2条:在类的头文件中尽量少引入其他头文件第3条:多用字面量语法,少用与之等价的方法第4条:多用类型常量,少用#define预处理指令第…

LocalDateTime入参反序列化(新增LocalDate处理)和springBoot long类型 长id 到前端丢失精度问题

入参解析Java8时间类型失败 Caused by: java.time.format.DateTimeParseException: Text 1991-04-05 18:10:51 could not be parsed at index 10 第一种方案,覆盖了ObjectMapper,改了好几版了, package com.ruoyi.talent.config;import com.fasterxml…

社交网络安全:保护用户数据的Facebook实践

在数字化时代,社交网络安全成为了人们关注的焦点之一。作为全球最大的社交平台之一,Facebook一直在致力于保护用户数据安全和隐私。本文将探讨Facebook在社交网络安全方面的实践,以及它所采取的措施来保护用户数据的安全性。 1. 数据加密与隐…

软考之信息系统管理:网络基础知识

网络基础知识 计算机网络的概念和分类 网络是一些结点和链路的集合,计算机网络就是相互连接、彼此独立的计算机系统的集合。 按照网络的覆盖范围,可以将计算机网络划分为: 局域网城域网广域网互联网 计算机网络体系结构 OSI/RM中有七个…

AC/DC电源模块:适用于各种功率需求的电子设备

BOSHIDA AC/DC电源模块:适用于各种功率需求的电子设备 AC/DC电源模块是一种广泛应用于不同电子设备中的电源转换模块。它具有输出稳定、高效率、可靠性强等特点,适用于各种功率需求的电子设备。在本文中,我们将探讨AC/DC电源模块的工作原理…

亚信安慧AntDB数据库采集技术创新:ACC从Java到Go的转型之路

传统的指标采集方法通常使用一些命令行工具,如top、free等来获取系统的性能数据。然而,这种方法存在一些缺点。首先,这些命令行工具输出的数据格式通常是文本形式,需要进行解析和处理才能得到有用的信息,这增加了开发者…

计算机网络-BGP概述

一、概述 到目前为止我们已经学习了静态路由、OSPF、RIP、IS-IS了,前面我们也了解到按照区域或者范围来分,路由协议可以划分为:IGP内部网关协议、EGP外部网关协议,而我们前面学习的动态路由都属于IGP的范畴. IGP是用于单一自治系统…

科技赋能,拓宽生活边界

在当今多元化与快速变化的社会中,社会适应能力成为了衡量个人能否顺利融入社会、享受生活品质的关键指标。对于盲人朋友而言,这一能力尤为重要,它不仅关乎日常生活的便利,更影响到心理的健康与社会参与度。在此背景下,…

el-upload上传图片,视频可获取视频时长。

对element-ui组件的upload组件再一次封装&#xff0c;简单记录。下面是效果图。 注意点&#xff1a;该组件现在仅支持单图和单个视频上传。 <template><div :style"myStyle"><divclass"uploads":style"{width: upWith px,height: up…

代码随想录算法训练营第36期DAY36

贪心好难&#xff0c;希望能坚持到柳暗花明那天。 DAY36 1005K次取反后最大化的数组和 自己的方法&#xff0c;注意越界条件放在最前面就好&#xff1a; class Solution {public: int largestSumAfterKNegations(vector<int>& nums, int k) { //自己的…

vue中数据已经改变了,但是table里面内容没更新渲染!

解决方案&#xff1a; 给table或者el-table标签上添加一个动态key值&#xff0c;只要数据发生改变&#xff0c;key值变动一下即可 标签上&#xff1a; :key“timeStamp” 初始data&#xff1a;timeStamp:0, 更新数据&#xff1a;this.timeStamp 这样每次更新数据&#xff…

ChannelHandler和ChannelPipeline之一

目录 ChannelHandler Channel的生命周期 ChannelHandler的生命周期 ChannelInboundHandler接口 ChannelOutboundHandler接口 ChannelHandler适配器 资源管理 ChannelPipeline接口 修改ChannelPipeline 触发事件 ChannelHandler Channel的生命周期 Channel定义了一组和…

整理前期PS问题

前面问题汇总 一、字体显示 字体不显示主要有三个原因&#xff0c;其实在这里面我已经打了“国风”两字&#xff0c; 字体太大&#xff0c;输入框小 只需要把输入框拉大/改变字体 经过字体修改还没有&#xff0c;那就是字体颜色和背景一致 二、字体横竖排变换 将文字打好…

java中的Map集合

一、Map集合概述 1、Map集合以键值对的形式存储元素&#xff0c;是将键映射到值的对象 2、要求&#xff1a; &#xff08;1&#xff09;一个键最多映射一个值 &#xff08;2&#xff09;键不能重复&#xff0c;值可以重复 二、HashMap类 1、是Map接口的实现类 2、特点&a…

Webpack源码泄露到Vue快速入门

前言 1.webpack 源码泄露 1.1漏洞简介 1.2存在泄露的站点 1.3 如何判断是否存在漏洞 方法1: 方法2: 1.4.如何将js.map文件还原为项目文件 1. 4.1查看npm版本 1.4.2 安装reverse-sourcemap 1. 4.3.检查是否安装 ​1. 4.4 使用reverse-sourcemap进行js.map文件还原操作…

代码随想录-Day16

104. 二叉树的最大深度 方法一&#xff1a;深度优先搜索 class Solution {public int maxDepth(TreeNode root) {if (root null) {return 0;} else {int leftHeight maxDepth(root.left);int rightHeight maxDepth(root.right);return Math.max(leftHeight, rightHeight) …

深入解读HTTP状态码:分类、含义、应用场景与故障排查指南

HTTP状态码作为超文本传输协议(HTTP)响应的重要组成部分,为客户端与服务器之间的交互提供了清晰的状态反馈。本文将全面展开对HTTP状态码的深入解读,涵盖其分类、具体含义、典型应用场景以及在故障排查中的实用价值,旨在帮助开发者与运维人员更好地理解和应对各类HTTP响应…

Postman使用技巧

Postman是一款广泛使用的API开发和测试工具&#xff0c;专为简化Web服务API的开发、测试、文档编制和协作过程而设计。它支持各种HTTP请求方法&#xff0c;包括GET、POST、PUT、DELETE等&#xff0c;允许用户轻松地构建和发送请求&#xff0c;以及检查响应。 本文介绍几个提升效…

vscode 的 AI 协助插件 Tabnine / Codeium

4.1、Tabnine 描述&#xff1a;Tabnine 是一款基于深度学习技术的代码自动补全工具。该插件支持多种编程语言&#xff0c;包括 Python、JavaScript、TypeScript、Java 和 Go 等。它可以根据您输入的代码段和上下文信息&#xff0c;预测并推荐可能的代码补全选项&#xff0c;从而…