如何使用TFIDF为python中的每一行提取关键字?

问题描述 投票:0回答:2

我有一列仅包含文本。我需要使用TFIDF从每一行中提取热门关键字。

示例

Input df['Text']
'I live in India',
'My favourite colour is Red', 
'I Love Programming'

预期输出:

'live','India'
'favourite','colour','red'
'love','programming'

我如何得到这个?我尝试编写下面的代码

tfidf = TfidfVectorizer(max_features=300, ngram_range = (2,2))
Y = df['Text'].apply(lambda x: tfidf.fit_transform(x))

我收到以下错误希望对原始文本文档进行迭代,收到字符串对象。

python python-3.x tf-idf tfidfvectorizer keyword-extraction
2个回答
1
投票

TfidfVectorizer fit_transform函数期望句子\文档的可迭代类型(例如集合,列表等)适合TfIdf得分。

所以您实际上应该做的是-

Y = tfidf.fit_transform(df['Text'])

0
投票

您的预期输出建议使用Toekenization,但是如果您想获得TFDIF分数,请使用以下代码:

df = pd.DataFrame({'Text':['I live in India', 'My favourite colour is Red', 'I Love Programming']})
tfidf = TfidfVectorizer(max_features=300, ngram_range = (2,2))

Y = tfidf.fit_transform(df['Text'])
df_Y = pd.DataFrame(Y.toarray(), columns = tfidf.get_feature_names())
df2 = pd.concat([df,df_Y], axis = 1)

这将返回具有实际文本和tfidf权重的新数据框。

© www.soinside.com 2019 - 2024. All rights reserved.