python 如何在 sklearn 中打印 tf-idf 分数矩阵
How to print tf-idf scores matrix in sklearn in python
我使用 sklearn 获取 tf-idf 值如下。
from sklearn.feature_extraction.text import TfidfVectorizer
myvocabulary = ['life', 'learning']
corpus = {1: "The game of life is a game of everlasting learning", 2: "The unexamined life is not worth living", 3: "Never stop learning"}
tfidf = TfidfVectorizer(vocabulary = myvocabulary, ngram_range = (1,3))
tfs = tfidf.fit_transform(corpus.values())
现在我想在矩阵中查看我计算的 tf-idf 分数,如下所示。
我试着做了如下。
idf = tfidf.idf_
dic = dict(zip(tfidf.get_feature_names(), idf))
print(dic)
但是,我得到如下输出。
{'life': 1.2876820724517808, 'learning': 1.2876820724517808}
请帮帮我。
感谢 σηγ 我可以从
找到答案
feature_names = tfidf.get_feature_names()
corpus_index = [n for n in corpus]
import pandas as pd
df = pd.DataFrame(tfs.T.todense(), index=feature_names, columns=corpus_index)
print(df)
提问者的回答是正确的,我想做一个调整。
上面的代码给出
Doc1 Doc2
特征 1
特征 2
矩阵应该是这样的
feature1 feature2
文档 1
文件 2
所以你可以做一个简单的改变来得到它
df = pd.DataFrame(tfs.todense(), index=corpus_index, columns=feature_names)
我找到了另一种可能的方法,使用 toarray() 函数
import pandas as pd
print(tfidf.get_feature_names())
print(tfs.toarray())
print(pd.DataFrame(tfs.toarray(),
columns=tfidf.get_feature_names(),
index=['doc1','doc2','doc3'])) `
我使用 sklearn 获取 tf-idf 值如下。
from sklearn.feature_extraction.text import TfidfVectorizer
myvocabulary = ['life', 'learning']
corpus = {1: "The game of life is a game of everlasting learning", 2: "The unexamined life is not worth living", 3: "Never stop learning"}
tfidf = TfidfVectorizer(vocabulary = myvocabulary, ngram_range = (1,3))
tfs = tfidf.fit_transform(corpus.values())
现在我想在矩阵中查看我计算的 tf-idf 分数,如下所示。
我试着做了如下。
idf = tfidf.idf_
dic = dict(zip(tfidf.get_feature_names(), idf))
print(dic)
但是,我得到如下输出。
{'life': 1.2876820724517808, 'learning': 1.2876820724517808}
请帮帮我。
感谢 σηγ 我可以从
feature_names = tfidf.get_feature_names()
corpus_index = [n for n in corpus]
import pandas as pd
df = pd.DataFrame(tfs.T.todense(), index=feature_names, columns=corpus_index)
print(df)
提问者的回答是正确的,我想做一个调整。 上面的代码给出
Doc1 Doc2
特征 1
特征 2
矩阵应该是这样的
feature1 feature2
文档 1
文件 2
所以你可以做一个简单的改变来得到它
df = pd.DataFrame(tfs.todense(), index=corpus_index, columns=feature_names)
我找到了另一种可能的方法,使用 toarray() 函数
import pandas as pd
print(tfidf.get_feature_names())
print(tfs.toarray())
print(pd.DataFrame(tfs.toarray(),
columns=tfidf.get_feature_names(),
index=['doc1','doc2','doc3'])) `