增加 TF IDF 矩阵项的权重

Posted

技术标签:

【中文标题】增加 TF IDF 矩阵项的权重【英文标题】:Increasing weights of TF IDF matrix terms 【发布时间】:2017-08-14 12:44:46 【问题描述】:

我有用于文档的 tf idf 矩阵。我有一些术语我想在 TFIDF 矩阵中加倍权重。说我有矩阵 weightTerms 并且我有以下代码

from sklearn.feature_extraction.text import CountVectorizer

count_vectorizer = CountVectorizer(min_df=1,stop_words="english")
term_freq_matrix = count_vectorizer.fit_transform(vectoriser.mydoclist)
# print "Vocabulary:", count_vectorizer.vocabulary_

from sklearn.feature_extraction.text import TfidfTransformer


tfidf = TfidfTransformer(norm="l2")
tfidf.fit(term_freq_matrix)

tf_idf_matrix = tfidf.transform(term_freq_matrix)
print len(count_vectorizer.get_feature_names())
for term in count_vectorizer.get_feature_names(): 
    # [k for k in count_vectorizer.get_feature_names() if '#' in k]:
    # if '#' in term:
    print term.encode('utf-8')# print np.matrix(tf_idf_matrix.todense())
# np.savetxt("foo.csv", (np.matrix(tf_idf_matrix.todense())), delimiter=",")
# np.savetxt("foo.csv", tf_idf_matrix.toarray(),fmt="%.4e") 

【问题讨论】:

【参考方案1】:

您不一定可以这样做,即使您找到了方法/hack 也不建议这样做。一种技巧是集成多个加权模型——每个模型一个特征。这不是经过测试的方法,因此请谨慎操作。

执行递归特征消除 (RFE) 以了解它如何影响您的准确度 + 精确度 + 召回率。此外,使用随机森林基准对您的特征进行排名,以便能够查看哪个特征使您的模型具有更大的方差。

【讨论】:

以上是关于增加 TF IDF 矩阵项的权重的主要内容,如果未能解决你的问题,请参考以下文章

文本分类基于类信息的TF-IDF权重分析与改进

TF-IDF介绍

通俗理解TF-IDF

使用 sklearn 获取单词的 tf-idf 权重

13-垃圾邮件分类2

文本分类采用同义词的改进TF-IDF权重的文本分类