首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spacy - AttributeError:'getset_descriptor‘对象没有属性'setdefault’

Spacy - AttributeError:'getset_descriptor‘对象没有属性'setdefault’
EN

Stack Overflow用户
提问于 2022-11-20 07:59:59
回答 1查看 21关注 0票数 0

我试图运行这个main.py文件,但是我有以下错误,我不明白:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "/Users/tyler/Desktop/Working Folder/trending-stories/main.py", line 4, in <module>
    from news_processor import NewsProcessor
  File "/Users/tyler/Desktop/Working Folder/trending-stories/news_processor.py", line 2, in <module>
    from keywords_extraction import KeywordsExtract
  File "/Users/tyler/Desktop/Working Folder/trending-stories/keywords_extraction.py", line 12, in <module>
    class KeywordsExtract:
  File "/Users/tyler/Desktop/Working Folder/trending-stories/keywords_extraction.py", line 13, in KeywordsExtract
    MODEL = spacy.load("en_core_web_sm")
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/util.py", line 164, in load_model
    return load_model_from_package(name, **overrides)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/util.py", line 185, in load_model_from_package
    return cls.load(**overrides)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/en_core_web_sm/__init__.py", line 12, in load
    return load_model_from_init_py(__file__, **overrides)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/util.py", line 228, in load_model_from_init_py
    return load_model_from_path(data_path, meta, **overrides)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/util.py", line 211, in load_model_from_path
    return nlp.from_disk(model_path, exclude=disable)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/language.py", line 947, in from_disk
    util.from_disk(path, deserializers, exclude)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/util.py", line 654, in from_disk
    reader(path / key)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/language.py", line 932, in <lambda>
    ) and _fix_pretrained_vectors_name(self)
  File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/site-packages/spacy/language.py", line 1071, in _fix_pretrained_vectors_name
    proc.cfg.setdefault("deprecation_fixes", {})
AttributeError: 'getset_descriptor' object has no attribute 'setdefault'

keywords_extraction.py函数如下所示:

代码语言:javascript
运行
复制
class KeywordsExtract:
    MODEL = spacy.load("en_core_web_sm")
    allow_types = ['PERSON', 'GPE', 'ORG', 'NORP', 'LOC', 'FAC', 'WORK_OF_ART', 'EVENT', 'LAW', 'PRODUCT']
    remove_words = ['new', 'time', 'matter', 'source', 'people', 'story', 'reuters story']
    remove_entities = ['REUTERS', 'Reuters', 'Thomson Reuters', 'CNBC']
    months = [cd.month_name[i] for i in range(1, 13)] + [cd.month_abbr[i] for i in range(1, 13)]
    lookups = Lookups()
    lemma_keep = ["data"]
    lemma_exc = MODEL.vocab.lookups.get_table("lemma_exc")
    for w in lemma_keep:
        del lemma_exc[MODEL.vocab.strings["noun"]][w]
    lookups.add_table("lemma_exc", lemma_exc)
    lookups.add_table("lemma_rules", MODEL.vocab.lookups.get_table("lemma_rules"))
    lookups.add_table("lemma_index", MODEL.vocab.lookups.get_table("lemma_index"))
    lemmatizer = Lemmatizer(lookups)

我试着安装en_core_web_smen_core_web_sm,但是它不起作用。我该如何解决这个问题?这可能是因为我使用的python版本吗?我的python版本是3.9.2

EN

回答 1

Stack Overflow用户

发布于 2022-11-20 08:27:46

是的,这是因为你的python版本。您可以将python版本降到3.6以下,也可以将spaCy版本升级到大于3.x.x。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/74506503

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档