【问题标题】:Spacy - AttributeError: 'getset_descriptor' object has no attribute 'setdefault'Spacy - AttributeError: \'getset_descriptor\' 对象没有属性 \'setdefault\'
【发布时间】:2022-11-20 19:35:26
【问题描述】:

我正在尝试运行此 main.py 文件,但出现以下我不理解的错误:

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函数是这样的:

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

【问题讨论】:

    标签: python machine-learning nlp nltk spacy


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-05-14
      • 2021-04-13
      • 2021-08-18
      • 2012-12-01
      • 2021-04-19
      • 2021-11-22
      • 1970-01-01
      相关资源
      最近更新 更多