3. 药物领域数据源概览
做药物知识图谱,第一件事不是写代码,而是搞清楚数据从哪来。我见过不少团队,一上来就怼着PubMed猛爬,结果抽出来的实体一半是噪声。数据源选不对,后续所有质控都是白费力气。
今天我们就聊聊几个核心数据源:药品说明书、临床指南、医学文献。以及一些你可能会忽略,但特别重要的补充数据源。嗯,先说说明书吧。
3.1 药品说明书
说明书是结构化程度最高的药物数据源之一。它有法定格式,字段固定,权威性高。国内药品说明书由国家药监局(NMPA)备案,内容涵盖成分、适应症、用法用量、不良反应、禁忌等。
我在项目中遇到过最头疼的问题:同一款药,不同厂家的说明书细节不一样。比如某个中成药,A厂的说明书写了“不良反应尚不明确”,B厂的却列了五六项。你说哪个对?
所以,质控时要建立标准字段对齐策略。建议按这个清单做预处理:
- 药品通用名 — 必须统一成中国药典名称
- 商品名 — 可保留多个别名,但需标注来源厂家
- 成分/处方 — 化学药写活性成分,中成药写组方
- 适应症 — 严格按说明书原文,不要自行归纳
- 禁忌/慎用 — 人群、疾病、药物相互作用
- 不良反应 — 按频率或系统分类
- 用法用量 — 成人/儿童/老年人分列
- 贮藏条件 — 温度、避光、密闭等
举个例子,你从某药品说明书抽出来的数据,可能长这样:
{
"药品": "阿托伐他汀钙片",
"通用名": "阿托伐他汀钙",
"商品名": ["立普妥", "阿乐"],
"规格": "10mg/片",
"适应症": ["高胆固醇血症", "冠心病"],
"不良反应": [
{"系统": "消化系统", "症状": "便秘、腹胀"},
{"系统": "肌肉骨骼", "症状": "肌痛"}
],
"禁忌": "活动性肝病、孕妇及哺乳期妇女"
}
这个JSON是我随便写的,但实际项目中字段会比这多不少。质控时重点查两个:一是字段有没有缺失,二是有没有多出来说明书上没有的内容。说白了,严格忠于原文。
3.2 临床指南
临床指南跟说明书很不一样。指南是专家共识,不是法规。它代表的是当前最佳实践,而不是唯一标准。我记得某年有个降压指南更新,直接把几个老药的推荐级别从“一线”降到了“备选”。如果你图谱里的推荐用药还是三年前的版本,那这个知识其实已经过时了。
临床指南的核心价值在于知识决策路径。比如:
- 患者诊断为2型糖尿病
- 首先评估糖化血红蛋白水平
- 若HbA1c > 9%,推荐起始联合用药
- 联合方案:二甲双胍 + SGLT-2抑制剂
这种流程性知识,说明书里没有,恰恰是临床最需要的。你在抽指南知识的时候,要注意几点:
- 版本日期 — 指南更新周期通常2-3年,过期内容要标记
- 推荐等级 — 强推荐、弱推荐、有条件推荐,不能混淆
- 证据来源 — 是RCT还是专家意见,置信度不一样
- 适用人群 — 成人/儿童/孕妇/老年人,别一刀切
避坑提醒: 我曾经把某指南的“不推荐”和“不常规推荐”当成同一个级别处理。后来临床专家审稿时直接指出:这两个级别在不同场景下差异很大,“不推荐”意味着不要用,而“不常规推荐”只是在部分人群中不优先。差一个字,知识图谱的可靠性就打了折扣。
3.3 医学文献
文献是前沿发现的宝库。药品超说明书用法、罕见不良反应、新药临床试验结果——这些说明书和指南里都没有,最先出现在文献里。
但文献也是噪声最大的数据源。为什么?
- 质量参差不齐:顶刊 vs 低分期刊,置信度天差地别
- 结论可能矛盾:A论文说有效,B论文说无效
- 抽取难度大:全文本,没有固定字段
- 时效性强:一年前的结论可能被推翻
我的建议是:文献数据不要直接入库,作为候选知识进入待审核池。经过专家评审后才能推入主图谱。你可以在实体关系上打一个标签“source_type: literature”,然后配置置信度分数。
举个例子,从文献抽取的实体关系:
# 用简单三元组表示
头实体: 瑞德西韦
关系: 超说明书用于
尾实体: 新冠病毒感染
证据: PMID 32007143, 2021
置信度: 0.75
3.4 其他不可忽视的数据源
除了上面三个,还有一些你可能会遇到的数据源:
| 数据源 | 特点 | 质控重点 |
|---|---|---|
| 医保目录 | 国家统一发布,字段规范 | 版本一致性,分类标准(甲乙类) |
| 药品注册信息 | CFDA数据,权威性高 | 批准文号格式验证,关联API |
| 不良反应监测数据 | 真实世界数据,量大 | 去重,归一化,排除误报 |
| 药物相互作用数据库 | 专业库如DrugBank,结构好 | 映射到国内药品通用名 |
| 临床路径 | 医院流程标准,具有可操作性 | 机构差异大,需标注来源医院 |
我个人习惯在融合数据源前,先做一层实体对齐。比如“阿司匹林”在说明书里叫“阿司匹林肠溶片”,在指南里叫“乙酰水杨酸”,在文献里可能叫“Aspirin”。不统一对齐,后面所有质控都会乱套。
3.5 数据源选取与优先级
不同的应用场景,数据源的优先级应该不一样。比如做临床决策支持系统,指南和说明书的权重必须高于文献。做新药研发知识挖掘,文献和临床试验数据的权重就要往上提。
我画了张图,帮你理清楚各个数据源在知识图谱中的定位:
从图上你能看到,最下面一层是结构化比较好的数据源,直接融合没问题。中间层是非结构化或半结构化的,需要额外处理。最顶层才是我们最终要交付的知识图谱。
小技巧: 在批次抽取时,给每个数据源分配一个权重分数。说明书权重设为1.0,指南0.9,文献0.6。同一个三元组如果从两个不同数据源抽出来,取加权平均值。这样能避免文献噪声污染整个图谱。