在python运行环境中运行如下代码
import spacy
nlp = spacy.load(‘en’)
出现如下错误:OSError: [E050] Can’t find model ‘en’. It doesn’t seem to be a shortcut link, a Python package or a valid path to a data directory.
出现这个错误的说是无法找到‘en’这个模块。
解决办法:
我的系统是windows,使用的pycharm,python版本是3.7.2。
前提你已经正确、完整的安装spacy第三方库及所需要的模块。
假设你已经完成spacy安装 ,以及其所需要的模块。出现上面的报错,你可以将
nlp = spacy.load(‘en’)
中的 ‘en’ 改为 ’en_core_web_sm‘
再次运行,如果出现 错误:
Can‘t find model ‘en_core_web_sm‘. It doesn‘t seem to be a shortcut link,
根据我解决这个问题的经验是,你没有完成前提条件,需要将spacy卸载,以及卸载掉spacy-legacy,murmurharsh,jiana, 还有是cyum,还是什么来自忘了。总之要卸载掉spacy ,spacy-legacy,murmurharsh。
然后重新安装spacy
重新安装步骤如下:
1 代开终端 输入
**pip install -U pip setuptools wheel
pip install spacy**
2 在终端输入
pip install spacy[lookups]
为什么要执行这个命令,看官网原文的解释更清楚
“To install additional data tables for lemmatization and normalization”
3 下载模块包
3.1 这个命令能够让你下载到最适合你当前spacy版本 的模板包,这个好像容易出错,我没有成功,有兴趣的可以试一下。
python -m spacy download en_core_web_sm
3.2 自己去官网下载所需要的版本**.tar.gz archive** 或者 .whl文件,然后使用终端命令跳转到你下载的.tar.gz archive文件路径下,安装。
如下例子
pip install en_core_web_sm-3.0.0.tar.gz
pip install en_core_web_sm-3.0.0-py3-none-any.whl
3.3 这个方法不需要去官网下载.tar.gz archive或者.whl文件,不过需要确定模块包的版本号。当然这个方法也需要一定的网速,不过问题不大。
pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz
版本号就是那些数字。如“en_core_web_sm-3.0.0”后面的3.0.0就是版本号。
当完成以上步骤后就可以进行尝试,不出意外应该能成功。
import spacy
nlp = spacy.load('en_core_web_sm')