【问题标题】:I get isnan error when I merge two countvectorizers合并两个 countvectorizer 时出现 isnan 错误
【发布时间】: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

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

【问题讨论】:

    标签: python scikit-learn nlp text-classification countvectorizer


    【解决方案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)。我是否遗漏了您的问题?
    猜你喜欢
    • 2013-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    • 2022-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多