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

执行.spans赋值时SpaCy报错'Doc对象无spans属性'是什么原因?

问题根因

你使用的spaCy 2.2.4属于v2版本分支,Doc.spans属性是spaCy v3.0及以上版本才新增的接口,旧版本不存在该属性,所以会触发AttributeError。该问题既不是spaCy漏洞,也不是文档内容过时,只是你查看的是最新版官方文档,和当前环境安装的版本不匹配导致的。

解决方案

方案1:升级spaCy到v3及以上版本

Colab默认预装的spaCy版本较低,直接执行以下命令升级即可:

pip install -U spacy
# 升级后需要重新下载对应版本的预训练模型
python -m spacy download en_core_web_sm

升级完成后你原有代码可直接正常运行。

方案2:spaCy v2版本兼容写法

如果暂时不想升级版本,可以用Doc.user_data容器存储自定义span,参考写法如下:

import spacy
nlp = spacy.load('en_core_web_sm')
sentence = "The car with the white wheels was being confiscated by the police when the owner returns from robbing a bank"
doc = nlp(sentence)

# v2版本无spans属性,用user_data存储自定义span分组
if 'spans' not in doc.user_data:
    doc.user_data['spans'] = {}
doc.user_data['spans']['remove_parts'] = [doc[2:6], doc[9:12]]
print(doc.user_data['spans']['remove_parts'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.21 09:15:04