【问题标题】:Install SpaCy in a Jupyter Notebook在 Jupyter Notebook 中安装 SpaCy
【发布时间】:2020-10-08 18:49:19
【问题描述】:

我尝试安装 SpaCy 进行词形还原,但它不起作用...

首先我安装 spacy:

pip install -U spacy

这导致了这个结果:

Requirement already satisfied, skipping upgrade: murmurhash<1.1.0,>=0.28.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (1.0.2)
Requirement already satisfied, skipping upgrade: srsly<1.1.0,>=1.0.2 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (1.0.2)
Requirement already satisfied, skipping upgrade: thinc==7.4.1 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (7.4.1)
Requirement already satisfied, skipping upgrade: cymem<2.1.0,>=2.0.2 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (2.0.3)
Requirement already satisfied, skipping upgrade: wasabi<1.1.0,>=0.4.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (0.8.0)
Requirement already satisfied, skipping upgrade: catalogue<1.1.0,>=0.0.7 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (1.0.0)
Requirement already satisfied, skipping upgrade: requests<3.0.0,>=2.13.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (2.23.0)
Requirement already satisfied, skipping upgrade: tqdm<5.0.0,>=4.38.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (4.50.2)
Requirement already satisfied, skipping upgrade: blis<0.5.0,>=0.4.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (0.4.1)
Requirement already satisfied, skipping upgrade: numpy>=1.15.0 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (1.18.1)
Requirement already satisfied, skipping upgrade: setuptools in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (46.1.3.post20200330)
Requirement already satisfied, skipping upgrade: plac<1.2.0,>=0.9.6 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (1.1.3)
Requirement already satisfied, skipping upgrade: preshed<3.1.0,>=3.0.2 in c:\users\danis\.conda\envs\python36\lib\site-packages (from spacy) (3.0.2)
Requirement already satisfied, skipping upgrade: importlib-metadata>=0.20; python_version < "3.8" in c:\users\danis\.conda\envs\python36\lib\site-packages (from catalogue<1.1.0,>=0.0.7->spacy) (2.0.0)
Requirement already satisfied, skipping upgrade: idna<3,>=2.5 in c:\users\danis\.conda\envs\python36\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy) (2.9)
Requirement already satisfied, skipping upgrade: certifi>=2017.4.17 in c:\users\danis\.conda\envs\python36\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy) (2020.6.20)
Requirement already satisfied, skipping upgrade: chardet<4,>=3.0.2 in c:\users\danis\.conda\envs\python36\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy) (3.0.4)
Requirement already satisfied, skipping upgrade: urllib3!=1.25.0,!=1.25.1,<1.26,>=1.21.1 in c:\users\danis\.conda\envs\python36\lib\site-packages (from requests<3.0.0,>=2.13.0->spacy) (1.25.8)
Requirement already satisfied, skipping upgrade: zipp>=0.5 in c:\users\danis\.conda\envs\python36\lib\site-packages (from importlib-metadata>=0.20; python_version < "3.8"->catalogue<1.1.0,>=0.0.7->spacy) (2.2.0)

然后我尝试导入 spacy:

import spacy

效果很好,没有错误发生。 然后我要加载一个数据包:

nlp = spacy.load('de_core_news_sm') 

这里发生错误:

---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-10-0fb7762ce64d> in <module>
----> 1 nlp = spacy.load('de_core_news_sm')

~\.conda\envs\python36\lib\site-packages\spacy\__init__.py in load(name, **overrides)
     28     if depr_path not in (True, False, None):
     29         warnings.warn(Warnings.W001.format(path=depr_path), DeprecationWarning)
---> 30     return util.load_model(name, **overrides)
     31 
     32 

~\.conda\envs\python36\lib\site-packages\spacy\util.py in load_model(name, **overrides)
    173     elif hasattr(name, "exists"):  # Path or Path-like to model data
    174         return load_model_from_path(name, **overrides)
--> 175     raise IOError(Errors.E050.format(name=name))
    176 
    177 

OSError: [E050] Can't find model 'de_core_news_sm'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory.

有人可以帮我解决这个问题吗?我尝试了好几个小时,但没有得到解决方案。

谢谢!

丹尼尔

【问题讨论】:

  • 您需要先下载模型。 github.com/explosion/spacy-modelspython -m spacy download de_core_news_sm
  • 感谢您的回答。下载后模型应该放在哪里?我必须下载哪些文件?

标签: python jupyter-notebook spacy lemmatization


【解决方案1】:

如果您是在本地机器上加载模型,则需要先下载模型。(不是在 google colab 上)。所以之后

pip install -U spacy

你需要下载使用

python -m spacy download de_core_news_sm

那么,

nlp = spacy.load('de_core_news_sm') 

谷歌实验室

如果在 google colab 中尝试,

pip install -U spacy
import spacy.cli
spacy.cli.download("de_core_news_sm")

您也可以添加虚拟环境,然后在虚拟环境中激活后使用spacy。

python3 -m venv <name_of_virtualenv>
# to activate 
source /pathtovirenc/<name_of_virtualenv>/bin/activate

#then use the above commands
pip3 install -U spacy
python3 -m spacy download de_core_news_sm

【讨论】:

  • 但这正是我所做的。首先使用pip install -U spacy 安装spacy,然后使用python -m spacy download de_core_news_sm 下载软件包。但这会导致错误。所以我不明白这个问题。我在 google colab 中没有做任何事情,但在 jupyter notebook 中没有做任何事情。我必须在控制台中插入安装和下载命令吗?
  • 你用的是python3吗,那就写python3和pip3代替python和pip
  • 尝试创建一个虚拟环境,然后在激活后将 spacy 放入其中,更新答案以显示如何添加虚拟环境
  • 使用import sys print(sys.version) 我得到3.6.10 |Anaconda, Inc. 如果我使用pip3,它会抛出一个名为:SyntaxError: invalid syntax 的错误。我会尝试添加虚拟环境
  • 你在 linux、win 还是 mac 上是什么操作系统?
最近更新 更多