运行Python高校招生聊天机器人代码时触发KeyError: 'text'的原因咨询
运行Python高校招生聊天机器人代码时触发KeyError: 'text'的原因咨询
嘿,我来帮你揪出这个错误的根源~
你遇到的KeyError: 'text'本质上是代码里引用的列名和CSV文件实际的列名不匹配导致的:
你的代码里写了
text_matrix = vectorizer.fit_transform(admissions_df['text']),试图从DataFrame里取出名为text的列,但从后面构建聊天对的代码pairs = [(preprocess(q), preprocess(r)) for q, r in zip(admissions_df['question'], admissions_df['response'])]能看出来,你的CSV文件里实际的列名应该是question和response,根本没有text这一列!另外,你代码里那行单独的
open('/Users/kk/Documents/Python Programs/admissions_data.csv')完全没用,pd.read_csv()会自己处理文件的打开和关闭,直接删掉就行,避免占用不必要的资源。
快速修复方案
把涉及'text'的那行代码,改成你实际要用来做相似度匹配的列(这里应该是问题列question):
# 原错误代码 # text_matrix = vectorizer.fit_transform(admissions_df['text']) # 修正后 text_matrix = vectorizer.fit_transform(admissions_df['question'])
额外检查建议
- 打开你的
admissions_data.csv文件,确认第一行的列标题是不是question和response,有没有拼写错误、大小写不一致的情况(比如写成Question或者quesiton) - 确保
pd.read_csv()确实正确读取了所有列,可以在读取后加一行print(admissions_df.columns)来查看当前DataFrame的所有列名,验证是否和预期一致
这样修改后,应该就能解决这个KeyError问题啦~
备注:内容来源于stack exchange,提问作者user21439261
相关产品推荐
相关产品推荐

