【问题标题】:Meaning of "drop" in SpaCy custom NER model training?SpaCy 自定义 NER 模型训练中“丢弃”的含义?
【发布时间】:2026-02-06 10:20:11
【问题描述】:

以下代码是 SpaCy 命名实体识别 (NER) 的示例训练循环。

for itn in range(100):
    random.shuffle(train_data)
    for raw_text, entity_offsets in train_data:
        doc = nlp.make_doc(raw_text)
        gold = GoldParse(doc, entities=entity_offsets)
        nlp.update([doc], [gold], drop=0.5, sgd=optimizer)
nlp.to_disk("/model")

dropspacy 一样是辍学率。有人能详细解释一下同一个意思吗?

【问题讨论】:

  • 随机删除特征/内部表示以避免过度拟合。这使得模型更难记住训练数据。
  • 这是否意味着,如果有 100 条记录需要训练,并且我给 drop 为 0.5,那么在第一个 epoch 中只有 50 条记录将用于训练?

标签: python nlp spacy named-entity-recognition


【解决方案1】:

根据文档 here,SpaCy Entity Recognizer 是一个应该实现 thinc.neural.Model API 的神经网络。您所说的drop 参数称为dropout rate,这是一种优化神经网络的方法。

根据我的经验,推荐值为0.2,这意味着该模型中使用的大约 20% 的神经元将在训练期间随机丢弃。

【讨论】: