🚀 DrBERT-CASM2
DrBERT-CASM2 是一个法语命名实体识别模型,它基于 DrBERT 进行微调。DrBERT 是一个针对生物医学和临床领域的法语预训练模型。该模型使用 medkit 训练器进行训练,能够检测以下类型的实体:问题、治疗方法和检查项目。
🚀 快速开始
安装 medkit
首先,请使用以下命令安装 medkit:
pip install 'medkit-lib[optional]'
更多信息和示例请查看 文档。
使用模型
from medkit.core.text import TextDocument
from medkit.text.ner.hf_entity_matcher import HFEntityMatcher
matcher = HFEntityMatcher(model="medkit/DrBERT-CASM2")
test_doc = TextDocument("Elle souffre d'asthme mais n'a pas besoin d'Allegra")
detected_entities = matcher.run([test_doc.raw_segment])
msg = "|".join(f"'{entity.label}':{entity.text}" for entity in detected_entities)
print(f"Text: '{test_doc.text}'\n{msg}")
Text: "Elle souffre d'asthme mais n'a pas besoin d'Allegra"
'problem':asthme|'treatment':Allegra
✨ 主要特性
- 微调基础:基于 DrBERT 进行微调。
- 开发团队:由 @camila-ud、medkit 和 HeKA 研究团队开发。
- 数据集来源:来自 @aneuraz 的标注版本 'corpusCasM2: A corpus of annotated clinical texts',该标注由巴黎城市大学的硕士学生合作完成,语料库包含来自 CAS 的文档。
📦 安装指南
请使用以下命令安装 medkit:
pip install 'medkit-lib[optional]'
更多信息和示例请查看 文档。
💻 使用示例
基础用法
from medkit.core.text import TextDocument
from medkit.text.ner.hf_entity_matcher import HFEntityMatcher
matcher = HFEntityMatcher(model="medkit/DrBERT-CASM2")
test_doc = TextDocument("Elle souffre d'asthme mais n'a pas besoin d'Allegra")
detected_entities = matcher.run([test_doc.raw_segment])
msg = "|".join(f"'{entity.label}':{entity.text}" for entity in detected_entities)
print(f"Text: '{test_doc.text}'\n{msg}")
高级用法
from medkit.text.metrics.ner import SeqEvalEvaluator
matcher = HFEntityMatcher(model="medkit/DrBERT-CASM2")
predicted_entities = [matcher.run([doc.raw_segment]) for doc in test_documents]
evaluator = SeqEvalEvaluator(tagging_scheme="iob2")
evaluator.compute(test_documents,predicted_entities=predicted_entities)
你可以使用来自 HF 的分词器按标记而不是字符进行评估:
from transformers import AutoTokenizer
tokenizer_drbert = AutoTokenizer.from_pretrained("medkit/DrBERT-CASM2", use_fast=True)
evaluator = SeqEvalEvaluator(tokenizer=tokenizer_drbert,tagging_scheme="iob2")
evaluator.compute(test_documents,predicted_entities=predicted_entities)
📚 详细文档
预期用途和限制
限制和偏差
此模型是为开发和测试阶段而训练的。该模型受其训练数据集的限制,使用时应谨慎。结果无法保证,该模型仅应在数据探索阶段使用。该模型可能能够在法语医学文档分析的早期阶段检测实体。
为了最小化训练时间,最大标记大小被减少到 128 个标记。
训练数据
此模型在 CASM2 上进行了微调,CASM2 是一个由硕士学生标注的包含临床病例(法语)的内部语料库。该语料库包含超过 5000 个 medkit 文档(约短语),其中包含待检测的实体。
按分割的文档(约短语)数量
分割 |
# medkit 文档 |
训练集 |
5824 |
验证集 |
1457 |
测试集 |
1821 |
每个实体类型的示例数量
分割 |
治疗方法 |
检查项目 |
问题 |
训练集 |
3258 |
3990 |
6808 |
验证集 |
842 |
1007 |
1745 |
测试集 |
994 |
1289 |
2113 |
训练过程
此模型使用 medkit 训练器在 CPU 上进行微调,大约需要 3 小时。
模型性能
在 CASM2 测试数据集上计算的模型性能(使用 medkit seqeval 评估器)
实体 |
精确率 |
召回率 |
F1 值 |
治疗方法 |
0.7492 |
0.7666 |
0.7578 |
检查项目 |
0.7449 |
0.8240 |
0.7824 |
问题 |
0.6884 |
0.7304 |
0.7088 |
总体 |
0.7188 |
0.7660 |
0.7416 |
🔧 技术细节
该模型基于法语预训练模型 DrBERT 进行微调,使用 medkit 训练器在特定的临床语料库上进行训练,以检测特定类型的实体。为了减少训练时间,最大标记大小被设置为 128 个标记。
📄 许可证
本项目采用 MIT 许可证。
📖 引用
@online{medkit-lib,
author={HeKA Research Team},
title={medkit, A Python library for a learning health system},
url={https://pypi.org/project/medkit-lib/},
urldate = {2023-07-24},
}
HeKA Research Team, “medkit, a Python library for a learning health system.” https://pypi.org/project/medkit-lib/ (accessed Jul. 24, 2023).