我做了一个朴素的贝叶斯预测模型。一切进展顺利,即使只有一个输入,也能预测。我想预测一个数据,并将所有预测结果保存到csv文件中。但是当我尝试它时,我会收到一条错误消息,如下图所示。 这张图片显示了我是如何循环数据的,以及出现的错误
代码:
# load previously saved classifier and vectorizer
vectorizer, classifer = load()
print('\nPerform a test')
df = pd.read_csv('tweet_BARU.csv') #read the CSV file
data_label = df["full_text"]
tweet_pred = []
tweet_input = data_label
for sentence in data_label:
tweet_input_transformed = vectorizer.transform(sentence)
prediction = classifer.predict(tweet_input_transformed)
tweet_pred = 0
if (prediction=='neutral'):
tweet_pred.append('neutral')
elif (prediction=='positive'):
tweet_pred.append('positive')
else:
tweet_pred.append('negative')
错误:
---------------------------------------------------------------------------
ValueError Traceback (most recent call last)
<ipython-input-35-227d63cffdf9> in <module>()
11 prediction = classifer.predict(tweet_input_transformed)
12 tweet_pred = 0
---> 13 if (prediction=='neutral'):
14 tweet_pred.append('neutral')
15 elif (prediction=='positive'):
ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()
我在哪里犯了错误? 有人能解决吗
也许是因为我还不懂如何使用python。实际上我不需要做循环,因为它已经自动循环了所有数据
代码:
在
if
语句中,您试图将prediction
变量的值与字符串进行比较。这没有意义,因为prediction
变量的类型应该是ndarray
-这是scikit learn中朴素贝叶斯分类器的predict()
方法的返回类型此外,稍后在代码中,您将尝试将字符串附加到整数(
tweet_pred
,该整数在for循环中重新定义)。这也行不通要将
prediction
的内容保存在文件中(每行一个值),可以执行以下操作:相关问题 更多 >
编程相关推荐