文本处理中很多时候会需要给每个单词分配权重,有了权重以便后续进一步处理。常用的算法主要是TF-IDF。
TF
TF,即Term Frequency。我们可以将文档看成由若干词(term)组成,那么文档中某个term出现的频率就是TF。词频和词权重存在关系,可以用来作为词权重的衡量因素之一。
IDF
IDF,即Inverse Document Frequency。TF算法存在一个问题:比如某文档中多个term出现的次数相同,则不好判别他们之间哪个更重要。因此又引入逆文档频率(IDF),某个term的IDF可定为:
其中,T为统计样本中总文档数,t为包含某term的文档数。由此说明包含某term的文档数越多,该term越不重要。
获取IDF方式
其实有几种方式来统计IDF。
-
自己收集样本库进行统计。
-
第三方统计好的IDF表。
-
借助百度或谷歌搜索引擎,这种方式不准确。随便取个m值假设为总文档,再搜索某个term得到n条结果,则认为n除以m即为IDF。
TF-IDF
有了前面的TF和IDF就可以通过他们一起决定某个Term的权重。定义TF-IDF为TF乘以IDF。