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.

场景复现:在实现文本摘要生成,所以需要先下载语言库一类的包,用到了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,问题解决了,没有再报错了。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年11月30日
下一篇 2023年11月30日

相关推荐