medSpaCy: 基于spaCy的临床自然语言处理库
medSpaCy目前处于测试阶段。
概述
medSpaCy是一个基于流行spaCy框架的临床NLP和文本处理工具库。该软件包整合了多个专用模块,每个模块实现针对临床文本处理的特定功能,包括句子分割、上下文分析、属性断言和段落检测等。
medspacy采用模块化设计,每个组件均可独立使用。所有功能均设计为spacy处理流程的组成部分,包含以下模块:
- medspacy.preprocess: 临床文本处理前的破坏性预处理
- medspacy.sentence_splitter: 临床句子分割
- medspacy.ner: 临床文本概念提取工具
- medspacy.context: 实现ConText算法,用于检测语义修饰符和实体属性(包括否定和不确定性)
- medspacy.section_detection: 临床段落检测与分割
- medspacy.postprocess: 修改和移除提取实体的灵活框架
- medspacy.io: 将处理后的文本转换为结构化数据及数据库交互工具
- medspacy.visualization: 可视化提取概念和关系的工具
- SpacyQuickUMLS: 通过改进版QuickUMLS实现与spacy和medspacy兼容的UMLS概念提取
未来工作可能包括I/O处理、关系提取和预训练临床模型。
最新版本1.3.1(2024年11月21日)
新特性:
- 优化数据库I/O,支持批量写入SQLite概念数据(已在mariadb测试)
- 重新配置requirements.txt并更新依赖以支持spaCy 3.8.2及以上版本
- 停止支持Python 3.6和3.7版本
- 可选允许在段落标题中添加句子边界
自2021年10月2日(版本0.2.0.0)起支持spaCy v3
多语言支持
截至2024年5月,medspacy已重构以支持除英语外的其他语言规则和资源分发。各语言支持情况如下:
语言 | ConText规则 | 段落规则 | QuickUMLS样本(含单元测试) |
---|---|---|---|
英语 (en) | 是 | 是 | 是 |
法语 (fr) | 是 | 少量 | 是 |
荷兰语 (nl) | 是 | 否 | 否 |
西班牙语 (es) | 否 | 少量 | 是 |
波兰语 (pl) | 否 | 否 | 否 |
葡萄牙语 (pt) | 否 | 否 | 是 |
意大利语 (it) | 否 | 否 | 是 |
德语 (de) | 否 | 否 | 否 |
安装使用
通过setup.py安装:
|
|
或使用pip:
pip install medspacy
安装使用spaCy 2的旧版本:
pip install medspacy==0.1.0.2
基础使用示例
|
|