gpt4 book ai didi

python - 如何使用 Pandas 数据框获取 tfidf?

转载 作者:IT老高 更新时间:2023-10-28 21:10:21 26 4
gpt4 key购买 nike

我想从下面的文档中计算 tf-idf。我正在使用 python 和 pandas。

import pandas as pd
df = pd.DataFrame({'docId': [1,2,3],
'sent': ['This is the first sentence','This is the second sentence', 'This is the third sentence']})

首先,我认为我需要为每一行获取 word_count。于是我写了一个简单的函数:

def word_count(sent):
word2cnt = dict()
for word in sent.split():
if word in word2cnt: word2cnt[word] += 1
else: word2cnt[word] = 1
return word2cnt

然后,我将它应用到每一行。

df['word_count'] = df['sent'].apply(word_count)

但现在我迷路了。如果我使用 Graphlab,我知道有一种简单的方法可以计算 tf-idf,但我想坚持使用开源选项。 Sklearn 和 gensim 都显得势不可挡。获取 tf-idf 最简单的解决方案是什么?

最佳答案

Scikit-learn 的实现非常简单:

from sklearn.feature_extraction.text import TfidfVectorizer
v = TfidfVectorizer()
x = v.fit_transform(df['sent'])

您可以指定很多参数。请参阅文档 here

fit_transform 的输出将是一个稀疏矩阵,如果你想将其可视化,你可以这样做 x.toarray()

In [44]: x.toarray()
Out[44]:
array([[ 0.64612892, 0.38161415, 0. , 0.38161415, 0.38161415,
0. , 0.38161415],
[ 0. , 0.38161415, 0.64612892, 0.38161415, 0.38161415,
0. , 0.38161415],
[ 0. , 0.38161415, 0. , 0.38161415, 0.38161415,
0.64612892, 0.38161415]])

关于python - 如何使用 Pandas 数据框获取 tfidf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37593293/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com