• 关于TF-IDF的一些见解


    1  算法介绍

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

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

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

    2  原理

    2.1  词频(term frequency, TF)

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

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

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

    [t{f_{i,j}} = frac{{{n_{i,j}}}}{{sum olimits_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 ight|}}{{left| {left{ {j:{t_i} in {d_j}} ight}} ight|}} approx log frac{{left| D ight| + 1}}{{left| {left{ {j:{t_i} in {d_j}} ight}} ight| + 1}}]

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

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

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

    2.3  TF-IDF计算

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

    TF-IDF实际上为:

    [tfid{f_{i,j}} = t{f_{i,j}} imes 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没有考虑特征词在类内部文档中的分布情况。在类内部的文档中,如果特征词均匀分布在其中,则这个特征词能够很好地代表这个类的特征,如果只在几篇文档中出现,而在此类的其他文档中不出现,显然这样的特征词不能够代表这个类的特征。
  • 相关阅读:
    折线图平滑
    Matplotlib字体大小设置
    折线图
    柱状图
    zip()函数
    matplotlib基础
    unique()函数
    sorted()与sort()函数
    Oracle数据库文件导出为CSV格式的方法
    Numpy和Pandas
  • 原文地址:https://www.cnblogs.com/qijunhui/p/9865793.html
Copyright © 2020-2023  润新知