【问题标题】:what is the difference between tfidf vectorizer and tfidf transformertfidf vectorizer 和 tfidf 转换器有什么区别
【发布时间】:2019-07-11 17:32:46
【问题描述】:

我知道tfidf vectorizer 的公式是

Count of word/Total count * log(Number of documents / no.of documents where word is present)

我看到 scikit learn 中有 tfidf 转换器,我只是想区分它们。我找不到任何有用的东西。

【问题讨论】:

  • 参考文档TfidfTransformer。它可能会帮助你
  • @AkshayNevrekar 这有点令人困惑。我无法理解使用的公式。我希望这里有人能提供帮助。

标签: python scikit-learn nltk tf-idf tfidfvectorizer


【解决方案1】:

TfidfVectorizer 用于句子,而 TfidfTransformer 用于现有的计数矩阵,例如 CountVectorizer 返回的计数矩阵

【讨论】:

  • 所以它基本上将countvectorizer返回的稀疏计数矩阵转换为tfidf矩阵。
【解决方案2】:

使用 Tfidftransformer,您将使用 CountVectorizer 计算字数,然后计算 IDF 值,然后再计算 Tf-idf 分数。使用 Tfidfvectorizer,您将一次完成所有三个步骤。

我认为你应该阅读this article which sums it up with an example

【讨论】:

    【解决方案3】:

    Artem 的回答几乎总结了差异。 为了让事情更清楚,这里有一个引用自here 的示例。

    TfidfTransformer可以如下使用:

    from sklearn.feature_extraction.text import CountVectorizer
    from sklearn.feature_extraction.text import TfidfTransformer
    
    
    train_set = ["The sky is blue.", "The sun is bright."] 
    
    vectorizer = CountVectorizer(stop_words='english')
    trainVectorizerArray =   vectorizer.fit_transform(article_master['stemmed_content'])
    
    transformer = TfidfTransformer()
    res = transformer.fit_transform(trainVectorizerArray)
    
    print ((res.todense()))
    
    
    ## RESULT:  
    
    Fit Vectorizer to train set
    [[1 0 1 0]
     [0 1 0 1]]
    
    [[0.70710678 0.         0.70710678 0.        ]
     [0.         0.70710678 0.         0.70710678]]
    

    计数特征的提取、TF-IDF 归一化和逐行欧几里得归一化可以使用 TfidfVectorizer 在一次操作中完成:

    from sklearn.feature_extraction.text import TfidfVectorizer
    
    tfidf = TfidfVectorizer(stop_words='english')
    res1 = tfidf.fit_transform(train_set)
    print ((res1.todense()))
    
    
    ## RESULT:  
    
    [[0.70710678 0.         0.70710678 0.        ]
     [0.         0.70710678 0.         0.70710678]]
    

    两个过程都会产生一个包含相同值的稀疏矩阵。
    其他有用的参考资料是 tfidfTransformer.fit_transformcountVectoriser_fit_transformtfidfVectoriser

    【讨论】:

      猜你喜欢
      • 2020-12-05
      • 2015-07-13
      • 2023-04-05
      • 2017-07-20
      • 2018-11-22
      • 2020-11-05
      • 1970-01-01
      • 2019-03-16
      • 2020-05-07
      相关资源
      最近更新 更多