概述
medspaCy 是一个工具库,用于使用流行的 spaCy 框架执行临床 NLP 和文本处理任务。该包汇集了多个其他包,每个包都实现了针对临床领域特定常见临床文本处理的具体功能,例如句子分割、上下文分析和属性断言,以及章节检测。
medspaCy 采用模块化设计,每个组件都可以独立使用。整个库设计为 spaCy 处理管道的一部分。以下每个模块都是 medspaCy 的一部分:
未来工作将包括 I/O、关系提取和预训练的临床模型。
最新版本 1.3.1 (2024-11-21)
主要更新:
自 2021-10-02 (版本 0.2.0.0) 起,medspaCy 支持 spaCy v3。
多语言支持
截至 2024 年 5 月,medspacy 已重构,支持分发英语之外语言的规则和资源。下表总结了各语言可用内容(按规则成熟度排序):
语言 | ConText 规则 | 章节规则 | QuickUMLS 示例 |
|---|---|---|---|
英语 | 是 | 是 | 是 |
法语 | 是 | 极少 | 是 |
荷兰语 | 是 | 否 | 否 |
西班牙语 | 否 | 极少 | 是 |
波兰语 | 否 | 否 | 否 |
葡萄牙语 | 否 | 否 | 是 |
意大利语 | 否 | 否 | 是 |
德语 | 否 | 否 | 否 |
安装
可使用 setup.py 安装:
python setup.py install或使用 pip:
pip install medspacy安装旧版本(使用 spaCy 2):
pip install medspacy==0.1.0.2依赖要求
安装 medspacy 时会自动安装以下包:
基本使用示例
import medspacy
from medspacy.ner import TargetRule
from medspacy.visualization import visualize_ent
# 加载 medspacy 模型
nlp = medspacy.load()
print(nlp.pipe_names)
text = """
既往病史:
1. 心房颤动
2. II型糖尿病
评估与计划:
无肺炎证据。继续使用华法林治疗房颤。随访管理2型糖尿病。
"""
# 添加目标概念提取规则
target_matcher = nlp.get_pipe("medspacy_target_matcher")
target_rules = [
TargetRule("atrial fibrillation", "PROBLEM"),
TargetRule("atrial fibrillation", "PROBLEM", pattern=[{"LOWER": "afib"}]),
TargetRule("pneumonia", "PROBLEM"),
TargetRule("Type II Diabetes Mellitus", "PROBLEM",
pattern=[
{"LOWER": "type"},
{"LOWER": {"IN": ["2", "ii", "two"]}},
{"LOWER": {"IN": ["dm", "diabetes"]}},
{"LOWER": "mellitus", "OP": "?"}
]),
TargetRule("warfarin", "MEDICATION")
]
target_matcher.add(target_rules)
doc = nlp(text)
visualize_ent(doc)引用 medspaCy
如在工作中使用 medspaCy,可引用发表于 AMIA 2021 年会的论文(预印本可在 Arxiv 获取)。
使用 medSpaCy 的项目
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。