🚀 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).