No module named en 的解决办法spacy

No module named 'en'

nlp项目出现这个错误,如果是spacy\util.py出的问题,表示找不到英文的模块.

官方的解决办法是在控制台输入以下命令:

python -m spacy download en_core_web_sm

这个我试了下一直出现连接错误,以下是解决办法

1. 先确认自己要用的spacy版本,

python -m spacy info

因为我这个项目要求用2.1所以

那 en_core_web_sm也要2.1版本的

 

 

2. 到github上面下载en_core_web_sm的gz档案(只有gz)
https://github.com/explosion/spacy-models/releases 要next好几页才会找到

en_core_web_sm-2.1.0.tar.gz (10.5MB)

相关的有en_core_web_md-2.1.0.tar.gz(91MB), en_core_web_lg-2.1.0.tar.gz(788MB)

建议一并下载下来

https://github.com/explosion/spacy-models/releases?after=nl_core_news_sm-2.1.0

 

3. 下载后解压缩,在所属目录打开控制台(在地址栏输入%comspec%) 或 打开power shell

输入Python.exe setup.py install

成功后, (例如我安装的是2.1版本的) 最后显示
Finished processing dependencies for en-core-web-sm==2.1.0

4. 理论上这样就可以了, 但是我还是报错,所以修改项目代码
原代码 self.nlp = spacy.load('en')
修改为
import en_core_web_md

self.nlp=en_core_web_md.load()

完成后不再报错了

测试代码:

import spacy
import en_core_web_md

nlp = en_core_web_md.load()
doc = nlp(u'This is a sentence.')

print(doc)

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章