Python 当我合并两个计数器向量器时,我得到一个错误

Python 当我合并两个计数器向量器时,我得到一个错误,python,scikit-learn,nlp,text-classification,countvectorizer,Python,Scikit Learn,Nlp,Text Classification,Countvectorizer,我将使用方言文本分类,我有以下代码: 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 = Cou

我将使用方言文本分类,我有以下代码:

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''
我在这篇文章中遵循了代码:


还有,我以后如何训练和预测呢?

你应该联合
vectorizerN
vectorizerMX
,而不是
MX
XN
。 换行

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

然后我做组合特征。拟合变换(X火车)?为什么他在合并之前要这样做呢?这两个矢量器安装在
X\u列车上
。您希望
test\u数据
映射到矢量器的并集。这就是为什么您必须执行组合功能。转换(测试数据)。你的问题我遗漏了什么吗?