【发布时间】:2020-09-23 15:07:52
【问题描述】:
我制作了一个朴素贝叶斯模型进行预测。一切顺利,即使只有一个输入也可以预测。我想预测数据并将预测的所有结果保存到 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()
我在哪里做错了? 谁能解决?
【问题讨论】:
-
欢迎来到 SO!您能否发布预测变量的形状?
-
实际上,如果这里的
if-else确实有效,那将完全没有必要——一个简单的赋值tweet_pred = prediction就可以完成这项工作(为什么tweet_pred = 0在循环中?)
标签: python machine-learning scikit-learn naivebayes