python包中的spacy模型导入问题

2024-06-16 10:25:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在构建一个python包,在我的主py文件中,我像这样导入Spacy语言模型。如果它存在,将加载它,否则将使用shell命令下载它

try:
    nlp = spacy.load('en_core_web_md')
except OSError:
    print("Downloading language model for the spaCy POS tagger do not worry, this will only happen once")
    os.system('python -m spacy download en_core_web_md')
nlp = spacy.load('en_core_web_md')

当我安装软件包时,它下载模型,但在导入时出错

You can now load the model via spacy.load('en_core_web_md')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shahid/Documents/simple_nlp/NlpFactory/__init__.py", line 1, in <module>
    from NlpFactory.NlpFactory import NLPFactory
  File "/home/shahid/Documents/simple_nlp/NlpFactory/NlpFactory.py", line 28, in <module>
    nlp = spacy.load('en_core_web_md')
  File "/home/shahid/anaconda3/envs/eda_test_7/lib/python3.5/site-packages/spacy/__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "/home/shahid/anaconda3/envs/eda_test_7/lib/python3.5/site-packages/spacy/util.py", line 175, in load_model
    raise IOError(Errors.E050.format(name=name))
OSError: [E050] Can't find model 'en_core_web_md'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

所以我认为这是一个路径问题,所以我尝试像这样导入它

nlp = spacy.load(os.path.abspath('en_core_web_md'))

它给了我这个非常相似的错误

You can now load the model via spacy.load('en_core_web_md')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/home/shahid/Documents/simple_nlp/NlpFactory/__init__.py", line 1, in <module>
    from NlpFactory.NlpFactory import NLPFactory
  File "/home/shahid/Documents/simple_nlp/NlpFactory/NlpFactory.py", line 28, in <module>
    nlp = spacy.load(os.path.abspath('en_core_web_md'))
  File "/home/shahid/anaconda3/envs/eda_test_7/lib/python3.5/site-packages/spacy/__init__.py", line 30, in load
    return util.load_model(name, **overrides)
  File "/home/shahid/anaconda3/envs/eda_test_7/lib/python3.5/site-packages/spacy/util.py", line 175, in load_model
    raise IOError(Errors.E050.format(name=name))
OSError: [E050] Can't find model '/home/shahid/Documents/simple_nlp/en_core_web_md'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

我已经看过这个关于自动售货机的问题,但它不被推荐,所以我不打算采用它Package spacy model


Tags: inpycorewebhomemodelnlpspacy