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

求助:Spacy添加预训练模型NER至空白模型时静态向量报错

解决Spacy添加NER组件时的静态向量错误

错误原因

预训练模型es_core_news_lg的NER组件依赖其自带的静态词向量,但你创建的空白es-419模型未初始化这些向量,导致加载组件时触发RuntimeError: [E896]错误。

解决方案

方案1:复制预训练模型的词向量到空白模型

通过复制预训练模型的vocab(包含静态向量),让空白模型具备NER组件所需的向量支持,能完整保留原模型的NER性能:

import spacy

# 构建目标空白模型
main_nlp = spacy.blank("es-419")
# 加载预训练的西班牙语模型
spanish_nlp = spacy.load("es_core_news_lg")

# 复制预训练模型的词向量到空白模型的vocab
main_nlp.vocab.vectors = spanish_nlp.vocab.vectors
# 添加预训练的NER组件
main_nlp.add_pipe("ner", source=spanish_nlp, name="spanish_ner")

# 测试示例
test_text = "El Museo del Prado está en Madrid, España."
doc = main_nlp(test_text)
for ent in doc.ents:
    print(f"{ent.text}: {ent.label_}")

方案2:禁用静态向量依赖

添加组件时设置include_static_vectors=False,跳过向量校验,但可能导致NER识别性能下降(原模型基于向量训练),适合对性能要求不高或无需向量的场景:

import spacy

main_nlp = spacy.blank("es-419")
spanish_nlp = spacy.load("es_core_news_lg")

# 添加NER组件时禁用静态向量依赖
main_nlp.add_pipe("ner", source=spanish_nlp, name="spanish_ner", include_static_vectors=False)

# 测试示例
test_text = "El Museo del Prado está en Madrid, España."
doc = main_nlp(test_text)
for ent in doc.ents:
    print(f"{ent.text}: {ent.label_}")

内容的提问来源于stack exchange,提问作者Andrea Chavez M

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 14:22:40