轻松理解TF-IDF原理及应用

  在了解TF-IDF原理前,我们首先需要高清楚为啥需要它以及它能解决什么问题?下面我们先从以计数为特征的文本向量化来说起。


以计数特征文本向量化的不足

  计数特征,简单来讲就是统计每个特征词在文档中出现的次数,把次数作为特征的权重。因此在以计数特征文本分词并向量化后,我们可以得到词汇表中每个词在各个文本中形成的词向量,比如我们将下面4个短文本做了词频统计:
  corpus=[
      ”我 来到 风景 非常 美丽 的 杭州 喝 到了 非常 好喝 的 龙井”,
       “我 非常 喜欢 旅游”,
       “我 非常 喜欢 吃 苹果 “,
      ”我 非常 喜欢 看 电视”
          ]
    使用sklearn处理后得到的基于计数特征的词向量如下:
轻松理解TF-IDF原理及应用_第1张图片
    如何我们直接将这以计数特征的12维特征作为每篇文档的特征向量,来进行文本分类,那么将会出现一个明显的问题。比如第一个文本,我们发现”杭州”,”龙井”和“风景”各出现1次,而“非常“出现了2次。单从计数特征来看似乎这个文本与”非常“这个特征更关系紧密。但是实际上”非常“是一个非常普遍的词,在4个短文本中都出现了,因此虽然它的词频为2,但是重要性却比词频为1的”“杭州”,”龙井”和“风景”要低的多,因为它在四个短文本区分度最低。但是,如果我们采用以计数为特征的向量化就无法反应这一点。因此我们需要进一步的预处理来反应文本的这个特征,而这个预处理就是TF-IDF。


TF-IDF概述

    TF-IDF是Term Frequency-Inverse Document Frequency的缩写,即“词频-逆文本频率”。它由两部分组成,TF和IDF。
    前面的TF也就是我们前面说到的词频,我们之前做的向量化也就是做了文本中各个词的出现频率统计,并作为文本特征,这个很好理解。关键是后面的这个IDF,即“逆文本频率”如何理解。在“以计数特征文本向量化的不足”中,我们讲到了4个短文本中都出现的”非常”,因此虽其词频虽然高,但是重要性却应该比词频低的”杭州”,”龙井”和“风景”要低。我们的IDF就是来帮助我们来反应这个词的重要性的,进而修正仅仅用词频表示的词特征值。
    概括来讲,IDF反应了一个词在所有文本中出现的频率,如果一个词在很多的文本中出现,那么它的IDF值应该低,比如上文中的“非常”。而反过来如果一个词在比较少的文本中出现,那么它的IDF值应该高。一个极端的情况,如果一个词在所有的文本中都出现,那么它的IDF值应该为0。
    上面我们从定性的角度去分词的TF-IDF,下面我们从公式的角度来了解:
    词频(Term Frequency, TF)表示关键词w在文档Di中出现的频率:
              这里写图片描述
    其中,count(w)为关键词w的出现次数,|Di|为文档Di中所有词的数量。
    逆文档频率(Inverse Document Frequency, IDF)反映关键词的普遍程度——当一个词越普遍(即有大量文档包含这个词)时,其IDF值越低;反之,则IDF值越高。IDF定义如下:
              这里写图片描述
    其中,N为所有的文档总数,I(w,Di)表示文档Di是否包含关键词,若包含则为1,若不包含则为0。若词w在所有文档中均未出现,则IDF公式中的分母为0;因此需要对IDF做平滑(smooth):
            轻松理解TF-IDF原理及应用_第2张图片
    关键词w在文档Di的TF-IDF值
          这里写图片描述
从上述定义可以看出:

  • 当一个词在文档频率越高并且新鲜度高(即普遍度低),其TF-IDF值越高。

  • TF-IDF兼顾词频与新鲜度,过滤一些常见词,保留能提供更多信息的重要词。


欢迎加入我们的QQ群:220823345

欢迎关注我们的微信公众号

轻松理解TF-IDF原理及应用_第3张图片

你可能感兴趣的:(自然语言处理)