机器学习之词袋模型

目录

[1 词袋模型基本概念](#1 词袋模型基本概念)

[2 词袋模型的表示方法](#2 词袋模型的表示方法)

[2.1 三大方法](#2.1 三大方法)

[1 独热表示法(One-Hot)](#1 独热表示法(One-Hot))

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

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

[2.2 例子](#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
相关推荐
我没胡说八道3 小时前
高校论文AI检测优化工具对比研究与实测分析(2026)
人工智能·深度学习·机器学习·计算机视觉·aigc·论文
love530love3 小时前
LiveTalking 数字人项目 Windows 部署完全指南(EPGF 架构)
人工智能·windows·python·架构·livetalking·epgf
遇事不決洛必達3 小时前
【Python基础】GIL 锁是什么及其对爬虫的影响
爬虫·python·线程·进程·gil锁
CryptoPP4 小时前
快速对接东京证券交易所API数据:实战指南与代码示例
开发语言·人工智能·windows·python·信息可视化·区块链
探物 AI5 小时前
把 MambaOut 塞进 YOLOv11:会有什么样的反应
python·yolo·计算机视觉
unicrom_深圳市由你创科技5 小时前
基于Spring AI框架的RAG应用
人工智能·spring·机器学习
如竟没有火炬5 小时前
最大矩阵——单调栈
数据结构·python·线性代数·算法·leetcode·矩阵
阳区欠5 小时前
【LangChain】LLM基础介绍
开发语言·python·langchain
Cosolar5 小时前
保姆级 CrewAI 教程:从零构建多智能体协作系统
人工智能·python·架构
GDAL6 小时前
使用 uv 管理 Python 版本
python·uv·版本