35
votes

spacy Impossible de trouver le modèle 'en_core_web_sm' sur Windows 10 et Python 3.5.3 :: Anaconda personnalisé (64 bits)

quelle est la différence entre spacy.load('en_core_web_sm') et spacy.load('en') ? Ce lien explique les différentes tailles de modèles. Mais je ne sais toujours pas en quoi spacy.load('en_core_web_sm') et spacy.load('en') diffèrent

spacy.load('en') fonctionne bien pour moi. Mais le spacy.load('en_core_web_sm') renvoie une erreur

J'ai installé spacy comme ci-dessous. quand je vais à jupyter notebook et exécute la commande nlp = spacy.load('en_core_web_sm') j'obtiens l'erreur ci-dessous

(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>conda install -c conda-forge spacy
Fetching package metadata .............
Solving package specifications: .

Package plan for installation in environment C:\Users\nikhizzz\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\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>python -V
Python 3.5.3 :: Anaconda custom (64-bit)

(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>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\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\en_core_web_sm
    -->
    C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder\lib\site-packages\spacy\data\en

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


(C:\Users\nikhizzz\AppData\Local\conda\conda\envs\tensorflowspyder) C:\Users\nikhizzz>

comment j'ai installé Spacy ---

---------------------------------------------------------------------------
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\nikhizzz\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\nikhizzz\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.


2 commentaires

J'ai quelques idées possibles sur le problème. Tout d'abord, essayez de télécharger à nouveau le modèle: python -m spacy download en_core_web_sm


Au fait, «en» est par défaut «en_core_web_sm», donc ils sont en fait identiques. Regarde ça .


14 Réponses :


34
votes

La réponse à votre malentendu est un concept Unix, des liens logiciels dont on pourrait dire que sous Windows sont similaires à des raccourcis. Expliquons cela.

Lorsque vous spacy download en , spaCy essaie de trouver le meilleur petit modèle qui correspond à votre distribution spaCy. Le petit modèle dont je parle est par défaut en_core_web_sm qui peut être trouvé dans différentes variantes qui correspondent aux différentes versions de spaCy (par exemple spacy , spacy-nightly ont en_core_web_sm de tailles différentes).

Lorsque spaCy trouve le meilleur modèle pour vous, il le télécharge puis associe le nom en au package qu'il a téléchargé, par exemple en_core_web_sm . Cela signifie essentiellement que chaque fois que vous faites référence à en vous vous référez à en_core_web_sm . En d'autres termes, en après la liaison n'est pas un "vrai" package, c'est juste un nom pour en_core_web_sm .

Cependant, cela ne fonctionne pas dans l'autre sens. Vous ne pouvez pas faire référence directement à en_core_web_sm car votre système ne sait pas que vous l'avez installé. Lorsque vous avez effectué un spacy download en vous avez essentiellement effectué une installation pip. Donc, pip sait que vous avez un package nommé en installé pour votre distribution python, mais ne sait rien du package en_core_web_sm . Ce package remplace simplement package en lorsque vous l'importez, ce qui signifie que package en est juste un lien logiciel vers en_core_web_sm .

Bien sûr, vous pouvez télécharger directement en_core_web_sm , en utilisant la commande: python -m spacy download en_core_web_sm , ou vous pouvez même lier le nom en à d'autres modèles. Par exemple, vous pouvez faire python -m spacy download en_core_web_lg puis python -m spacy link en_core_web_lg en . Cela ferait en un nom pour en_core_web_lg , qui est un grand modèle spaCy pour la langue anglaise.

J'espère que c'est clair maintenant :)


1 commentaires

Oui cela fonctionne! J'utilise Spacy avec un MacBook pro. Ce dont j'avais besoin était le module en_core_web_lg



40
votes

Au départ, j'ai téléchargé deux packages en utilisant les instructions suivantes dans l'invite anaconda.

python -m spacy download en

Mais, j'ai continué à obtenir une erreur de liaison et finalement exécuter la commande ci-dessous m'a aidé à établir le lien et à résoudre l'erreur.

python -m spacy download en_core_web_lg
python -m spacy download en_core_web_sm


1 commentaires

Cela a fonctionné pour moi aussi. Dans le terminal, sur mon MacBook, j'ai exécuté à la fois python -m spacy download en_core_web_lg et python -m spacy download en_core_web_sm mais python -m spacy download en_core_web_sm continué à obtenir l' OSError: [E050] Can't find model 'en'. It doesn't seem to be a shortcut link, a Python package or a valid path to a data directory. erreur en Python lors de la saisie de spacy.load('en') et spacy.load('en_core_web_lg') . En python -m spacy download en dans le terminal, puis spacy.load('en') en Python, j'ai pu charger le modèle.



2
votes

Ouvrez Anaconda Navigator. Cliquez sur n'importe quel IDE. Exécutez le code:

!pip install -U spacy download en_core_web_sm
!pip install -U spacy download en_core_web_sm

Ça va marcher. Si vous ouvrez directement l'IDE, fermez-le et suivez cette procédure une fois.


0 commentaires

7
votes

Pour ceux qui rencontrent toujours des problèmes même après l'avoir installé en tant qu'administrateur à partir de l'invite Anaconda, voici une solution rapide:

1) Accédez au chemin où il est téléchargé. Pour par exemple

C: \ Users \ name \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ site-packages \ en_core_web_sm \ en_core_web_sm-2.2.0

2) Copiez le chemin.

3) Collez-le dans: nlp = spacy.load (r'C: \ Users \ name \ AppData \ Local \ Continuum \ anaconda3 \ Lib \ site-packages \ en_core_web_sm \ en_core_web_sm-2.2.0 ')

4) Fonctionne comme un charme :)

PS: vérifier la version Spacy


0 commentaires

18
votes

Le ci-dessous a fonctionné pour moi:

import en_core_web_sm

nlp = en_core_web_sm.load()


0 commentaires

1
votes

Le chargement du module en utilisant la syntaxe différente a fonctionné pour moi.

import en_core_web_sm
nlp = en_core_web_sm.load()


0 commentaires

3
votes

Quant à Anaconda basé sur Windows,

1- Ouvrir l'invite Anaconda

2- Activez votre environnement. Ex: myspacyenv actif

3- installer pip 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 télécharger en_core_web_sm

5-Open Jupyter Notebook ex: myspacyenv actif puis notebook jupyter sur Anaconda Promt

import spacy spacy.load ('en_core_web_sm')

et il fonctionnera paisiblement!


0 commentaires

1
votes

Utilisateurs d'Anaconda

  1. Si vous utilisez un environnement virtuel conda, assurez-vous qu'il s'agit de la même version de Python que celle de votre environnement de base . Pour vérifier cela, exécutez python --version dans chaque environnement. Sinon, créez un nouvel environnement virtuel avec cette version de Python (ex. conda create --name myenv python=xxx ).

  2. Activer l'environnement virtuel ( conda activate myenv )

  3. conda install -c conda-forge spacy
  4. python -m spacy download en_core_web_sm

Je viens de rencontrer ce problème, et ce qui précède a fonctionné pour moi. Cela résout le problème du téléchargement dans une zone qui n'est pas accessible à votre environnement virtuel actuel.

Vous devriez alors pouvoir exécuter ce qui suit:

import spacy
nlp = spacy.load("en_core_web_sm")


0 commentaires

5
votes

L'utilisation du modèle de langage Spacy dans Colab ne nécessite que les deux étapes suivantes:

  1. Téléchargez le modèle (changez le nom en fonction de la taille du modèle)
import spacy
nlp = spacy.load("en_core_web_lg")
  1. Redémarrez le runtime de colab! Exécutez la touche de raccourci Ctrl + M +.

Tester

!python -m spacy download en_core_web_lg 

réussi!!!


0 commentaires

2
votes

Ouvrez l'invite de commande ou le terminal et exécutez le code ci-dessous:

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

Exécutez le morceau ci-dessous dans votre bloc-notes Jupiter.

import spacy

nlp = spacy.load('en_core_web_sm')

J'espère que le code ci-dessus fonctionne pour tous :)


0 commentaires

1
votes
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')
Try giving the absolute path of the package with the version as shown in the image.It works perfectly fine.

0 commentaires

3
votes

Étapes pour charger des modules basés sur différentes versions de spacy

téléchargez la version la mieux adaptée d'un modèle spécifique pour votre installation spaCy

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

ou

nlp = spacy.load('en_core_web_sm') 

Ajoutez à votre fichier d'exigences ou fichier yaml d'environnement. Il existe une gamme de versions avec laquelle une version spacy est comptable, vous pouvez en voir plus sous https://github.com/explosion/spacy-models/releases

si vous n'êtes pas sûr d'exécuter le code ci-dessous

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

émettra un avertissement indiquant quel modèle de version sera compatible avec votre version Spacy installée

Exemple enironment.yml

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


0 commentaires

0
votes

J'ai essayé toutes les réponses ci-dessus mais je n'ai pas réussi. Ci-dessous a travaillé pour moi:

(Spécifique au système d'exploitation WINDOWS)

  1. Exécutez l'invite de commande anaconda avec le privilège d'administrateur (Important)
  2. Ensuite, exécutez les commandes ci-dessous:
import spacy
spacy.load('en')
  1. Essayez la commande ci-dessous pour la vérification:
  pip install -U --user spacy    
  python -m spacy download en
  1. Cela pourrait également fonctionner pour d'autres versions: entrez la description de l'image ici


0 commentaires

0
votes

J'ai également eu le même problème car je ne pouvais pas charger le module en utilisant '' 'spacy.load ()' '' Vous pouvez suivre les étapes ci-dessous pour l'exécuter sur Windows:

  1. télécharger en utilisant ! python -m spacy download en_core_web_sm

  2. import en_core_web_sm comme import en_core_web_sm

  3. charger en utilisant en_core_web_sm.load () vers une variable

    python -m spacy télécharger en_core_web_sm import en_core_web_sm nlp = en_core_web_sm.load ()


0 commentaires