en_coref_lg модель в просторном

Привет, я пробую простой код разрешения coref в Python как

import spacy
nlp = spacy.load('en_coref_md')
doc = nlp(u'Phone area code will be valid only when all the below conditions are met. It cannot be left blank. It should be numeric. It cannot be less than 200. Minimum number of digits should be 3. ')
print(doc._.coref_clusters)
print(doc._.coref_resolved)

Он показывает следующую ошибку:

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

Если я попытаюсь установить en_coref_lg используя питон -m spacy download en_coref_lg тогда это показывает

"✘ No compatible model found for 'en_coref_lg' (spaCy v2.3.2)."

Что я должен делать?

2 ответа

Установить neuralcoref а также spacy==2.1.0:

pip uninstall spacy 
pip uninstall neuralcoref
pip install spacy==2.1.0 
pip install neuralcoref --no-binary neuralcoref

Запустите свой код:

import spacy
import neuralcoref
nlp = spacy.load('en_core_web_md')
neuralcoref.add_to_pipe(nlp)
doc = nlp(u'Phone area code will be valid only when all the below conditions are met. It cannot be left blank. It should be numeric. It cannot be less than 200. Minimum number of digits should be 3.')
print(doc._.has_coref)
print(doc._.coref_clusters)
True
[Phone area code: [Phone area code, It, It, It]]

Обратите внимание на версию spacy==2.1.0. Это необходимо, если вы хотите установить сpip.

Как вариант, соберите из исходного кода:

git clone https://github.com/huggingface/neuralcoref.git
cd neuralcoref
pip install -r requirements.txt # check for the desired spacy version
python setup.py install

Доказательство:

import spacy
import neuralcoref
nlp = spacy.load('en_core_web_md')
neuralcoref.add_to_pipe(nlp)
print(spacy.__version__)
doc = nlp(u'Phone area code will be valid only when all the below conditions are met. It cannot be left blank. It should be numeric. It cannot be less than 200. Minimum number of digits should be 3.')
print(doc._.has_coref)
print(doc._.coref_clusters)
2.3.2
True
[Phone area code: [Phone area code, It, It, It]]

Попробуйте использовать его как:

      import en_coref_md
nllp=en_coref_md.load()

думаю должно работать.

Другие вопросы по тегам