命名实体识别数据集 Template
用于构建 NER 数据集的模板,训练模型在领域专用文本中识别和分类命名实体。
NLPOverview
命名实体识别(NER)数据集训练 AI 模型识别和分类文本中指代真实世界实体的片段——人名、组织、地点、日期、货币金额、产品、医学术语、法律引用和其他领域专用实体类型。NER 是一项基础性 NLP 能力,支撑着信息提取、知识图谱构建、文档索引、PII 检测和众多下游应用。
虽然预训练的 NER 模型能够合理处理常见实体类型(人名、组织、地点),但大多数企业应用需要识别通用模型遗漏的领域专用实体类型。金融 NER 必须识别股票代码、监管机构、金融工具和申报类型。法律 NER 必须识别案例引用、法规参考、法院名称和法律专业术语。医疗 NER 必须识别药品名称、剂量、解剖学术语和临床操作。这些专业实体类型需要领域专用的训练数据。
NER 数据集在词元级别使用 BIO(或 IOB2)标注方案:B-ENTITY 标记实体片段的开始,I-ENTITY 标记实体内的后续词元,O 标记不属于任何实体的词元。更具表达力的方案如 BIOES(增加 Single 用于单词元实体,End 用于多词元实体的最后一个词元)可以通过提供更丰富的边界信息来提升模型性能。标注方案的选择应在整个数据集中保持一致。
Dataset Schema
// Token-level NER format
interface NERExample {
tokens: string[];
ner_tags: string[]; // BIO-tagged labels aligned with tokens
metadata?: {
source: string;
domain: string;
sentence_id: string;
};
}
// Span-level NER format (alternative)
interface SpanNERExample {
text: string;
entities: {
start: number; // Character offset start
end: number; // Character offset end
label: string; // Entity type
text: string; // Entity surface form
}[];
}
// Entity type definitions
interface EntitySchema {
types: {
name: string; // e.g., "MEDICATION"
description: string;
examples: string[];
}[];
}Sample Data
[
{
"tokens": ["Dr.", "Sarah", "Chen", "prescribed", "metformin", "500mg", "twice", "daily", "for", "type", "2", "diabetes", "at", "Memorial", "General", "Hospital", "."],
"ner_tags": ["O", "B-PROVIDER", "I-PROVIDER", "O", "B-MEDICATION", "B-DOSAGE", "B-FREQUENCY", "I-FREQUENCY", "O", "B-CONDITION", "I-CONDITION", "I-CONDITION", "O", "B-FACILITY", "I-FACILITY", "I-FACILITY", "O"],
"metadata": {"source": "clinical_notes", "domain": "healthcare", "sentence_id": "clinical_001"}
},
{
"tokens": ["Apple", "Inc.", "reported", "Q4", "revenue", "of", "$89.5", "billion", ",", "exceeding", "Wall", "Street", "estimates", "by", "3.2%", "."],
"ner_tags": ["B-ORG", "I-ORG", "O", "B-FISCAL_PERIOD", "O", "O", "B-MONETARY", "I-MONETARY", "O", "O", "B-ORG", "I-ORG", "O", "O", "B-PERCENTAGE", "O"],
"metadata": {"source": "financial_news", "domain": "finance", "sentence_id": "finance_001"}
},
{
"text": "The court cited Brown v. Board of Education, 347 U.S. 483 (1954) in its ruling on the equal protection claim filed in the Southern District of New York.",
"entities": [
{"start": 16, "end": 65, "label": "CASE_CITATION", "text": "Brown v. Board of Education, 347 U.S. 483 (1954)"},
{"start": 100, "end": 122, "label": "LEGAL_CONCEPT", "text": "equal protection claim"},
{"start": 137, "end": 164, "label": "COURT", "text": "Southern District of New York"}
]
}
]Data Collection Guide
在标注开始之前定义你的实体类型架构。对于每种实体类型,记录:类型名称、清晰的定义、5-10 个不同复杂度的示例、边界规则("Dr." 是否应包含在 PROVIDER 实体中?货币符号是否应包含在 MONETARY 值中?),以及嵌套规则(实体是否可以重叠或嵌套?)。模糊的边界定义是标注不一致的主要原因。
选择支持你所选格式并提供高效实体标记工作流的标注工具。Prodigy、Label Studio、BRAT 和 Doccano 等工具支持片段级标注并可转换为 BIO 格式。对于大批量标注,考虑使用主动学习工作流,让模型识别不确定的预测供人工审核,将标注员的精力集中在最有信息量的示例上。
用现有 NER 模型对文本进行预标注,让标注员纠正预测结果而非从零开始标注。这比从空白开始的人工标注显著更快,通常可减少 40-60% 的标注时间。确保标注员同时纠正误报(错误识别的实体)和漏报(遗漏的实体),以避免纠正后的数据集偏向预标注模型的错误模式。
Quality Criteria
使用标注员对之间的 F1 分数在实体级别衡量标注员间一致性。两名标注员应独立标注相同的 200-300 个句子,实体级 F1 应超过 0.85 才能认为数据集可靠。对于复杂的实体类型(法律 引用、医疗操作),0.75-0.80 的较低一致性阈值可以接受,但表明需要更详细的标注指南。
验证实体边界的一致性。检查标注员在是否将称谓(Dr.、Mr.)、后缀(Inc.、LLC)和分隔符包含在实体片段中时是否保持一致。边界不一致会显著降低模型性能,因为模型接收到关于实体起止位置的矛盾信号。运行自动一致性检查,比较相似上下文中的实体片段。
确保每种实体类型都有足够的代表。稀有实体类型至少需要 200-300 个标注实例,模型才能学到可靠的识别模式。如果某些实体类型在自然文本中很少出现,可以搜索它们频繁出现的文档,或创建包含它们的合成示例。追踪实体类型频率,标记任何少于 100 个示例的类型以进行针对性增强。
Using This Template with Ertas
将原始文本语料库导入 Ertas Data Suite 进行 PII 评估——有趣的是,用于 PII 检测的 NER 训练数据本身必须被谨慎处理,因为源文本包含真实的个人信息。使用数据溯源系统追踪哪些文档已被标注、由谁标注以及完成了哪个阶段的质量审核。导出准备好的文本到你选择的标注工具中。
标注完成后,重新导入带标签的数据集进行格式转换和最终质量验证。以 CoNLL 格式导出用于词元分类模型训练,或以 JSONL 格式导出用于基于 LLM 的 NER 微调。本地处理确保敏感的源文本在标注管道期间永远不会离开你的受控环境。
Recommended Model
对于高吞吐量的生产 NER,微调编码器模型(BERT、DeBERTa 或 RoBERTa)进行词元分类。这些模型在 CPU 上每秒处理数千个词元,在领域专用数据上微调后可提供最先进的 NER 性能。DeBERTa-v3-base 是目前英文 NER 的最佳选择。
对于需要灵活添加新实体类型而无需重新训练的 NER 任务,可微调一个 7B 的生成式模型,使用基于指令的 NER 提示。该模型可通过提示指定需要识别的实体类型,允许在不重新训练模型的情况下修改实体架构。导出为 GGUF 用于本地推理。
Ship AI that runs on your users' devices.
Early bird pricing starts at $14.50/mo — locked in for life. Plans for builders and agencies.