TF-IDF解释

发布于:2024-05-09 ⋅ 阅读:(23) ⋅ 点赞:(0)

TF-IDF 表征了某个词对于一段文本的重要性和独特性


假设我们有以下三段简短的文本数据:

文本1: 这个苹果很新鲜很甜
文本2: 我买了一个苹果非常喜欢
文本3: 这个苹果皮非常光滑


首先,我们构建这个小文本集合的词典(vocabulary),去掉一些常见的无意义词语(如"的"、"一个"等),词典为:

{‘这个’, ‘苹果’, ‘新鲜’, ‘甜’, ‘我’, ‘买了’, ‘非常’, ‘喜欢’, ‘皮’, ‘光滑’}

共10个词条。

接下来,计算每个词条在每个文本中的TF(词频)值,以及在整个文本集合中的IDF(逆向文档频率)值。

例如对于"苹果"这个词条:
TF(文本1) = 1/4 = 0.25 (在文本1中出现1次,文本长度4)
TF(文本2) = 1/5 = 0.2
TF(文本3) = 1/4 = 0.25
IDF = log(3/3) = 0 (在所有3个文件中都出现过)

将每个词条的TF*IDF值作为该词条在该文本的特征值,那么文本1可以用一个10维的特征向量表示为:

[0.27, 0.25, 0.27, 0.27, 0, 0, 0, 0, 0, 0]

文本2的特征向量为:

[0, 0.2, 0, 0, 0.4, 0.4, 0.4, 0.4, 0, 0]

文本3的特征向量为:

[0.27, 0.25, 0, 0, 0, 0, 0, 0, 0.27, 0.27]

这样,我们就根据TF-IDF的值,将原始的文本数据转化为了数值型的向量形式,方便被机器学习模型使用。


可以看出,在这个例子中,"苹果"对1和3更为重要,“新鲜”"甜"等对1更重要,“非常”"喜欢"对2更重要,“皮”"光滑"对3更重要。这些重要特征被很好地保留下来,而常见无意义的词组被过滤掉。

通过这个例子,我们可以看到TF-IDF如何高效地根据词条在不同文本中的重要性赋予权重,将文本表示为向量形式的特征,以输入机器学习任务中。


TF-IDF通过以下两个方面来凸显文档中的重要词语:

1.词频(TF)部分

TF指的是单词在当前文档中出现的频率。一个词语在文档中出现的频率越高,说明它对该文档越重要,应当赋予更高的权重。

TF通常通过以下公式计算:

TF(t,d) = freq(t,d) / sum(freq(w,d) for w in d)

其中, freq(t,d)表示词语t在文档d中出现的频率,sum表示文档d中所有单词频率之和。这样可以归一化词频,避免受文档长度的影响。

2.逆向文档频率(IDF)部分

IDF的作用是降低那些在整个文档集中过于常见的词语的权重,提高那些较为独特、稀有的词语的权重。

IDF通过以下公式计算:

IDF(t,D) = log(N / freq(d in D contains t))

其中,N是语料库中文档的总数,freq(d in D contains t)是含有单词t的文档数量。


可以看到,如果一个单词在很多文档中都出现过,它的IDF值会较小;反之,如果一个词语在很少文档中出现,它的IDF值会较大。

最终,TF-IDF是TF和IDF的乘积:

TF-IDF(t,d,D) = TF(t,d) * IDF(t,D)

通过这种交叉计算,TF-IDF使得:

  1. 文档中出现频率高的词语获得较高权重(高TF)
  2. 在整个语料库中罕见的词语获得较高权重(高IDF)
  3. 普通常见词语的权重被削减(高TF低IDF或低TF低IDF)

因此,对于文档来说,它的特征词语(如专有名词、术语等)会获得很高的TF-IDF分数,而那些像"的"、"一个"这样的常见词语则会被降低权重,从而凸显了文档的重要词语特征。

这就是TF-IDF能突出重要词语、消除噪音的根本原因,使其成为自然语言处理中一种广泛使用的词语重要性加权方法。


网站公告

今日签到

点亮在社区的每一天
去签到