按tfidf对TfidfVectorizer输出进行排序(从最低到最高,反之亦然)

2024-10-01 09:17:02 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用sklearn的TfidfVectorizer()对部分文本数据进行处理,以了解每个特性(单词)的词频。我当前的代码如下

from sklearn.feature_extraction.text import TfidfVectorizer
tfidf = TfidfVectorizer(analyzer='word', stop_words = 'english')

# fit_transform on training data
X_traintfidf = tfidf.fit_transform(X_train)

如果我想将'X_traintfidf'中每个术语的tf idf值从最低到最高(反之亦然),比如top10,并将这些排序后的tf idf值排序成两个系列对象,那么我应该如何从代码的最后一行开始?在

谢谢。在

我正在读一个类似的thread,但不知道该怎么做。也许有人能把这个帖子里的提示和我这里的问题联系起来。在


Tags: 数据代码文本排序tftransform特性sklearn
1条回答
网友
1楼 · 发布于 2024-10-01 09:17:02

fit_transform()之后,您将可以通过get_feature_names()方法访问现有词汇表。您可以这样做:

terms = tfidf.get_feature_names()

# sum tfidf frequency of each term through documents
sums = X_traintfidf.sum(axis=0)

# connecting term to its sums frequency
data = []
for col, term in enumerate(terms):
    data.append( (term, sums[0,col] ))

ranking = pd.DataFrame(data, columns=['term','rank'])
print(ranking.sort_values('rank', ascending=False))

相关问题 更多 >