【问题标题】:Tfidfvectorizer from sklearn - how to get matrix来自 sklearn 的 Tfidfvectorizer - 如何获取矩阵
【发布时间】:2019-06-03 12:19:00
【问题描述】:

我想从 sklearn 的 Tfidfvectorizer 对象中获取矩阵。这是我的代码:

from sklearn.feature_extraction.text import TfidfVectorizer
text = ["The quick brown fox jumped over the lazy dog.",
        "The dog.",
        "The fox"]

vectorizer = TfidfVectorizer()
vectorizer.fit_transform(text)

这是我尝试并返回错误的方法:

vectorizer.toarray()
--------------------------------------------------------------------------- 
AttributeError                            Traceback (most recent call last) <ipython-input-117-76146e626284> in <module>()   
----> 1 vectorizer.toarray()

AttributeError: 'TfidfVectorizer' object has no attribute 'toarray'

又一次尝试

vectorizer.todense()
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-118-6386ee121184> in <module>()
----> 1 vectorizer.todense()

AttributeError: 'TfidfVectorizer' object has no attribute 'todense'

【问题讨论】:

    标签: python scikit-learn tf-idf tfidfvectorizer


    【解决方案1】:

    请注意,vectorizer.fit_transform 返回您想要获取的术语文档矩阵。所以保存它返回的内容,并使用todense,因为它将是稀疏格式:

    返回:X:稀疏矩阵,[n_samples, n_features]。 Tf-idf 加权文档术语矩阵。

    a = vectorizer.fit_transform(text)
    a.todense()
    
    matrix([[0.36388646, 0.27674503, 0.27674503, 0.36388646, 0.36388646,
             0.36388646, 0.36388646, 0.42983441],
            [0.        , 0.78980693, 0.        , 0.        , 0.        ,
             0.        , 0.        , 0.61335554],
            [0.        , 0.        , 0.78980693, 0.        , 0.        ,
             0.        , 0.        , 0.61335554]])
    

    【讨论】:

      【解决方案2】:

      .fit_transform 本身返回一个文档术语矩阵。所以,你这样做:

      matrix = vectorizer.fit_transform(text)
      

      matrix.todense() 用于将稀疏矩阵转换为密集矩阵。
      matrix.shape 会给你矩阵的形状。

      【讨论】:

        猜你喜欢
        • 2019-07-04
        • 2018-04-08
        • 2021-03-13
        • 2013-04-03
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 2011-09-26
        • 1970-01-01
        相关资源
        最近更新 更多