Python 3.x 了解TF-IDF分数

Python 3.x 了解TF-IDF分数,python-3.x,scikit-learn,feature-extraction,tf-idf,tfidfvectorizer,Python 3.x,Scikit Learn,Feature Extraction,Tf Idf,Tfidfvectorizer,我试图了解当我们使用gnTfidfVectorizer对文本文档进行矢量化时,tf和idf分数是如何计算的 我理解tf idf在两个方面的排名,我在下面写下 tf=根据单个单词在本文档中的重复频率对其进行排序,idf=根据同一单词在scikit中内置的“类似数据库”集合中的重复频率对其进行排序了解几乎所有可能单词的收集位置。这里我假设这个内置数据库就是语料库 tf=对单个工作进行排序,该工作在tfidfvectorize当前正在读取的文档中的行中重复的频率,idf=根据该工作在正在进行矢量化的整

我试图了解当我们使用gn
TfidfVectorizer
对文本文档进行矢量化时,tf和idf分数是如何计算的

我理解tf idf在两个方面的排名,我在下面写下

  • tf=根据单个单词在本文档中的重复频率对其进行排序,idf=根据同一单词在scikit中内置的“类似数据库”集合中的重复频率对其进行排序了解几乎所有可能单词的收集位置。这里我假设这个内置数据库就是语料库
  • tf=对单个工作进行排序,该工作在tfidfvectorize当前正在读取的文档中的行中重复的频率,idf=根据该工作在正在进行矢量化的整个文档中重复的次数进行排序 有人能解释一下我的理解是否正确吗?如果没有,请纠正我理解中的错误。

    确切答案如下:

    。。。术语频率(术语在给定文档中出现的次数)乘以idf分量,计算如下:

    idf(t)=log[(1+n_d)/(1+df(d,t))]+1

    其中,
    n\u d
    是文档总数,
    df(d,t)
    是包含术语
    t
    的文档数


    因此,关于tf,您的第一项是正确的,但这两项都忽略了idf是反向文档频率这一点,因此它是文档数量的比率(所有文档与至少包含一次术语的文档)。公式采用比率的对数,以使比率函数更“平坦”,并且可以通过类参数进行调整。

    根据idf(t)的公式,如果我只有一个要矢量化的文档,那么所有单词的idf(t)分数是否为1?是的,如果只有一个文档,idf就没有意义。确切的值可能不同,具体取决于公式,所有术语的值都是相同的。因此,如果我对单个文档使用Tfidfvectorizer,那么像“he”或“and”这样的常用词将获得高分。我说的对吗?对。你需要使用大量的文档