我正在尝试不同的文本处理模型。我正在尝试使用 spacy,它的模型是 en_core_web_lg。
import spacy
import spacy.language
from spacy_langdetect import LanguageDetector
from spacy.language import Language
@Language.factory('language_detector')
def language_detector(nlp, name):
return LanguageDetector()
my_nlp = spacy.load('en_core_web_lg')
my_nlp.add_pipe('language_detector')
但是在运行此程序时,我收到以下错误:-
---------------------------------------------------------------------------
OSError Traceback (most recent call last)
<ipython-input-36-4cd126296f60> in <module>
----> 1 my_nlp = spacy.load('en_core_web_lg')
2 my_nlp.add_pipe('language_detector')
~/.local/lib/python3.8/site-packages/spacy/__init__.py in load(name, vocab, disable, enable, exclude, config)
49 RETURNS (Language): The loaded nlp object.
50 """
---> 51 return util.load_model(
52 name,
53 vocab=vocab,
~/.local/lib/python3.8/site-packages/spacy/util.py in load_model(name, vocab, disable, enable, exclude, config)
470 if name in OLD_MODEL_SHORTCUTS:
471 raise IOError(Errors.E941.format(name=name, full=OLD_MODEL_SHORTCUTS[name])) # type: ignore[index]
--> 472 raise IOError(Errors.E050.format(name=name))
473
474
OSError: [E050] Can't find model 'en_core_web_lg'. It doesn't seem to be a Python package or a valid path to a data directory.
我手动检查了 spacy 和 en_core_web_lg 的目录,它们都存在于站点包中。
我什至尝试创建一个新的虚拟环境并安装并运行代码,但遇到相同的错误。
我尝试了ChatGPT给出的解决方案,例如手动插入
[paths] en_core_web_lg = /home/.local/lib/python3.8/site-packages/en_core_web_lg
在 spacy 和 export PYTHONPATH=$PYTHONPATH
环境变量中的 confid.cfg 文件夹内,但出现相同的错误。是否可能存在特定于环境或特定于平台的因素导致此问题?如果没有请帮我解决这个错误。预先感谢您。
在进行任何更改之前,请打开您的终端并输入:
python -m spacy info
此命令将显示已安装型号的列表。查找名为“en_core_web_lg”的模型。如果已安装,请仔细检查您输入的内容是否正确。如果它不起作用,您可以尝试使用以下命令卸载它:
python -m spacy uninstall en_core_web_lg
您始终可以通过打开终端并输入以下内容来安装模型:
python -m spacy download en_core_web_lg
这将确保模型安装正确。完成后,请记住重新启动运行时环境。如果您想给它一个绝对路径,请继续:
nlp = spacy.load('/path/to/en_core_web_lg')
如果上述解决方案都不适合您,我建议访问 spaCy 根据其效率或准确性探索其他可用模型。