机器学习之词袋模型

目录

[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
相关推荐
坚持就完事了几秒前
正则表达式与Python的re模块
python·正则表达式
Alex艾力的IT数字空间1 分钟前
基于PyTorch和CuPy的GPU并行化遗传算法实现
数据结构·人工智能·pytorch·python·深度学习·算法·机器学习
keerduoba9 分钟前
EWCCTF2025 Tacticool Bin wp
python
a20063801236 分钟前
ply(python版本的flex/bison or Lex/Yacc)
python
wokaoyan198143 分钟前
逻辑推演题——谁是骗子
python
九年义务漏网鲨鱼44 分钟前
利用AI大模型重构陈旧代码库 (Refactoring Legacy Codebase with AI)
python
滑水滑成滑头1 小时前
**标题:发散创新:智能交通系统的深度探究与实现**摘要:本文将详细
java·人工智能·python
闭着眼睛学算法1 小时前
【双机位A卷】华为OD笔试之【哈希表】双机位A-跳房子I【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·c++·python·算法·华为od·散列表
周杰伦_Jay1 小时前
【PaddleOCR深度解析与DeepSeek-OCR对比】开源OCR工具库的技术路线与场景适配
人工智能·机器学习·云原生·架构·开源·ocr
无限码力1 小时前
华为OD技术面真题 - Python开发 - 2
python·华为od·华为od技术面真题·华为od技术面八股·华为od技术面python八股·华为od面试python真题·华为odpython八股