SpaCy OSError: Не удается найти модель 'en'

хотя я загрузил модель, она не может ее загрузить

[[email protected] entity-sentiment-analysis]$ which python
/scratch/sjn/anaconda/bin/python
[[email protected] entity-sentiment-analysis]$ sudo python -m spacy download en
[sudo] password for jalal: 
Collecting https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz
  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 9.4MB/s 
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
    /usr/lib/python2.7/site-packages/en_core_web_sm -->
    /usr/lib64/python2.7/site-packages/spacy/data/en

    You can now load the model via spacy.load('en')

import spacy 

nlp = spacy.load('en')
---------------------------------------------------------------------------
OSError                                   Traceback (most recent call last)
<ipython-input-2-0fcabaab8c3d> in <module>()
      1 import spacy
      2 
----> 3 nlp = spacy.load('en')

/scratch/sjn/anaconda/lib/python3.6/site-packages/spacy/__init__.py in load(name, **overrides)
     17             "to load. For example:\nnlp = spacy.load('{}')".format(depr_path),
     18             'error')
---> 19     return util.load_model(name, **overrides)
     20 
     21 

/scratch/sjn/anaconda/lib/python3.6/site-packages/spacy/util.py in load_model(name, **overrides)
    118     elif hasattr(name, 'exists'):  # Path or Path-like to model data
    119         return load_model_from_path(name, **overrides)
--> 120     raise IOError("Can't find model '%s'" % name)
    121 
    122 

OSError: Can't find model 'en'

Как мне это исправить?

Если я не использую sudo для загрузки модели en, я получаю:

Collecting https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz
  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 9.6MB/s ta 0:00:011   62% |████████████████████            | 23.3MB 8.6MB/s eta 0:00:02
Requirement already satisfied (use --upgrade to upgrade): 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 in /scratch/sjn/anaconda/lib/python3.6/site-packages
You are using pip version 10.0.0, however version 10.0.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

    Error: Couldn't link model to 'en'
    Creating a symlink in spacy/data failed. Make sure you have the required
    permissions and try re-running the command as admin, or use a
    virtualenv. You can still import the model as a module and call its
    load() method, or create the symlink manually.

    /scratch/sjn/anaconda/lib/python3.6/site-packages/en_core_web_sm -->
    /scratch/sjn/anaconda/lib/python3.6/site-packages/spacy/data/en


    Download successful but linking failed
    Creating a shortcut link for 'en' didn't work (maybe you don't have
    admin permissions?), but you can still load the model via its full
    package name:

    nlp = spacy.load('en_core_web_sm')

Ответ 1

Ну что ж. получается, хотя мой python показывал pacon anaconda, когда я использовал загрузку python, он связывал его с python2.7 локальным на моей машине. Я исправил его, используя команду:

$ sudo /scratch/sjn/anaconda/bin/python -m spacy download en

Ответ 2

Используя sudo python... вы устанавливаете модель для другого интерпретатора python, чем ваш локальный. Фактически, в вашем журнале говорится, что модель spaCy установлена на /usr/lib64/python2.7/site-packages/ вместо /scratch/sjn/anaconda/lib/python3.6/site-packages/.

Попробуйте запустить python -m spacy download en и он должен установить модель в правильный каталог.

Ответ 3

НАКОНЕЦ ОЧИСТИТЬ ОШИБКУ !!!

  • Пробовал несколько вариантов, в том числе:

    python -m spacy download en

    conda install -c conda-forge spacy

    python -m spacy download en_core_web_sm

    python -m spacy link en_core_web_sm en

  • Никто не работал, так как я использую сеть моей компании. Наконец эта команда сработала как шарм :-)

    pip install https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.0.0/en_core_web_sm-2.0.0.tar.gz --no-deps

Спасибо Github Link :-)

Ответ 4

Если вы работаете в Windows, попробуйте открыть командную строку /Powershell как администратор. Пространственное связывание модели (после загрузки) будет происходить только при запуске командной строки от имени администратора

Ответ 5

1) Установите Spacy

$ python -m spacy download en

2) Установите модель en_core_web_sm

$ python -m spacy download en_core_web_sm
>>> import spacy
>>> nlp = spacy.load("en_core_web_sm")

Ответ 6

Была эта проблема для ноутбука Jupyter на Windows и исправлена:

Откройте Anaconda Prompt с правами администратора

Execute> python -m spacy скачать ru

Ответ 7

Для пользователей Windows просто запустите CMD в режиме администратора и запустите

python -m spacy download en

это правильно свяжет ваш модуль en. Тогда вы можете использовать

nlp = spacy.load('en')

Ответ 8

Работает после загрузки необходимой библиотеки с использованием python.

enter image description here

Ответ 9

Потому что я не нашел свою ошибку здесь (Для всех, кто использует jupyter Notebook, Alteryx, Company Network и имел эту ошибку):

я попытался создать макрос с python для определения темы, но получил ошибку, что нет модуля с именем "en_core_web_sm"

Установите следующие пакеты в начале со следующим кодом:

из пакета импорта ayx Package.installPackages(['pandas', 'numpy', 'matplotlib', 'gensim', 'spacy', 'pyLDAvis', ' https://github.com/explosion/spacy-models/releases/загрузить/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz '])

И если вы ссылаетесь на модуль, используйте:

импорт en_core_web_sm

nlp = en_core_web_sm.load()

работал у меня перф отлично :))

Ответ 10

Загрузка Spacy путем запуска командной строки от имени администратора в Windows 10 машина решает проблемы с подключением

C:\Users\mrawat>python -m spacy download en
Requirement already satisfied: en_core_web_sm==2.1.0 from https://github.com/explosion/spacy-models/releases/download/en_core_web_sm-2.1.0/en_core_web_sm-2.1.0.tar.gz#egg=en_core_web_sm==2.1.0 in c:\users\mrawat\appdata\local\programs\python\python37\lib\site-packages (2.1.0)
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'python -m pip install --upgrade pip' command.
✔ Download and installation successful
You can now load the model via spacy.load('en_core_web_sm')
symbolic link created for C:\Users\mrawat\AppData\Local\Programs\Python\Python37\lib\site-packages\spacy\data\en <<===>> C:\Users\mrawat\AppData\Local\Programs\Python\Python37\lib\site-packages\en_core_web_sm
✔ Linking successful
C:\Users\mrawat\AppData\Local\Programs\Python\Python37\lib\site-packages\en_core_web_sm
-->
C:\Users\mrawat\AppData\Local\Programs\Python\Python37\lib\site-packages\spacy\data\en
You can now load the model via spacy.load('en')