什么样的人会阅读本文:在线安装模块失败,不知如何离线安装,或者离线安装之后依然无法加载
官方在线安装
conda install -c conda-forge spacy
python -m spacy download en //自动安装最合适的英文语料模块
python -m spacy download zh //自动安装最合适的中文语料模块
python -m spacy download [语言缩写] //自动安装最合适的语料模块
python -m spacy download en_core_web_sm //安装指定模块,版本号自动匹配
模块命名
例子:en_core_web_md-2.3.1.tar.gz
| 例子部位 | 字段 | 含义 | 
|---|---|---|
| en | 语言 | 语言缩写,目前支持da,de,en,es,fr,ja,lt,nb,nl,pl,pt,ro,zh | 
| core | 模型能力级别(type) | core支持vocabulary、syntax、entities、word vectors,depent仅支持only vocab、syntax、entities,core范围较大,通常用core | 
| web | 内容方向(genre) | 这个模型是基于什么样的文本训练的 (e.g. web基于web text, news基于 news text) | 
| md | 大小(size) | 模型大小 (sm, md , lg or trf(3.x.x有)) | 
| 2 | spacy的主版本 | |
| 3 | 模块的主版本 | |
| 1 | 模块的次版本 | 
离线安装
//其他途径下载好包本地安装
(da38) C:\WINDOWS\system32> pip install D:\ProgramData\bag\zh_core_web_md-2.3.1.tar.gz
//组装好下载地址在线安装也可以,github不翻墙可能有点慢,大多几十到几百M
(da38) C:\WINDOWS\system32> pip install https://github.com/explosion/spacy-models/releases/download/zh_core_web_md-2.3.1/zh_core_web_md-2.3.1.tar.gz
下载地址组装: 加粗部分参考模块命令自行替换
https://github.com/explosion/spacy-models/releases/download/zh_core_web_md-2.3.1/zh_core_web_md-2.3.1.tar.gz
//最新spacy两个版本对应的模块及版本
{
  "spacy": {
    "3.0.0": {
      "zh_core_web_sm": ["3.0.0a0"],
      "zh_core_web_md": ["3.0.0a0"],
      "zh_core_web_lg": ["3.0.0a0"],
      "zh_core_web_trf": ["3.0.0a0"],
      "en_core_web_sm": ["3.0.0a0"],
      "en_core_web_md": ["3.0.0a0"],
      "en_core_web_lg": ["3.0.0a0"],
      "en_core_web_trf": ["3.0.0a0"],
      "en_vectors_web_lg": ["3.0.0a0"]
    },
    "2.3.5": {
      "zh_core_web_sm": ["2.3.1", "2.3.0"],
      "zh_core_web_md": ["2.3.1", "2.3.0"],
      "zh_core_web_lg": ["2.3.1", "2.3.0"],
      "en_core_web_sm": ["2.3.1", "2.3.0"],
      "en_core_web_md": ["2.3.1", "2.3.0"],
      "en_core_web_lg": ["2.3.1", "2.3.0"],
      "en_trf_bertbaseuncased_lg": ["2.3.0"],
      "en_trf_xlnetbasecased_lg": ["2.3.0"],
      "en_trf_robertabase_lg": ["2.3.0"],
      "en_trf_distilbertbaseuncased_lg": ["2.3.0"],
    }
}
测试
import spacy
nlp = spacy.load('zh')  //没有叫zh的快捷连接,包名,data目录
doc = nlp('作为语言而言,为世界使用人数最多的语言,目前世界有五分之一人口做为母语。')
print([e for e in doc])
OSError: [E050] Can't find model 'zh'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.
import spacy
import zh_core_web_md
//可以加载,旧的加载方式,不建议这样用,我遇到zh_core_web_ms用这种方法就加载不了,建立zh软连接却可以
nlp = zh_core_web_md.load()  
doc = nlp('作为语言而言,为世界使用人数最多的语言,目前世界有五分之一人口做为母语。')
print([e for e in doc])
out[1]: [作为, 语言, 而言, ,, 为, 世界, 使用, 人数, 最多, 的, 语言, ,, 目前, 世界, 有, 五分之一, 人口, 做为, 母语, 。]
配置软连接
安装之后,目录
D:\ProgramData\Anaconda3\envs\da38\Lib\site-packages\spacy\data
: ls
_init.py_
_pycache_
D:\ProgramData\Anaconda3\envs\da38\Lib\site-packages
: ls core_web
en_core_web_sm
en_core_web_sm-2.3.1.dist-info
zh_core_web_md
zh_core_web_md-2.3.1.dist-info
zh_core_web_sm
zh_core_web_sm-2.3.1.dist-info
.....
建立一个zh_core_web_md的软连接到 xxx\spacy\data 下并命名为zh,后面 spacy.load('zh'),这只是个别名,可以任意
管理员身份运行:
mklink /d D:\Anaconda3\envs\da38\Lib\site-packages\spacy\data\zh D:\Anaconda3\envs\da38\Lib\site-packages\zh_core_web_md
删除软连接 
rmdir D:\ProgramData\Anaconda3\envs\da38\Lib\site-packages\spacy\data\zh 
spacy\data目录
D:\ProgramData\Anaconda3\envs\da38\Lib\site-packages\spacy\data
λ ls *
_init.py_
_pycache_
en (软连接,如果python -m spacy download en在线安装成功,这个软连接会自动生成)
zh (软连接)
再次测试
import spacy
nlp = spacy.load('zh')
doc = nlp('作为语言而言,为世界使用人数最多的语言,目前世界有五分之一人口做为母语。')
print([e for e in doc])
out[1]: [作为, 语言, 而言, ,, 为, 世界, 使用, 人数, 最多, 的, 语言, ,, 目前, 世界, 有, 五分之一, 人口, 做为, 母语, 。]
在线安装失败原因:不用VPN直接无法建立连接,用VPN有时候远程强制关闭连接,有时候可以下载很慢
- SEO:
ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))
Max retries exceeded with url: /explosion/spacy-models/master/shortcuts-v2.json
AttributeError: module 'zh_core_web_ms' has no attribute 'load'
ModuleNotFoundError: No module named 'en_core_web_ms'
ModuleNotFoundError: No module named 'zh_core_web_ms'
OSError: [E050] Can't find model 'en'.
OSError: [E050] Can't find model 'zh'. 










网友评论