首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用TfidfVectorizer的词频

使用TfidfVectorizer的词频
EN

Stack Overflow用户
提问于 2020-03-11 17:32:28
回答 1查看 415关注 0票数 0

我试着用TF-以色列国防军计算消息数据的单词频率。到目前为止我有这个

代码语言:javascript
复制
import nltk
from sklearn.feature_extraction.text import TfidfVectorizer

new_group['tokenized_sents'] = new_group.apply(lambda row: nltk.word_tokenize(row['message']),axis=1).astype(str).lower()
vectoriser=TfidfVectorizer()
new_group['tokenized_vector'] = list(vectoriser.fit_transform(new_group['tokenized_sents']).toarray())

然而,使用上面的代码,我得到了一堆零,而不是单词频率。如何解决这个问题以获得消息的正确编号。这是我的数据

代码语言:javascript
复制
user_id     date          message      tokenized_sents      tokenized_vector
X35WQ0U8S   2019-02-17    Need help    ['need','help']      [0.0,0.0]
X36WDMT2J   2019-03-22    Thank you!   ['thank','you','!']  [0.0,0.0,0.0]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-11 18:09:42

首先,对于计数,您不想使用TfidfVectorizer,因为它是规范化的。您想要使用CountVectorizer。其次,您不需要标记单词,因为sklearn在TfidfVectorizer和CountVectorizer的令牌程序中都有一个构建。

代码语言:javascript
复制
#add whatever settings you want
countVec =CountVectorizer()

#fit transform
cv = countVec.fit_transform(df['message'].str.lower())

#feature names
cv_feature_names = countVec.get_feature_names()

#feature counts
feature_count = cv.toarray().sum(axis = 0)

#feature name to count
dict(zip(cv_feature_names, feature_count)) 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60641588

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档