机器学习之词袋模型

目录

[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
相关推荐
C137的本贾尼10 分钟前
(每日一道算法题)二叉树剪枝
算法·机器学习·剪枝
Blossom.11815 分钟前
使用Python和Flask构建简单的机器学习API
人工智能·python·深度学习·目标检测·机器学习·数据挖掘·flask
Love__Tay1 小时前
【学习笔记】Python金融基础
开发语言·笔记·python·学习·金融
Lilith的AI学习日记1 小时前
什么是预训练?深入解读大模型AI的“高考集训”
开发语言·人工智能·深度学习·神经网络·机器学习·ai编程
有风南来2 小时前
算术图片验证码(四则运算)+selenium
自动化测试·python·selenium·算术图片验证码·四则运算验证码·加减乘除图片验证码
wangjinjin1802 小时前
Python Excel 文件处理:openpyxl 与 pandas 库完全指南
开发语言·python
我不是小upper3 小时前
SVM超详细原理总结
人工智能·机器学习·支持向量机
Yxh181377845543 小时前
抖去推--短视频矩阵系统源码开发
人工智能·python·矩阵
白杆杆红伞伞3 小时前
10_聚类
机器学习·支持向量机·聚类
Humbunklung3 小时前
PySide6 GUI 学习笔记——常用类及控件使用方法(多行文本控件QTextEdit)
笔记·python·学习·pyqt