自然语言处理中的Tf-idf是什么意思?最好能有例子,谢谢!
2个回答
TF是term frequency,词频。
IDF是inverse document frequency,逆向文件频率。
比如我们有m个文件,TF-IDF是衡量一个词汇对于某个文件的重要性。
词汇$T_i$在文件$D_j$中的词频TF等于
$$TF_{i,j}=\frac{n_{i,j}}{\sum_{k=1,\cdots,m} n_{k,j}},$$
其中$n_{i,j}$是词汇$t_j$在文件$D_j$中出现的次数,分母是文件$D_j$中所有词汇的个数,作用是归一化。
词汇$t_i$的逆向文件频率idf等于
$$IDF_{i}=\log \frac{m}{|\{j:t_i\in D_j\}|}$$
其中 $|\{j:t_i\in D_j\}|$是m个文件中,包含词汇$t_i$的文件的个数。
接下来我们就有了tfidf的定义:
$$TFIDF_{i,j}=TF_{i,j}\times IDF_{i}.$$
$TFIDF_{i,j}$越大,说明词汇$t_i$在文件$D_j$中重要性越大,越有助于文件的区分度。
请问下,TF的公式中,分母求和的k的取值范围,最大值不应该用m表示吧,因为您下面使用m表示文件个数了,这里的最大值应该是词汇表T中词的个数吧?
-
lxldyxhao
2018-10-10 13:29
我觉得你说的是对的,答主应该笔误了。
-
数据科学小K
2018-10-10 14:27
$tf$-$idf$就是$tf$和$idf$的乘积。
$$tf(w)=\frac{w \text{出现在该文档的次数}}{\text{该文档中总的词汇量}}$$
$$idf(w)=\log\frac{\text{文档的总个数}}{\text{包含}w\text{的文档的个数}}$$
$$tf\text{-}idf(w)=tf(w)\times idf(w)$$
SofaSofa数据科学社区DS面试题库 DS面经