我希望将这个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