合并两个 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】:您应该联合 vectorizerN
和 vectorizerMX
,而不是 MX
和 XN
。
将行改为
combined_features = FeatureUnion([('CountVectorizer', vectorizerMX), ('CountVect', vectorizerN)])
【讨论】:
然后我做combined_features.fit_transform(X_train)?为什么他在结合之前就这样做了?X_train
上安装了两个矢量化器。您希望将 test_data
映射到矢量化器的并集。这就是为什么你必须做combined_features.transform(test_data)
。我是否遗漏了您的问题?以上是关于合并两个 countvectorizer 时出现 isnan 错误的主要内容,如果未能解决你的问题,请参考以下文章