机器学习之词袋模型

目录

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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值