zoukankan      html  css  js  c++  java
  • TFIDF算法介绍

    1、TF-IDF算法介绍及名词解释

      TF-IDF(Term Frequency–Inverse Document Frequency,词频-逆向文件频率)是一种用于信息检索、文本处理、数据挖掘等领域的常用加权技术。TF-IDF是一种统计方法,用以评估一字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。总结来说就是,一个词语在一篇文章中出现次数越多,同时在所有文档中出现次数越少,越能够代表该文章。  

      TF-IDF的主要思想是:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上就是 TF*IDF,其中 TF(Term Frequency),表示词条在文章Document 中出现的频率;IDF(Inverse Document Frequency),其主要思想就是,如果包含某个词 Word的文档越少,则这个词的区分度就越大,也就是 IDF 越大。对于如何获取一篇文章的关键词,我们可以计算这边文章出现的所有名词的 TF-IDF,TF-IDF越大,则说明这个名词对这篇文章的区分度就越高,取 TF-IDF 值较大的几个词,就可以当做这篇文章的关键词。

    (1)TF是词频(Term Frequency)
            词频(TF)表示词条(关键字)在文本中出现的频率。 这个数字通常会被归一化(一般是词频除以文章总词数),以防止它偏向长的文件。即:

     

      TF的计算公式为:

    $tf_{ij}=\frac{n_{ij}}{\sum_{k}^{} n_{k,j}}$

    其中 ni,j 是该词在文件dj中出现的次数,分母则是文件dj中所有词汇出现的次数总和;

    (2) IDF是逆向文件频率(Inverse Document Frequency)
            逆向文件频率 (IDF) :某一特定词语的IDF,可以由总文件数目除以包含该词语的文件的数目,再将得到的商取对数得到。如果包含词条t的文档越少,IDF越大,则说明词条具有很好的类别区分能力。

      IDF的计算公式为:

    $idf_{i}=log\frac{\left | D \right |}{\left |\left \{ j:t_{i}\epsilon d_{j} \right \}  \right |+1}$

       其中,|D| 是语料库中的文件总数。 |{j:ti∈dj}| 表示包含词语 ti 的文件数目(即 ni,j≠0 的文件数目)。如果该词语不在语料库中,就会导致分母为零,因此一般情况下使用 1+|{j:ti∈dj}|。 

    (3)TF-IDF实际上是:TF * IDF
           某一特定文件内的高词语频率,以及该词语在整个文件集合中的低文件频率,可以产生出高权重的TF-IDF。因此,TF-IDF倾向于过滤掉常见的词语,保留重要的词语。

           公式为:TF-IDF=TF*IDF     

           注:  TF-IDF算法非常容易理解,并且很容易实现,但是其简单结构并没有考虑词语的语义信息,无法处理一词多义与一义多词的情况。

    2、TF-IDF的使用场景

      在做特征工程时,常遇到这样的问题:从一个短语或短句中提取关键字构造新特征,然后将新特征代入分类或者回归模型,是否需要使用TF-IDF方法?首先,TF是词频,即它需要在一个文本中出现多次才有意义,如果在短句中,每个词最多只出现一次,那么计算TF不如直接判断其是否存在。

      另外,TF-IDF的结果展示的是某一词针对于它所在文档的重要性,而不是对比两文档的差异。如果两个短语属于不同类别,新特征对于提取分类特征可能没有意义,但是对于生成文摘就是有意义的关键字。对于此类问题,建议使用:先切分出关键词,将是否包含该关键词作为新特征,然后对新特征和目标变量做假设检验,以判断是否保留该变量的方法提取新特征。

    3、优缺点

       1. 优点是算法的容易理解,便于实现。

       2.缺点:IDF的简单结构并不能有效地反映单词的重要程度和特征词的分布情况,使其无法很好的完成对权值的调整功能,所以在一定程度上该算法的精度并不是很高。除此之外,算法也没哟体现位置信息,对于出现在文章不同位置的词语都是一视同仁的,而我们知道,在文章首尾的词语势必重要性要相对高点。据此,我们可以或许也可以将处于文章不同位置的词语赋予不同的权重。

    参考:

    https://www.cnblogs.com/tan2810/p/11202874.html

    https://blog.csdn.net/zwqjoy/article/details/91388809

  • 相关阅读:
    mysql中删除表
    js上传文件获取客户端地址
    form表单普通提交预览显示,读取显示tmp文件
    PHP中获取中英文混合字符串长度[主要是指个数,而不是字符串长度](转)
    离开页面提醒功能 (实现博客园离开编辑页面时的提醒功能)(转)
    Google maps API开发(一)(转)
    Python的getattr(),setattr(),delattr(),hasattr()
    Python读写文件
    Python命令行解析argparse常用语法使用简介
    面向对象设计与分析实例
  • 原文地址:https://www.cnblogs.com/liuxiaochong/p/13427872.html
Copyright © 2011-2022 走看看