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

标签 python scikit-learn ranking tf-idf

我在部分文本数据上使用 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 值排名放入两个 Series 对象中,如何我应该从代码的最后一行开始吗?

谢谢。

我正在阅读类似的 thread但不知道该怎么做。也许有人能够将该线程中显示的提示与我在此处的问题联系起来。

最佳答案

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))

关于python - 按 tf-idf 对 TfidfVectorizer 输出进行排序(从最低到最高,反之亦然),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45805493/

相关文章:

php - 通过 JSON 将数据 Python 传递给 PHP

Python - SkLearn 逻辑回归 : One-by-one train instance

scikit-learn - 如何在没有交叉验证的情况下运行GridSearchCV?

mysql - 在 GROUP BY 中使用 LIMIT 来获得每组 N 个结果?

php - 对总计未存储在数据库中的值的总和进行排名

Python kludge 将 UCS-2(UTF-16?)读取为 ASCII

python - Jinja2 的多部分模板问题

python - 通过单行字典用决策树模型进行预测

C# Generic List<T> - 如何为每个项目随机分配一个 "Rank"?

python - 按键对列表进行排序并在不重新计算的情况下取出值