导入Python库pke时触发KeyError: 'hinglish'错误的解决咨询
修复pke库导入时的KeyError: 'hinglish'错误
问题原因
这个错误是因为pke的base.py文件中维护的语言代码映射字典LANGUAGE_CODE_BY_NAME不包含hinglish(印地英语)对应的ISO 639-1两位代码,而你的nltk stopwords库中存在hinglish的停用词文件,导致遍历匹配时触发KeyError。
修复方案
方案一:修改pke源码(永久生效)
- 找到报错路径中的
base.py文件:/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/pke/base.py - 打开文件,定位到
LANGUAGE_CODE_BY_NAME字典(文件开头区域),添加hinglish对应的语言代码映射:
LANGUAGE_CODE_BY_NAME = { 'english': 'en', 'hinglish': 'hi', # 新增这一行,hinglish基于印地语,对应代码hi # 保留其他已有的语言映射条目 }
- 保存文件后,重新导入pke即可正常使用。
方案二:临时过滤停用词文件(无需修改源码)
在导入pke之前,先移除nltk stopwords中的hinglish条目,代码如下:
import nltk from nltk.corpus import stopwords # 过滤掉hinglish停用词文件 stopwords._fileids = [f for f in stopwords._fileids if f != 'hinglish'] # 再导入pke import pke
注意:该方案每次运行脚本都需要先执行这段过滤代码,否则会再次触发错误。
内容的提问来源于stack exchange,提问作者lili92200
相关产品推荐
相关产品推荐

