加载 en_core_web_sm 会导致 AttributeError:模块“transformers”没有属性“BertTokenizerFast”

问题描述 投票:0回答:1

我(编程和任何与电脑相关的初学者)不知道如何解决以下问题:

我安装了 spacy 3.7.2,包括 en_core_web_sm。运行代码

nlp = spacy.load("en_core_web_sm")

导致了标题问题中提到的回溯。

我尝试将 spacy 降级到版本 3.6.1(通过 pip install),然后再次运行代码并获得回溯:

RegistryError: [E892] Unknown function registry: 'vectors'. Available names: architectures, augmenters, batchers, callbacks, cli, datasets, displacy_colors, factories, initializers, languages, layers, lemmatizers, loggers, lookups, losses, misc, models, ops, optimizers, readers, schedules, scorers, tokenizers

spacy 版本 3.6.0 也发生了同样的情况。

其他人用 spacy 3.4.3 运行我的代码并且有效。因此尝试将 spacy 降级为该级别,但再次出现 AttributeError。

我注意到,在我的电脑(Windows)上,

...anaconda3\Lib\site-packages
下仍然有 en_core_web_sm 版本 3.7.2 的文件夹(尽管降级了)。我随机删除了这些文件夹。 然后再次安装
spacy
,并尝试手动安装en_core_web_sm
python -m spacy download en_core_web_sm-3.4.3

但是在cmd中得到了AttributeError。尝试安装不同旧/新版本的

spacy
以及 en_core_web_sm 但无法成功安装后者。

所以现在我什至无法加载 en_core_web_sm 因为它还没有安装。有谁知道我还可以尝试安装 en_core_web_sm 吗?

python pip nlp anaconda spacy
1个回答
0
投票

我认为您的全局环境中存在旧版本的

transformers
导致了该问题。

为了避免版本冲突,请使用 conda 创建新的虚拟环境:

 conda create -n myenv

激活

myenv
:

conda activate myenv

安装

scipy
检查安装页面:

conda install -c conda-forge spacy

下载

en_core_web_sm

python -m spacy download en_core_web_sm

现在您可以运行代码了。

© www.soinside.com 2019 - 2024. All rights reserved.