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

Spacy3自定义管道向doc.ents追加新实体触发TypeError报错求解

报错触发原因

错误完全来自doc.ents = list(doc.ents) + [cars]这行的语法逻辑错误:

  • 你通过列表推导生成的cars变量本身就是元素为Span对象的一维列表,格式和list(doc.ents)完全匹配。
  • 拼接时你额外给cars套了一层[],导致最终赋值给doc.ents的是嵌套列表:[原有实体Span, ..., [汽车1_Span, 汽车2_Span...]]。
  • spaCy的doc.ents属性要求赋值内容必须是纯Span对象组成的一维可迭代对象,嵌套列表不符合格式要求,底层解析时预期读取Span对应的位置整数属性,实际读取到了子列表对象,因此抛出整数要求的类型错误。
修复方案

将错误行修改为如下内容即可正常运行:

doc.ents = list(doc.ents) + cars

如果后续出现实体重叠报错,可以调用spaCy内置的filter_spans方法处理冲突:

from spacy.util import filter_spans
doc.ents = filter_spans(list(doc.ents) + cars)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 08:15:01