TF-IDF
TF—词频
TF就是Term Frequency,即单词频率。就是统计一篇文章中某词出现的次数,它是基于这样的一个假设:查询关键字中的单词应该相对于其他单词更加重要,而文档的重要程度,也就是相关度,与单词在文档中出现的次数成正比。
但是,这是非常不合理的:
- 文章单词总数的影响
如果文章1总共有100万个单词,文章2总共有1万个单词,假设一个词在文章1和文章2中均出现了1000次,但总量不同,不具可比性; - 不相关高频词的影响
在英语中,经常出现the、a、an、this等与文章意义无关的高频词,统计这一部分词语的词频意义不大,对于这个问题,有IDF去惩罚它,即逆文档频率。
IDF—逆文档频率
就是要去“惩罚”那些在文档中出现太多次的单词。它也有一个假设:真正携带“相关”信息的单词通常在不太多的文档中出现,有时通常在极少的文档中出现,如果某个单词在大多数的文档中都存在,这个单词带给我们的信息量就越少,它就越不重要。
IDF可以通过DF(文档频率)计算得到,它的作用是对TF就行修正。DF的意思是有多少文档含有这个单词,IDF就是DF的倒数。
I
D
F
=
1
D
F
IDF=\frac{1}{DF}
IDF=DF1
应用场景
TF-IDF主要是用于英文场景,中文涉及同义词,一词多义的问题,不能简单的用TF-IDF。
不足和改进
TF问题
实际上,在TF的定义中,并没有对TF的上界做明显的限制,它可以无限大,超过某一限制后,TF-IDF就没有什么区分度了,意义就不大了。
改进
可以对TF做适当的变换,比如做对数变换,让TF的变换结果为非线性的,最后令TF-IDF有足够的区分度。
文档词量问题
前文我们提到了在文章1和文章2中同样的单词均出现了1000次,那么绝对不能称文章1和文章2同等相关。
改进
其实受影响的还是TF值,可以TF做标准化,特别是根据文档中最大的TF做标准化。
文档数的影响
同样的道理,IDF也没有定义值域,文档数
N
N
N对IDF的影响也是非常大,可以使用下面的方法对IDF进行处理:
I
D
F
n
e
w
=
l
o
g
N
+
1
D
F
IDF_{new}=log\frac{N+1}{DF}
IDFnew=logDFN+1
这样做有两个好处:
- 类似前面的标准化思想,用文档数进行标准化,减小其影响;
- 对数限制线性增长。
感谢阅读。
如果觉得文章对你有所帮助,欢迎打赏哦~