合并两个 countvectorizer 时出现 isnan 错误

Posted

技术标签:

【中文标题】合并两个 countvectorizer 时出现 isnan 错误【英文标题】:I get isnan error when I merge two countvectorizers 【发布时间】:2019-10-05 22:13:41 【问题描述】:

我要进行方言文本分类,我有这个代码:

from sklearn.naive_bayes import MultinomialNB
from sklearn.feature_extraction.text import CountVectorizer

vectorizerN = CountVectorizer(analyzer='char',ngram_range=(3,4))
XN = vectorizerN.fit_transform(X_train)

vectorizerMX = CountVectorizer(vocabulary=a['vocabs'])
MX = vectorizerMX.fit_transform(X_train)

from sklearn.pipeline import FeatureUnion
combined_features = FeatureUnion([('CountVectorizer', MX),('CountVect', XN)])
combined_features.transform(test_data)

当我运行这段代码时,我得到了这个错误:

TypeError: ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ''safe''

我正在关注这篇文章中的代码: Merging CountVectorizer in Scikit-Learn feature extraction

另外,之后我该如何训练和预测?

【问题讨论】:

【参考方案1】:

您应该联合 vectorizerNvectorizerMX,而不是 MXXN。 将行改为

combined_features = FeatureUnion([('CountVectorizer', vectorizerMX), ('CountVect', vectorizerN)])

【讨论】:

然后我做combined_features.fit_transform(X_train)?为什么他在结合之前就这样做了? X_train 上安装了两个矢量化器。您希望将 test_data 映射到矢量化器的并集。这就是为什么你必须做combined_features.transform(test_data)。我是否遗漏了您的问题?

以上是关于合并两个 countvectorizer 时出现 isnan 错误的主要内容,如果未能解决你的问题,请参考以下文章

当我合并两个 Pandas 数据帧时出现 MemoryError

尝试合并两个不同数据框的两列时出现问题?

在 Python 中合并数据框时出现重复的行

与熊猫外部合并时出现重复问题

训练模型时出现不兼容行维度的值错误

尝试从分支合并时出现 SVN 错误