【问题标题】:Modify tf-idf vectorizer for some keywords修改一些关键字的 tf-idf vectorizer
【发布时间】:2017-01-15 08:49:51
【问题描述】:

我正在创建一个 tf-idf 矩阵来查找余弦相似度。但我希望集合中的一些常用词具有更大的权重(即 tf-idf 值)。

tfidf_vectorizer = TfidfVectorizer()
tfidf_matrix = tfidf_vectorizer.fit_transform(documents)

如何修改上述 tfidf_matrix 以用于特定集合中的单词。

【问题讨论】:

    标签: python machine-learning scipy nlp nltk


    【解决方案1】:

    我使用将 csr 类型的 tfidf-matrix 转换为二维数组,

    my_matrix = tfidf_matrix.toarray()
    

    然后,找出关键字的索引,

    tfidf_vectorizer.vocabulary_.get(keyword)
    

    之后,迭代二维矩阵并根据要求更改 tf-idf 值。这里,keyword_list 包含我们要修改 tf-idf 值的关键字的索引。

        for i in range(0, len(my_matrix)):
        for key in keyword_list:
            if key != None:
                key = (int)(key)
            if my_matrix[i][key] > 0.0:
                my_matrix[i][key] = new_value
    

    再次,使用将 my_matrix 更改为 csr_type,

    tfidf_matrix = sparse.csr_matrix(my_matrix)
    

    因此,针对关键字列表修改了 tfidf_matrix。

    【讨论】:

      猜你喜欢
      • 2017-06-19
      • 2018-11-27
      • 2020-07-21
      • 1970-01-01
      • 2018-05-27
      • 1970-01-01
      • 2016-12-01
      • 2015-05-07
      • 2018-12-04
      相关资源
      最近更新 更多