spacy Can't find model 'en_core_web_sm' on windows 10 and Python 3.5.3 :: Anaconda custom (64-bit)
我已经如下安装了
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | --------------------------------------------------------------------------- OSError Traceback (most recent call last) <ipython-input-4-b472bef03043> in <module>() 1 # Import spaCy and load the language library 2 import spacy ----> 3 nlp = spacy.load('en_core_web_sm') 4 5 # Create a Doc object C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder\\lib\\site-packages\\spacy\\__init__.py in load(name, **overrides) 13 if depr_path not in (True, False, None): 14 deprecation_warning(Warnings.W001.format(path=depr_path)) ---> 15 return util.load_model(name, **overrides) 16 17 C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder\\lib\\site-packages\\spacy\\util.py in load_model(name, **overrides) 117 elif hasattr(name, 'exists'): # Path or Path-like to model data 118 return load_model_from_path(name, **overrides) --> 119 raise IOError(Errors.E050.format(name=name)) 120 121 OSError: [E050] Can't find model 'en_core_web_sm'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory. |
我如何安装Spacy ---
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 | (C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder) C:\\Users\ ikhizzz>conda install -c conda-forge spacy Fetching package metadata ............. Solving package specifications: . Package plan for installation in environment C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder: The following NEW packages will be INSTALLED: blas: 1.0-mkl cymem: 1.31.2-py35h6538335_0 conda-forge dill: 0.2.8.2-py35_0 conda-forge msgpack-numpy: 0.4.4.2-py_0 conda-forge murmurhash: 0.28.0-py35h6538335_1000 conda-forge plac: 0.9.6-py_1 conda-forge preshed: 1.0.0-py35h6538335_0 conda-forge pyreadline: 2.1-py35_1000 conda-forge regex: 2017.11.09-py35_0 conda-forge spacy: 2.0.12-py35h830ac7b_0 conda-forge termcolor: 1.1.0-py_2 conda-forge thinc: 6.10.3-py35h830ac7b_2 conda-forge tqdm: 4.29.1-py_0 conda-forge ujson: 1.35-py35hfa6e2cd_1001 conda-forge The following packages will be UPDATED: msgpack-python: 0.4.8-py35_0 --> 0.5.6-py35he980bc4_3 conda-forge The following packages will be DOWNGRADED: freetype: 2.7-vc14_2 conda-forge --> 2.5.5-vc14_2 Proceed ([y]/n)? y blas-1.0-mkl.t 100% |###############################| Time: 0:00:00 0.00 B/s cymem-1.31.2-p 100% |###############################| Time: 0:00:00 1.65 MB/s msgpack-python 100% |###############################| Time: 0:00:00 5.37 MB/s murmurhash-0.2 100% |###############################| Time: 0:00:00 1.49 MB/s plac-0.9.6-py_ 100% |###############################| Time: 0:00:00 0.00 B/s pyreadline-2.1 100% |###############################| Time: 0:00:00 4.62 MB/s regex-2017.11. 100% |###############################| Time: 0:00:00 3.31 MB/s termcolor-1.1. 100% |###############################| Time: 0:00:00 187.81 kB/s tqdm-4.29.1-py 100% |###############################| Time: 0:00:00 2.51 MB/s ujson-1.35-py3 100% |###############################| Time: 0:00:00 1.66 MB/s dill-0.2.8.2-p 100% |###############################| Time: 0:00:00 4.34 MB/s msgpack-numpy- 100% |###############################| Time: 0:00:00 0.00 B/s preshed-1.0.0- 100% |###############################| Time: 0:00:00 0.00 B/s thinc-6.10.3-p 100% |###############################| Time: 0:00:00 5.49 MB/s spacy-2.0.12-p 100% |###############################| Time: 0:00:10 7.42 MB/s (C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder) C:\\Users\ ikhizzz>python -V Python 3.5.3 :: Anaconda custom (64-bit) (C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder) C:\\Users\ ikhizzz>python -m spacy download en Collecting en_core_web_sm==2.0.0 from https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz#egg=en_core_web_sm==2.0.0 Downloading https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz (37.4MB) 100% |################################| 37.4MB ... Installing collected packages: en-core-web-sm Running setup.py install for en-core-web-sm ... done Successfully installed en-core-web-sm-2.0.0 Linking successful C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder\\lib\\site-packages\\en_core_web_sm --> C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder\\lib\\site-packages\\spacy\\data\\en You can now load the model via spacy.load('en') (C:\\Users\ ikhizzz\\AppData\\Local\\conda\\conda\\envs\\tensorflowspyder) C:\\Users\ ikhizzz> |
最初,我在anaconda提示符下使用以下语句下载了两个en软件包。
1 2 | python -m spacy download en_core_web_lg python -m spacy download en_core_web_sm |
但是,我不断遇到链接错误,最后在命令下运行有助于我建立链接并解决了错误。
1 | python -m spacy download en |
您的误解的答案是Unix概念,我们可以说Windows中的软链接类似于快捷方式。让我们解释一下。
当您
spaCy找到适合您的最佳型号时,会下载它,然后将名称
但是,它反之亦然。您不能直接引用
当然,您可以使用以下命令直接下载
希望现在很清楚:)
下面为我工作:
1 2 3 | import en_core_web_sm nlp = en_core_web_sm.load() |
对于即使在Anaconda提示符下以管理员身份安装后仍然遇到问题的人,这里有一个快速修复方法:
1)转到下载路径。例如
C:\\\\ Users \\
ame \\\\ AppData \\\\ Local \\\\ Continuum \\\\ anaconda3 \\\\ Lib \\\\ site-packages \\\\ en_core_web_sm \\\\ en_core_web_sm-2.2.0
2)复制路径。
3)粘贴到:
nlp = spacy.load(r'C:\\\\ Users \\
ame \\\\ AppData \\\\ Local \\\\ Continuum \\\\ anaconda3 \\\\ Lib \\\\ site-packages \\\\ en_core_web_sm \\\\ en_core_web_sm-2.2.0')
4)就像魅力一样:)
PS:检查spacy版本
在Colab中使用Spacy语言模型仅需执行以下两个步骤:
1 | !python -m spacy download en_core_web_lg |
执行快捷键??? Ctrl M。
测试
1 2 | import spacy nlp = spacy.load("en_core_web_lg") |
成功!!!
首先,使用以下命令为jupyter notebook安装spacy
然后编写以下代码:
1 2 | import en_core_web_sm nlp = en_core_web_sm.load() |
根据不同版本的spacy加载模块的步骤
下载适用于spaCy安装的特定型号的最匹配版本
1 2 3 | python -m spacy download en_core_web_sm pip install .tar.gz archive from path or URL pip install /Users/you/en_core_web_sm-2.2.0.tar.gz |
或
1 | pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz |
添加到您的需求文件或环境yaml文件。有一个spacy版本可兼容的Theres版本范围可以在https://github.com/explosion/spacy-models/releases
下查看更多
如果不确定在下面的代码下运行
1 | nlp = spacy.load('en_core_web_sm') |
会发出警告,告知哪种版本模型将与您安装的spacy verion兼容
enironment.yml示例
1 2 3 4 5 6 7 8 9 10 11 12 | name: root channels: - defaults - conda-forge - anaconda dependencies: - python=3.8.3 - pip - spacy=2.3.2 - scikit-learn=0.23.2 - pip: - https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.3.1/en_core_web_sm-2.3.1.tar.gz#egg=en_core_web_sm |
我正在Windows上运行
最后,它是一个版本问题,需要在conda cmd提示符下(以admin身份打开)执行以下命令
-
pip install spacy == 2.3.5
-
python -m spacy下载zh_cn_web_sm
-
python -m spacy下载zh-cn
1 2 3 4 5 | from chatterbot import ChatBot import spacy import en_core_web_sm nlp = en_core_web_sm.load() ChatBot("hello") |
输出-
对于基于Windows的Anaconda,
1-打开Anaconda提示
2-激活您的环境。例如:活跃的myspacyenv
3-点安装https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz
4- python -m spacy下载zh_cn_web_sm
5-打开Jupyter笔记本,例如:先激活myspacyenv,然后在Anaconda Promt上启动jupyter笔记本
import spacy spacy.load('en_core_web_sm')
它将和平运行!
打开Anaconda Navigator。单击任何IDE。运行代码:
1 2 | !pip install -U spacy download en_core_web_sm !pip install -U spacy download en_core_web_sm |
它将起作用。如果您打开的IDE,请直接将其关闭,并按照以下步骤操作一次。
使用不同的语法加载模块对我有用。
1 2 | import en_core_web_sm nlp = en_core_web_sm.load() |
Anaconda用户
如果您使用的是conda虚拟环境,请确保其Python版本与基本环境中的Python版本相同。要验证这一点,请在每个环境中运行
激活虚拟环境(
我刚遇到这个问题,以上内容对我来说都是有效的。这解决了在当前虚拟环境无法访问的区域中发生下载的问题。
然后您应该能够运行以下内容:
1 2 | import spacy nlp = spacy.load("en_core_web_sm") |
1 2 3 | import spacy nlp = spacy.load('/opt/anaconda3/envs/NLPENV/lib/python3.7/site-packages/en_core_web_sm/en_core_web_sm-2.3.1') |
尝试使用如图所示的版本给出软件包的绝对路径。
它工作得很好。
可与colab配合使用:
1 2 3 | !python -m spacy download en import en_core_web_sm nlp = en_core_web_sm.load() |
或者对于介质:
1 2 | import en_core_web_md nlp = en_core_web_md.load() |
代替上面的任何方法,这解决了我的错误。
如果您是anaconda用户,这就是解决方案。
打开命令提示符或终端并执行以下代码:
1 | pip3 install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.2.0/en_core_web_sm-2.2.0.tar.gz |
在Jupiter笔记本中执行以下代码块。
希望以上代码适用于所有人:)
我也遇到了同样的问题,因为我无法使用'''spacy.load()'''加载模块
您可以按照以下步骤在Windows上解决此问题:
完整的代码将是:
1 2 3 4 5 | python -m spacy download en_core_web_sm import en_core_web_sm nlp = en_core_web_sm.load() |
我正在MacOS上运行PyCharm,尽管以上答案都无法完全解决我的问题,但它们确实提供了足够的线索,我终于能够进行所有工作。我正在连接到ec2实例,并已配置PyCharm,以便可以在Mac上进行编辑,并且它会自动更新ec2实例上的文件。因此,问题出在ec2端,即使我以几种不同的方式和方式安装了Spacy,也找不到Spacy。如果我从命令行运行python脚本,则一切运行正常。但是,在PyCharm内部,最初没有找到Spacy和模型。我最终使用以上添加" requirements.txt"文件的建议解决了"查找"伪造问题。但是仍然无法识别模型。
我的解决方案:手动下载模型并将其放置在ec2实例上的文件系统中,并在加载时明确指向它们。我从这里下载文件:
https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-3.0.0/en_core_web_sm-3.0.0.tar.gz
https://github.com/explosion/spacy-models/releases/download/en_core_web_lg-3.0.0/en_core_web_lg-3.0.0.tar.gz
下载后,我将其移动到ec2实例中,解压缩并解压缩到文件系统中,例如
然后我使用显式路径加载模型,并且该模型在PyCharm中运行(请注意,所使用的路径一直到
1 | nlpObject = spacy.load('/path_to_models/en_core_web_lg-3.0.0/en_core_web_lg/en_core_web_lg-3.0.0') |
我尝试了以上所有答案,但未能成功。下面为我??工作:
(特定于WINDOWS操作系统)
1 2 | pip install -U --user spacy python -m spacy download en |
1 2 | import spacy spacy.load('en') |
如果您已经下载了
以管理员身份打开Anaconda提示
然后键入:
例如,
这将创建到您的语言模型的符号链接。现在,您可以在笔记本或脚本中使用
这就是我所做的:
转到我在Anaconda Prompt /命令行上工作的虚拟环境
运行此命令:python -m spacy下载en_core_web_sm
完成了
对此的简单解决方案,我在spacy.io
上看到了
从spacy.lang.en导入英语
nlp =英语()
https://course.spacy.io/zh/chapter1