脏话过滤器无法加载 Spacy 模型 'en'

Profanity filter could not load Spacy model 'en'

我需要 Spacy 模型 'en' 作为 Python 亵渎过滤器。我想要一个 requirements.txt 文件来安装所有需要的东西。我有以下内容:

spacy>=2.2.0<3.0.0
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

一切都很好,但是当我尝试 运行 一个简单的代码时:

from profanity_filter import ProfanityFilter

pf = ProfanityFilter()

test = "This is bullshit"
test = pf.censor_word(test)
# "This is ***"
print(test)

我收到以下错误 Couldn't load Spacy model for any of languages: en

我认为问题在于我创建了一个符号 link 作为 en_core_web_sm,而 profanity-filter 搜索 en。事实上,如果我手动执行 python -m download en 我没有这个问题。为了解决这个问题,我应该在 requirements.txt 中更改什么?提前致谢。

您无法在 requirements.txt 中解决此问题。让快捷方式 en 为模型 en_core_web_sm 工作不是已安装包的 属性,它是 spaCy 单独管理的东西。快捷过程依赖于符号链接并且有点不稳定,这就是它在 v3 中被删除的原因。

由于脏话过滤器包似乎已被放弃,您的选择是 运行 spacy link 从命令行或自己修改脏话过滤器包。

您还可以弄清楚 spacy link 正在做什么并在代码中执行该操作(或调用相关函数)。