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

spaCy v3加载'en'模型报错 torchtext调用spacy分词失败如何解决

解决方案

1. 废弃短名的适配处理

spaCy v3及以上版本已经完全废弃en短名模型加载方式,原有python -m spacy download en命令下载的是适配spaCy v2的旧模型,无法在v3版本中使用,需下载完整命名的官方模型。

2. 适配Jupyter环境的模型下载

Jupyter内核使用的Python环境往往和终端默认Python环境不一致,直接在终端执行下载命令无法让Jupyter加载到模型,需在Jupyter单元格中执行对应下载命令:

!python -m spacy download en_core_web_sm

执行下载命令后必须重启Jupyter内核,否则新安装的模型不会被当前运行的内核识别。

3. 修正Field初始化代码

有两种写法可选:

写法1:显式自定义分词函数

import spacy
from torchtext.data import Field
# 如导入Field报错,说明你使用的是新版torchtext,改用legacy导入:
# from torchtext.legacy.data import Field

# 加载已下载的模型
nlp = spacy.load("en_core_web_sm")
def spacy_tokenize(text):
    return [token.text for token in nlp(text)]

text_field = Field(tokenize=spacy_tokenize, lower=True, include_lengths=True, batch_first=True)

写法2:调用torchtext内置工具生成分词器

from torchtext.data.utils import get_tokenizer
from torchtext.data import Field
# 同上,新版torchtext需导入legacy下的Field

tokenizer = get_tokenizer('spacy', language='en_core_web_sm')
text_field = Field(tokenize=tokenizer, lower=True, include_lengths=True, batch_first=True)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 10:45:04