关于TF-IDF的一些见解

1  算法介绍

该算法是一种用于资讯检索和资讯探勘的常用加权技术。

该算法是一种统计方法,用以评估一字词对于一个文本集(语料库)中的其中一份文本的重要程度。

注意:字词的重要性随着它在文本中出现的次数成比增加,但同时会随着它在语料库中出现的频率成反比下降。

2  原理

2.1  词频(term frequency, TF)

定义:指给定的词语在该文本中出现的次数。

补充:通常该数字会被归一化(分子一般小于分母,区别于IDF),以防止它偏向长的文本(同一个词在长文本里可能会比短文本有更高的词频,而不管该词重要与否)。

对于在某一特定文本里的词语${t_i}$来说,它的词频可表示为:

\[t{f_{i,j}} = \frac{{{n_{i,j}}}}{{\sum\nolimits_k {{n_{i,j}}} }}\]

式中分子是词语${t_i}$在文本${d_j}$中出现的次数,而分母则是文本${d_j}$中所有字词出现的次数之和。

注:下标$i$对应所有的词,下标$j$对应所有的文本,$i$、$j$表示词$i$在文本$j$中···

2.2  逆向文本频率(inverse document frequency, IDF)

定义:度量一个词语普遍重要程度。

某一特定词语的IDF,可以由总文本数目除以包含该词语之文本数目,再将得到的商取对数得到:

\[id{f_i} = \log \frac{{\left| D \right|}}{{\left| {\left\{ {j:{t_i} \in {d_j}} \right\}} \right|}} \approx \log \frac{{\left| D \right| + 1}}{{\left| {\left\{ {j:{t_i} \in {d_j}} \right\}} \right| + 1}}\]

式中分子代表语料库中的总文件数,分母代表包含词语${t_i}$的文本数目(即${n_{i,j}} \ne 0$的文本数目)。

注:如果该词不在语料库中,就会导致分母为0,故一般采用后者约等处理。(注意这里涉及到平滑化处理,常用的方法:加一法、线性插值法和折扣法)

注:如果包含某个词语的文本越少,也就是分母越小,则IDF值越大,说明该词语具有很好的类区分能力。

2.3  TF-IDF计算

如果某个词语在一篇文章中出现的频率高。并且在其他文章中很少出现,则认为该词语具有很好的类区分能力,适合用于分类。

TF-IDF实际上为:

\[tfid{f_{i,j}} = t{f_{i,j}} \times id{f_i}\]

即某一特征文本内的高词语频率,以及该词语在整个文本集合中的低文本频率,可以产生出高权重的TF-IDF值。因此,TF-IDF倾向于过滤掉常用的词语,保留重要的词语。

3  不足之处

如果某一类文档$C$中包含词语$t$的文本数为$m$,而其他类包含词语$t$的文本数为$k$,显然所有包含词语$t$的文本数$n = m + k$,当$m$大的时候$n$也大,按照公式得到的IDF值会小,就说明词语$t$的类分能力不强。

但实际上,如果一个词语在一个类的文本中频繁出现,则说明该词语能够很好代表这个类的文本特征,这样的词语应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别于其他类文本,这就是IDF的不足之处。

除此外,还有以下不足之处:

  • 对于新词给予一个较大的权重是否合适?
  • TF-IDF仅仅综合考虑了该词语在文档中的重要程度和文档区分度。
  • TF-IDF没有考虑特征词在类间的分布。特征选择所选择的特征应该在某类出现多,而其他类出现少,即考察各类的文档频率的差异。如果一个特征词在各类间分布比较均匀,这样的词语对分类基本没有贡献;但是如果一个特征词比较集中地分布在某个类中,而在其它类中几乎不出现,这样的词语却能够很好地代表这个类的特征,而TF-IDF不能区分这两种情况。总而言之,即TF-IDF计算的权重不适用于分类。
  • TF-IDF没有考虑特征词在类内部文档中的分布情况。在类内部的文档中,如果特征词均匀分布在其中,则这个特征词能够很好地代表这个类的特征,如果只在几篇文档中出现,而在此类的其他文档中不出现,显然这样的特征词不能够代表这个类的特征。
posted @ 2018-10-28 15:47  祁俊辉  阅读(1098)  评论(0编辑  收藏  举报