Mindmeld构建gazetteer时报'list'对象无get属性该如何解决?
MindMeld执行nlp.build()触发AttributeError问题解决方案
问题复现
参照MindMeld官方文档第7步执行如下代码:
from mindmeld.components.nlp import NaturalLanguageProcessor nlp = NaturalLanguageProcessor('.') nlp.build()
报错信息
运行后抛出如下异常:
self.build_gazetteer(gaz_name, force_reload=force_reload) File "/home/sar/test/lib/python3.6/site-packages/mindmeld/resource_loader.py", line 214, in build_gazetteer mapping.get("entities", []), self.query_factory.normalize AttributeError: 'list' object has no attribute 'get'
初步排查
已知list类型不存在get方法,最初推测为nlp.build()执行过程中未正确生成预期的字典结构,实际返回了列表类型导致报错。
测试环境
- 操作系统:Ubuntu 18.04
- Python版本:3.6.9
最终解决方案
经进一步排查确认,该问题触发根源为MindMeld的NLP模块不支持Python 3.7及以上版本,在虚拟环境中使用版本适配的Python运行即可解决该问题。
内容的提问来源于stack exchange,提问作者happyhd
相关产品推荐
相关产品推荐

