如何检查单个朴素贝叶斯预测的结果?

2024-06-16 17:53:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我做了一个朴素的贝叶斯预测模型。一切进展顺利,即使只有一个输入,也能预测。我想预测一个数据,并将所有预测结果保存到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()

我在哪里犯了错误? 有人能解决吗


Tags: csv数据inputdata错误labeltweettransformed
2条回答

也许是因为我还不懂如何使用python。实际上我不需要做循环,因为它已经自动循环了所有数据

代码:

tweet_input_transformed = vectorizer.transform(data_label)
prediction = classifer.predict(tweet_input_transformed)

results = pd.DataFrame({
        "Labeled Data" : data_label,
        "Label" : prediction
        })
results.to_csv("Hasil_NBC.csv", index = False)

if语句中,您试图将prediction变量的值与字符串进行比较。这没有意义,因为prediction变量的类型应该是ndarray-这是scikit learn中朴素贝叶斯分类器的predict()方法的返回类型

此外,稍后在代码中,您将尝试将字符串附加到整数(tweet_pred,该整数在for循环中重新定义)。这也行不通

要将prediction的内容保存在文件中(每行一个值),可以执行以下操作:

prediction = classifer.predict(tweet_input_transformed)
with open("\path\to\a\file.txt", 'w') as f:
    f.write('\n'.join(prediction))

相关问题 更多 >