首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >20newsgroup dataset.TypeError上的增强频率:“int”对象不可迭代

20newsgroup dataset.TypeError上的增强频率:“int”对象不可迭代
EN

Stack Overflow用户
提问于 2018-12-18 02:44:43
回答 1查看 154关注 0票数 1

我正在使用Python处理20news using数据集。在它上使用CountVectorizer,然后使用gensim api来增加词频。我试着拟合它,但得到了这个错误。

下面是我的代码:

代码语言:javascript
复制
from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer(max_features=2000)
from sklearn.datasets import fetch_20newsgroups
twenty_train = fetch_20newsgroups(subset='train', shuffle=True)
X_train_counts = count_vect.fit_transform(twenty_train.data)
from gensim.sklearn_api import TfIdfTransformer
model = TfIdfTransformer(smartirs='atn')
tfidf_aug = model.fit_transform(X_train_counts())

在运行上面的代码后,我得到了这个错误:

TypeError: sparse matrix length is ambiguous; use getnnz() or shape[0]

在末尾使用getnz()后,如下所示。

代码语言:javascript
复制
tfidf_aug = model.fit_transform(X_train_counts().getnnz())

我得到了这个错误:

TypeError: 'int' object is not iterable

EN

回答 1

Stack Overflow用户

发布于 2019-01-19 16:48:52

正如前面提到的,TfidfTransformer的输入必须是(int,int)的迭代器。因此,在将稀疏矩阵转换为gensim模型之前,您必须对其进行处理。

尝尝这个

代码语言:javascript
复制
from sklearn.datasets import fetch_20newsgroups
twenty_train = fetch_20newsgroups(subset='train', shuffle=True)
from gensim.sklearn_api import TfIdfTransformer

from sklearn.feature_extraction.text import CountVectorizer
cv = CountVectorizer(max_features=2000)

X_train_counts = count_vect.fit_transform(twenty_train.data)

model = TfIdfTransformer(smartirs='atn')
tfidf_aug = model.fit_transform([[(i,j) for i,j in zip(a.data,a.indices)] for a in X_train_counts ])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53821303

复制
相关文章

相似问题

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