ImportError:无法从“ spacy.lang.en”导入名称“ LEMMA_INDEX”

我正在尝试在spaCy中制作词机,但是当我运行自己的代码时,此错误不断弹出。

+-------------------+
|date               |
+-------------------+
|2019-04-05 15:49:57|
+-------------------+

这是代码

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环境中使用python 3.7.4。我还下载了en_core_web_sm,所以我不知道为什么它错了。

cb943527 回答:ImportError:无法从“ spacy.lang.en”导入名称“ LEMMA_INDEX”

这是由于从v2.1到v2.2的更改,将大型查找表移出了主库。现在,lemmatizer数据存储在单独的包spacy-lookups-data中,并且LemmatizerLookups对象而不是各个变量初始化。请参阅此处有关初始化lemmatizer的第二部分:https://spacy.io/usage/v2-2#migrating

如果安装软件包spacy-lookups-data,则可以像下面这样访问默认的英语lemmatizer:

from spacy.lang.en import English
lemmatizer = English.Defaults.create_lemmatizer()

它会自动从spacy-lookups-data加载数据。如果不可用,则引理将与文本中的标记相同。

如果您使用诸如en_core_web_sm之类的英语模型,则该模型包含查找表,因此您不需要其他软件包spacy-lookups-data

import spacy
nlp = spacy.load('en_core_web_sm')
lemmatizer = nlp.Defaults.create_lemmatizer()
本文链接:https://www.f2er.com/3132882.html

大家都在问