文本分类任务中tf-idf的理解
维基百科给的定义式:tf-idf是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。tf-idf加权的各种形式常被搜索引擎应用,作为文件与用户查询之间相关程度的度量或评级。除了tf-idf以外,互联网上的搜索引擎还会使用基于链接分析的评级方法,以确定文件在搜索结果中出现的顺序。
也即:
tf = 一个词在某个文件中的出现次数 / 该文件中所有词出现的次数总和
idf = log 文档总数 / (包含这个词的所有文档数之和 + 1)
idf表示一个词能将当前文件和其他文件区分开的能力,越大越好。
tf表示某个词出现在这段文本的频率,越大越好。
缺陷:
没有考虑顺序。
容易选出一些出现频率少,恰巧出现在这个句子中的idf比较高,不具有代表性。
没有考虑到类内和雷剑的分布情况,只能区分词在句子层面的表征水平。
和词袋模型联合,先用词袋模型选出高热度词汇,然后用tfidf计算权值,这样值越高表示该词区分每条语句的效果越好。
而在文本分类中,我们把每个类解释为一个文件,重新定义tf,idf。
tf = 一个词在某个分类的所有样本中出现的次数 / 这个分类中所有样本中包含的所有词出现的次数总和
idf = log 所有类包含的样本总数 / 包含这个词的所有类的所有样本数之和
举个例子,假设我们有两类a, b。 a中包含2个样本,词数分别为[10, 20],b中包含3个样本,词数分别为[30,40]。词word在a中2个样本中的出现次数为[2,5],在b中3个样本中出现次数为[3,0,0]。求词word对a类的重要程度tfidf。
tf = ( 2 + 5) / (10 + 20)
idf = log (2 + 3) / (( 2 + 1) + 1)