实体链接
将片段标注链接到外部知识库,如Wikidata、UMLS或自定义API。
实体链接
实体链接使标注者能够将片段标注连接到外部知识库(KB),如 Wikidata 或 UMLS。这在文本提及和规范实体之间创建语义链接,对命名实体识别、概念规范化和知识图谱构建非常有价值。
工作原理
当为片段标注方案启用实体链接时:
- 标注者高亮文本并分配标签(例如 "PERSON"、"ORGANIZATION")
- 片段控制栏上出现链接图标
- 点击图标打开搜索模态框以查找匹配的知识库实体
- 所选实体 ID 与片段标注一起存储
- 已链接的片段显示填充图标,并在悬停时显示实体详情
快速入门
通过向片段方案添加 entity_linking 配置来启用实体链接:
yaml
annotation_schemes:
- annotation_type: span
name: ner
description: Named Entity Recognition with KB linking
labels:
- name: PERSON
tooltip: "People's names"
- name: ORGANIZATION
tooltip: "Companies, agencies, institutions"
- name: LOCATION
tooltip: "Places, cities, countries"
entity_linking:
enabled: true
knowledge_bases:
- name: wikidata
type: wikidata
language: en配置选项
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
enabled | boolean | false | 为此方案启用实体链接 |
knowledge_bases | list | [] | 知识库配置列表 |
auto_search | boolean | true | 打开模态框时自动搜索 |
required | boolean | false | 保存片段前要求实体链接 |
multi_select | boolean | false | 允许链接到多个实体 |
知识库配置
| 选项 | 类型 | 默认值 | 描述 |
|---|---|---|---|
name | string | 必填 | 此知识库的唯一标识符 |
type | string | 必填 | 知识库类型:wikidata、umls 或 rest |
api_key | string | null | 需要认证的服务的 API 密钥 |
base_url | string | null | REST API 的基础 URL |
language | string | "en" | 搜索结果的语言代码 |
timeout | integer | 10 | 请求超时时间(秒) |
支持的知识库
Wikidata
免费、开放的知识库,拥有超过 1 亿个实体。无需 API 密钥。
yaml
entity_linking:
enabled: true
knowledge_bases:
- name: wikidata
type: wikidata
language: en支持多语言标签、实体别名(例如 "NYC" 可找到 "New York City")以及 Wikipedia 文章链接。
UMLS
全面的医学和生物医学术语库。需要从 UTS 获取免费的 API 密钥。
yaml
entity_linking:
enabled: true
knowledge_bases:
- name: umls
type: umls
api_key: ${UMLS_API_KEY}包含医学概念、药物、疾病、手术,以及对 200 多个源词汇表(SNOMED CT、ICD-10、MeSH、RxNorm)的交叉引用。
自定义 REST API
连接到任何具有 REST API 的知识库:
yaml
entity_linking:
enabled: true
knowledge_bases:
- name: internal_kb
type: rest
base_url: https://api.example.com
api_key: optional_api_key
extra_params:
search_endpoint: /search
entity_endpoint: /entity/{entity_id}
search_query_param: q
results_path: data.results
entity_id_field: id
label_field: name
description_field: description多知识库
配置多个知识库,让标注者选择最合适的来源:
yaml
entity_linking:
enabled: true
knowledge_bases:
- name: wikidata
type: wikidata
language: en
- name: umls
type: umls
api_key: ${UMLS_API_KEY}
- name: company_entities
type: rest
base_url: https://internal.company.com/api/entities搜索模态框中的下拉菜单允许标注者在配置的知识库之间切换。
多选模式
启用多选以允许将片段链接到多个实体,对歧义提及很有用:
yaml
entity_linking:
enabled: true
multi_select: true
knowledge_bases:
- name: wikidata
type: wikidata
language: en数据格式
实体链接的片段在输出中包含额外字段:
json
{
"id": "instance_001",
"text": "Albert Einstein was born in Ulm, Germany in 1879.",
"annotations": {
"ner": {
"spans": [
{
"text": "Albert Einstein",
"start": 0,
"end": 15,
"label": "PERSON",
"kb_id": "Q937",
"kb_source": "wikidata",
"kb_label": "Albert Einstein"
},
{
"text": "Ulm",
"start": 28,
"end": 31,
"label": "LOCATION",
"kb_id": "Q3012",
"kb_source": "wikidata",
"kb_label": "Ulm"
}
]
}
}
}最佳实践
- 启用自动搜索以提高效率 - 用片段文本预填充搜索
- 除非必要,不要求求链接 - 找不到实体时不要阻止标注
- 为慢速网络设置适当的超时时间
- 将知识库与实体类型匹配 - 通用实体使用 Wikidata,生物医学术语使用 UMLS,领域特定实体使用自定义 API
- 为歧义提及使用多选 - 缩写、常见名称、多义词
延伸阅读
有关实现细节,请参阅源文档。