将tfidf矩阵打印到文件中

3
我希望将这个tfidf过程的结果以(word, 2.333)的形式打印到文本文件中。目前它先打印所有单词,然后是分数。我该怎么做?我还想按照idf值对文件进行排序,以便将最重要的单词放在顶部。
from sklearn.feature_extraction.text import TfidfTransformer
from sklearn.feature_extraction.text import TfidfVectorizer

results = []
with open("/Users/xyz/Documents/wholedata/X_tr.txt") as f:
    for line in f:
        results.extend(line.strip().split('\n'))

blob=list(results)

vectorizer= TfidfVectorizer(min_df=1)

X_train_tf=vectorizer.fit_transform(blob)
print(X_train_tf.shape)
idf=vectorizer._tfidf.idf_

p= (vectorizer.get_feature_names(), idf)
with open("tfidf.txt","w") as t:
    for x in p:
        print>>t, x
1个回答

2
您可以将这两个列表压缩为:
p = zip(vectorizer.get_feature_names(), idf)

将压缩列表排序为

p.sort(key = lambda t: t[1])

将它们打印在控制台上并写入文件。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接