You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python使用朴素贝叶斯做文本分类时出现KeyError如何解决

错误原因

model.predict()返回的结果已经是你训练时传入的category列的类别值,而非数据的行索引。你尝试用预测得到的类别字符串作为行索引,去取默认是整数索引的train.category序列的值,自然触发KeyError。

修复方案

直接返回预测结果即可,无需再从训练集中取值:

# 优化后的预测函数
def predict_category(s, model=model):
    pred = model.predict([s])
    return pred[0]

如果有特殊场景需要从训练集校验取值,可使用布尔索引:

def predict_category(s, train=train, model=model):
    pred = model.predict([s])
    return train.loc[train['category'] == pred[0], 'category'].iloc[0]

额外说明

如果你报错的Key是首字母大写的Greeting,和你CSV里的小写greeting不一致,可以检查下CSV文件的category列是否存在大小写混杂的情况,避免后续预测匹配异常。

内容的提问来源于stack exchange,提问作者zyzz

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 13:24:06