Python 导入错误:无法导入名称';引理指数';从';spacy.lang.en';

Python 导入错误:无法导入名称';引理指数';从';spacy.lang.en';,python,spacy,lemmatization,Python,Spacy,Lemmatization,我正试图在spaCy中创建一个lemmatizer,但是当我运行我的代码时,这个错误会不断出现 Traceback (most recent call last): File "word_pract.py", line 46, in <module> from spacy.lang.en import LEMMA_INDEX, LEMMA_EXC, LEMMA_RULES ImportError: cannot import name 'LEMMA_INDEX' from

我正试图在spaCy中创建一个lemmatizer,但是当我运行我的代码时,这个错误会不断出现

Traceback (most recent call last):
  File "word_pract.py", line 46, in <module>
    from spacy.lang.en import LEMMA_INDEX, LEMMA_EXC, LEMMA_RULES
ImportError: cannot import name 'LEMMA_INDEX' from 'spacy.lang.en' 

我的spaCy是最新的,我在conda环境中使用Python3.7.4。我还下载了en_core_web_sm,所以我不知道它为什么会错。

这是因为从v2.1版更改为v2.2版,将大型查找表移出了主库。lemmatizer数据现在存储在单独的包
spacy lookups data
中,
lemmatizer
使用
lookups
对象而不是单个变量初始化。请参阅此处关于初始化柠檬化器的第二节:

如果安装软件包
spacy lookups data
,则可以访问默认的英语lemmatizer,如下所示:

from spacy.lang.en import English
lemmatizer = English.Defaults.create_lemmatizer()
如果可用,它会自动从
spacy查找数据中加载数据。如果不可用,引理将与文本中的标记相同

如果您使用英语模型,如
en_core\u web\u sm
,则查找表包含在模型中,因此您不需要额外的软件包
spacy查找数据

import spacy
nlp = spacy.load('en_core_web_sm')
lemmatizer = nlp.Defaults.create_lemmatizer()
import spacy
nlp = spacy.load('en_core_web_sm')
lemmatizer = nlp.Defaults.create_lemmatizer()