You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改requirements.txt解决profanity-filter无法加载Spacy en模型的问题

问题原因

你的判断是正确的:profanity-filter默认会检索名为en的Spacy模型,你当前安装的en_core_web_sm没有自动注册en别名,因此触发报错。python -m spacy download en的本质就是下载对应版本的en_core_web_sm并自动创建en的别名映射。

解决方案

这里提供两种不需要手动执行spacy download命令的解决方式:

方案1:修改少量初始化代码(最简便,无需调整requirements.txt)

直接在初始化ProfanityFilter时显式指定英文对应的模型名称即可复用已安装的en_core_web_sm:

from profanity_filter import ProfanityFilter

# 显式绑定英文语言对应使用en_core_web_sm模型
pf = ProfanityFilter(spacy_models={"en": "en_core_web_sm"})

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

方案2:仅修改requirements.txt,无需调整业务代码

利用pip的egg别名机制,给已安装的en_core_web_sm额外注册en的别名,将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
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

修改后重新执行pip install -r requirements.txt,即可同时注册en_core_web_sm和en两个模型名称,profanity-filter就能正常检索到英文模型。

内容的提问来源于stack exchange,提问作者Matteo Pinna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.28 09:36:07