zoukankan      html  css  js  c++  java
  • TF-IDF基本原理

    1.TF-IDF介绍

    TF/IDF(term frequency–inverse document frequency)用以评估字词 对于一个文件集其中一份文件的重要程度。字词的重要性随着它在文件中出 现的次数成正比增加,随着它在语料库中出现的频率下降。注意前后的中心词不一样。

    • 词频 (term frequency, TF) 词语在文件中出现的次数,一般进行归一化,防止长文件数字过大。(同一个词语在长文件里可能会比短文件有更高的词频,而不管该词语重要与否。)

    • 逆向文件频率 (inverse document frequency, IDF) 是一个词语普遍重要性的度量。总文件数除以包含该词语文件数,再将得到的商取对数

    • 结论:在某特定文件内的高频率词语,但是该词语在整个文件集合中在较少 文件中出现,TF-IDF值较高。

    TF-IDF的主要思想:如果某个词或短语在一篇文章中出现的频率TF高,并且在其他文章中很少出现,则认为此词或者短语具有很好的类别区分能力,适合用来分类。TF-IDF实际上是:TF * IDF,TF词频(Term Frequency),IDF逆向文件频率(Inverse Document Frequency)。 

    IDF的主要思想是:如果包含词条t的文档越少,也就是n越小,IDF越大,则说明词条t具有很好的类别区分能力。如果某一类文档C中包含词条t的文档数为m,而其它类包含t的文档总数为k,显然所有包含t的文档数n=m+k,当m大的时候,n也大,按照IDF公式得到的IDF的值会小,就说明该词条t类别区分能力不强。(另一说:IDF逆向文件频率(Inverse Document Frequency)是指果包含词条的文档越少,IDF越大,则说明词条具有很好的类别区分能力。)但是实际上,如果一个词条在一个类的文档中频繁出现,则说明该词条能够很好代表这个类的文本的特征,这样的词条应该给它们赋予较高的权重,并选来作为该类文本的特征词以区别与其它类文档。这就是IDF的不足之处.

    公式:

    ni,j表示某词在文件出现的次数,分母是文件中字数总和 

    其中| D |表示语料库文件总数,表示包含某词的文件总数。

    最后    TF-IDF=TFij*IDFi

    2.TF-IDF文章相似度计算流程:

    • A、使用TF-IDF算法,分别找出两篇文章的关键词;

    • B、分别取每篇文章TF/IDF值top15(戒者其他值)的词,合并成一个 集合,计算该集合下,每篇文章关键词的相对词频;

    • C、分别生成两篇文章的词频向量;

    • D、计算两个向量的余弦相似度,值越大就表示越相似。 

    3.应用举例

    • S1:香蕉和苹果都是水果。 

    • S2:香蕉和苹果都是水果,也是常见的水果。

    • 1)分词:S1:香蕉/和/苹果/都/是/水果/。  S2:香蕉/和/苹果/都/是 /水果/,/也/是/常见/的/水果/。

    • 2)合并所有的词为集合(无重复词)(香蕉  和  苹果  都  是  常见  的  水果 也)

    • 3)计算每个句子词频向量: • v1=[1,1,1,1,1,0,0,1,0],v2=[1,1,1,1,2,1,1,2,1]

    • 4)计算余弦相似度 

  • 相关阅读:
    java多线程api
    java多线程
    java代理
    java程序员常用的linux命令
    java泛型
    java反射
    日期和时间
    java集合
    Nodejs mac版安装
    for in、each; for 、forEach、map
  • 原文地址:https://www.cnblogs.com/bep-feijin/p/9430631.html
Copyright © 2011-2022 走看看