ValueError: 预期接收可迭代的原始文本文档,但接收到字符串对象。使用tfidf和选择特征预测新测试数据

我已经使用sklearn的朴素贝叶斯分类器构建了一个模型。我需要知道如何预测一个输入的句子

当我直接硬编码句子时,它工作得很好,看起来像这样

new_sentence = ['its so broken']new_testdata_tfidf= tfidf.transform(new_sentence) #将其转换为矩阵以查看训练数据上的TFIDF得分fit_feature_selection = selection.transform(new_testdata_tfidf) #转换新数据以查看特征是否被移除,因为在tfidf之后我使用了chi2选择特征.predicted = classifier.predict(feature_selection )#然后进行预测。分类输出,类别是-1,这是正确答案

我需要手动输入文本数据作为输入,所以我使用了如下方式

new_sentence = input[('')] #我输入相同的句子 its so broken new_testdata_tfidf= tfidf.transform(new_sentence) #将其转换为矩阵以查看训练数据上的TFIDF得分fit_feature_selection = selection.transform(new_testdata_tfidf) #转换新数据以查看特征是否被移除,因为在tfidf之后我使用了chi2选择特征.predicted = classifier.predict(feature_selection )

但它给我输出了

  File "C:\Users\Myfile\OneDrive\Desktop\model.py", line 170, in <module>   new_testdata_tfidf= tfidf.transform(new_sentence)   File "E:\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1898, in transform    X = super().transform(raw_documents)  File "E:\anaconda3\lib\site-packages\sklearn\feature_extraction\text.py", line 1265, in transform    "Iterable over raw text documents expected, "ValueError: Iterable over raw text documents expected, string object received.

如何解决这个问题?任何帮助都非常感激。


回答:

你试过将新句子作为数组传递吗?即

new_testdata_tfidf= tfidf.transform([new_sentence])

在第一个实例中,你传递了一个包含一个字符串元素的数组,而在另一个实例中,你只是传递了一个字符串

Related Posts

如何对SVC进行超参数调优?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

如何在初始训练后向模型添加训练数据?

我想在我的scikit-learn模型已经训练完成后再…

使用Google Cloud Function并行运行带有不同用户参数的相同训练作业

我正在寻找一种方法来并行运行带有不同用户参数的相同训练…

加载Keras模型,TypeError: ‘module’ object is not callable

我已经在StackOverflow上搜索并阅读了文档,…

在计算KNN填补方法中特定列中NaN值的”距离平均值”时

当我从头开始实现KNN填补方法来处理缺失数据时,我遇到…

使用巨大的S3 CSV文件或直接从预处理的关系型或NoSQL数据库获取数据的机器学习训练/测试工作

已关闭。此问题需要更多细节或更清晰的说明。目前不接受回…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注