机器学习之词袋模型
目录
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。其数学表达式为:

其中,表示词语
,
表示词语
在所在文本出现的次数。
3 词频-逆文档频率表示法(TF-IDF)
TF-IDF的核心思想是:
- 如果某个词语在文本中频繁出现,则认为该词语很重要
- 如果某个词语在文本中频繁出现,但该词语在每篇文档都出现,则认为该词语不是特别重要,比如“的”字每篇文章都出现,但是重要性不大
TF-IDF表示法的数值计算规则为:词语序列中出现的词语的数值为词语在所在文本中的频次乘以词语的逆文档频率,词语序列中未出现的词语的数值为0。其数学表达式为:

其中,表示词语
,
表示词语
在所在文本出现的次数。
的计算公式为:

当分母越大,越小,则说明其越不重要,为了防止分母为0,对
进行改进,如下:

2.2 例子
已知有下边的几篇英文文本,请分别用词袋模型的三种方法来向量化表示每篇文本。
| 文档ID | 文档词列表 |
|---|---|
| 1 | Chinese Beijing Chinese |
| 2 | Chinese Chinese Shanghai |
| 3 | Chinese Macao |
| 4 | Tokyo Japan Chinese |
第一步:构建词袋
第二步:对于每一篇文本,计算词袋中各词语的数值,得到该篇文本的向量
One-Hot表示法

根据上述公式可得:
| Beijing | Chinese | Japan | Macao | Shanghai | Tokyo | |
|---|---|---|---|---|---|---|
| Chinese Beijing Chinese | 1 | 1 | 0 | 0 | 0 | 0 |
| Chinese Chinese Shanghai | 0 | 1 | 0 | 0 | 1 | 0 |
| Chinese Macao | 0 | 1 | 0 | 1 | 0 | 0 |
| Tokyo Japan Chinese | 0 | 1 | 1 | 0 | 0 | 1 |
词频表示法

根据上述公式可得:
| Beijing | Chinese | Japan | Macao | Shanghai | Tokyo | |
|---|---|---|---|---|---|---|
| Chinese Beijing Chinese | 1 | 2 | 0 | 0 | 0 | 0 |
| Chinese Chinese Shanghai | 0 | 2 | 0 | 0 | 1 | 0 |
| Chinese Macao | 0 | 1 | 0 | 1 | 0 | 0 |
| Tokyo Japan Chinese | 0 | 1 | 1 | 0 | 0 | 1 |
TF-IDF表示法

使用改进后的,如下:

计算过程如下:
因此有:
| Beijing | Chinese | Japan | Macao | Shanghai | Tokyo | |
|---|---|---|---|---|---|---|
| Chinese Beijing Chinese | 1*1.916=1.916 | 2*1=2 | 0 | 0 | 0 | 0 |
| Chinese Chinese Shanghai | 0 | 2*1=2 | 0 | 0 | 1*1.916=1.916 | 0 |
| Chinese Macao | 0 | 1*1=1 | 0 | 1*1.916=1.916 | 0 | 0 |
| Tokyo Japan Chinese | 0 | 1*1=1 | 1*1.916=1.916 | 0 | 0 | 1*1.916=1.916 |
相关文章:
机器学习之词袋模型
目录 1 词袋模型基本概念 2 词袋模型的表示方法 2.1 三大方法 1 独热表示法(One-Hot) 2 词频表示法(Term Frequency, TF) 3 词频-逆文档频率表示法(TF-IDF) 2.2 例子 1 词袋模型基本概念 词袋模型&a…...
【C++/STL】vector(常见接口、模拟实现、迭代器失效)
🌈个人主页:秦jh_-CSDN博客🔥 系列专栏: https://blog.csdn.net/qinjh_/category_12575764.html?spm1001.2014.3001.5482 目录 简单使用 常见接口 find insert vector模板 模拟实现 尾插 构造 迭代器失效 使用memcpy拷贝问…...
Spring Boot Web 开发:MyBatis、数据库连接池、环境配置与 Lombok 全面解析
推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI 1.0 MyBatis 概述 MyBatis 是一个优秀的持久层框架,它支持自定义 SQL、存储过程以及高级映射。MyBatis 可以帮助我们将数据库操作抽象出来,使得我们的代码更加简洁…...
【UE5.1 多线程 异步】“Async Blueprints Extension”插件使用记录
目录 一、异步生成Actor示例 二、异步计算示例 参考视频 首先需要在商城中下载“Async Blueprints Extension”插件 一、异步生成Actor示例 2. 创建一个线程类,这里要指定父类为“LongAsyncTask”、“InfiniteAsyncTask”、“ShortAsyncTask”中的一个 在线程类…...
【已解决】在jupyter里运行torch.cuda.is_available(),显示True,在pycharm中运行却显示false。
文章目录 问题概述1、在Jupyter中GPU运行true2、在pycharm中GPU运行false3、个人解决方案仅供参考 问题概述 在jupyter里运行torch.cuda.is_available(),显示True,在pycharm中运行却显示false。原因在于jupyter 运行环境和pycharm 运行环境不同…...
Flutter 中的 Scrollbar 小部件:全面指南
Flutter 中的 Scrollbar 小部件:全面指南 在Flutter中,滚动条(Scrollbar)是一种常见的UI组件,用于提供对滚动内容的快速访问和控制。Scrollbar 小部件可以附加到任何可滚动的widget上,如ListView、GridVie…...
【华为】将eNSP导入CRT,并解决不能敲Tab问题
华为】将eNSP导入CRT,并解决不能敲Tab问题 eNSP导入CRT打开eNSP,新建一个拓扑右键启动查看串口号关联CRT成功界面 SecureCRT连接华为模拟器ensp,Tab键不能补全问题选择Options(选项)-- Global Options (全局选项&#…...
实验二 电子传输系统安全-进展2
上周任务完成情况(代码链接,所写文档等) 重新调通电子公文传输系统部署gmssl学习生成SM2证书学习gmssl中的CTLS实现将数据库从SqlServer迁移到Mysql调试Mysql驱动学习Bouncy Castle 代码链接 Mysql表设计 /* Navicat MySQL Data Transfer…...
JavaScript 获取 HTML 中特定父元素下的子元素
JavaScript 获取 HTML 中特定父元素下的子元素 <!DOCTYPE html> <html lang"en"> <head> <meta charset"UTF-8"> <title>查找子元素示例</title> </head> <body><div id"parent"><p&…...
等保服务是一次性服务吗?为什么?怎么理解?
我国等保政策已经严格落地执行,但还有不少企业对于等保服务不是很了解。例如有人问,等保服务是一次性服务吗?为什么?怎么理解?今天我们就来简单回答一下,仅供参考哈! 等保服务是一次性服务吗&…...
全网首发UNIAPP功能多的iapp后台源码
全网首发UNIAPP功能多的iapp后台源码,众所周知UN Dev Assist 后台是一款既不免费又不好用的后台今天直接分享。 搭建教程在里面了,自己查看。 源码下载:https://download.csdn.net/download/m0_66047725/89291994 更多资源下载:…...
【搜索方法推荐】高效信息检索方法和实用网站推荐
博主未授权任何人或组织机构转载博主任何原创文章,感谢各位对原创的支持! 博主链接 本人就职于国际知名终端厂商,负责modem芯片研发。 在5G早期负责终端数据业务层、核心网相关的开发工作,目前牵头6G算力网络技术标准研究。 博客…...
面试被问到不懂的东西,是直接说不懂还是坚持狡辩一下?
大家好,我是瑶琴呀。 面试被问到不懂的东西,是直接说不懂还是坚持狡辩一下?这个问题可以转变一下,如果你顺利拿到 offer,公司安排的工作跟你之前的技术和经验不匹配,你还愿意干下去吗? 转变一…...
Flutter 中的 StatefulBuilder 小部件:全面指南
Flutter 中的 StatefulBuilder 小部件:全面指南 在Flutter中,StatefulBuilder是一个高效的小部件,它根据给定的构建函数来构建widget,并在组件树中只对需要重新构建的部分进行更新。这使得它在性能优化方面非常有用,特…...
mail发送接口API如何使用?怎么调用接口?
mail发送接口API的性能怎么样?邮件接口发信的技巧? 为了自动化和集成电子邮件功能到应用程序或系统中,开发人员可以使用各种邮件发送接口API。AokSend将介绍如何使用这些API来发送电子邮件,提高效率和灵活性。 mail发送接口API&…...
DOS学习-目录与文件应用操作经典案例-attrib
新书上架~👇全国包邮奥~ python实用小工具开发教程http://pythontoolsteach.com/3 欢迎关注我👆,收藏下次不迷路┗|`O′|┛ 嗷~~ 目录 一.前言 二.使用 三.案例 一.前言 DOS系统中的attrib命令是一个用于显示或更改文件&#…...
STP简介
一、STP介绍 STP 即生成树协议(Spanning Tree Protocol)一种网络协议 STP 主要用于解决以太网中的环路问题。在具有冗余链路的网络环境中,环路可能导致广播风暴、重复帧等不良后果,严重影响网络性能和稳定性。STP 通过在交换机之…...
java调用科大讯飞在线语音合成API --内附完整项目
科大讯飞语音开放平台基础环境搭建 1.用户注册 注册科大讯飞开放平台账号 2.注册好后先创建一个自己的应用 创建完成后进入应用可以看到我们开发需要的三个参数:APPID,APISecret,APIKey 3.因为平台提供的SDK中只支持了简单的中英两种语言语音…...
Vuex 页面刷新数据丢失怎么解决
当Vuex中的数据在页面刷新后丢失时,这通常是因为Vuex的状态数据是保存在运行内存中的,页面刷新会导致Vue实例重新加载,进而Vuex中的数据被重置为初始状态。为了解决这个问题,可以采取以下几种方法: 1. 使用浏览器的本…...
如何使用Cloudways搭建WordPress网站
如今,搭建网站已经变得非常简单,这主要得益于开源的CMS建站系统的兴起。即使是不懂编程的人也能轻松搭建自己的网站,这些CMS系统提供了丰富的主题模板和插件,使用户可以通过简单的拖放和配置操作来建立自己的网站。 WordPress是目…...
idea大量爆红问题解决
问题描述 在学习和工作中,idea是程序员不可缺少的一个工具,但是突然在有些时候就会出现大量爆红的问题,发现无法跳转,无论是关机重启或者是替换root都无法解决 就是如上所展示的问题,但是程序依然可以启动。 问题解决…...
springboot 百货中心供应链管理系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,百货中心供应链管理系统被用户普遍使用,为方…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》
在注意力分散、内容高度同质化的时代,情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现,消费者对内容的“有感”程度,正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中࿰…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
浅谈不同二分算法的查找情况
二分算法原理比较简单,但是实际的算法模板却有很多,这一切都源于二分查找问题中的复杂情况和二分算法的边界处理,以下是博主对一些二分算法查找的情况分析。 需要说明的是,以下二分算法都是基于有序序列为升序有序的情况…...
C++ Visual Studio 2017厂商给的源码没有.sln文件 易兆微芯片下载工具加开机动画下载。
1.先用Visual Studio 2017打开Yichip YC31xx loader.vcxproj,再用Visual Studio 2022打开。再保侟就有.sln文件了。 易兆微芯片下载工具加开机动画下载 ExtraDownloadFile1Info.\logo.bin|0|0|10D2000|0 MFC应用兼容CMD 在BOOL CYichipYC31xxloaderDlg::OnIni…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
html css js网页制作成品——HTML+CSS榴莲商城网页设计(4页)附源码
目录 一、👨🎓网站题目 二、✍️网站描述 三、📚网站介绍 四、🌐网站效果 五、🪓 代码实现 🧱HTML 六、🥇 如何让学习不再盲目 七、🎁更多干货 一、👨…...
在Ubuntu24上采用Wine打开SourceInsight
1. 安装wine sudo apt install wine 2. 安装32位库支持,SourceInsight是32位程序 sudo dpkg --add-architecture i386 sudo apt update sudo apt install wine32:i386 3. 验证安装 wine --version 4. 安装必要的字体和库(解决显示问题) sudo apt install fonts-wqy…...
