Python 解决报错:OSError: [E050] Can‘t find model ‘en_core_web_md‘. It doesn‘t seem to b

目录

一、OSError: [E050] Can't find model 'en_core_web_md'.It doesn't seem to be a Python package or a valid path to a data directory.


一、OSError: [E050] Can't find model 'en_core_web_md'.It doesn't seem to be a Python package or a valid path to a data directory.

场景复现:在实现文本摘要生成,所以需要先下载语言库一类的包,用到了spacy库和en_core_web_sm,

在pycharm中运行代码,

spacy_en = spacy.load('en_core_web_md')

但是报错了:

OSError: [E050] Can't find model 'en_core_web_md'. It doesn't seem to be a Python package or a valid path to a data directory.

原因:这个错误的原因是环境中找不到en_core_web_sm这个包。导致这个错误的原因有两个:

  1. 没有安装这个包;
  2. 安装了,但是还是提示找不到;

解决方法:本文针对第1种情况,

(1)找到Python虚拟环境或conda环境中的torchtext第三方库下载位置,

D:\my\python-pycharm\python-envs\venv-deep\Lib\site-packages\torchtext\legacy\data

打开torchtext\legacy\data,找到file.py文件,

将其中函数参数tokenizer_language的值从'en'改为'en_core_web_sm'(共有两处)

修改完成,保存文件之后退出。

(2)可以通过以下命令来在pycharm的终端下载安装'en_core_web_sm',但是很难成功

python -m spacy download en_core_web_sm

 

或者,直接从github下载,也可以访问其github仓库下载其他版本。
en_core_web_sm-3.0.0下载

安装命令为:

pip install en_core_web_sm-3.0.0.tar.gz 

下载完成之后的效果图:

(3)重新再pycharm运行代码,

但是为什么还是报错?

我又查看了我安装的spacy与en_core_web_sm的版本是否有冲突,

 【注】可以是任意版本,但必须符合en_core_web_sm对于spacy的版本要求(见后面)

en_core_web_sm · Releases · explosion/spacy-models · GitHub

  

发现没有冲突。

(6)嗷嗷,突然意识到一件事。。。

要使用这行代码代替之前的,

spacy_en = spacy.load('en_core_web_sm')

代替
spacy_en = spacy.load('en_core_web_md')

重新执行代码,

ok,问题解决了,没有再报错了。

物联沃分享整理
物联沃-IOTWORD物联网 » Python 解决报错:OSError: [E050] Can‘t find model ‘en_core_web_md‘. It doesn‘t seem to b

发表评论