Bibliothek für klinische NLP mit Spacy.

Medspacy ist derzeit in Beta.
Medspacy ist eine Bibliothek von Tools zur Ausführung klinischer NLP- und Textverarbeitungsaufgaben mit dem beliebten Spacy -Framework. Das medspacy -Paket vereint eine Reihe anderer Pakete, von denen jede spezifische Funktionalität für die gemeinsame klinische Textverarbeitung implementiert, die für die klinische Domäne spezifisch ist, wie z.
medspacy wird so modularisiert, dass jede Komponente unabhängig verwendet werden kann. Die gesamte medspacy wird so konzipiert, dass sie als Teil einer spacy Processing -Pipeline verwendet werden soll. Jeder der folgenden Module ist als Teil des medspacy verfügbar:
medspacy.preprocess : destruktive Vorverarbeitung zur Änderung des klinischen Textes vor der Verarbeitungmedspacy.sentence_splitter : klinische Satzsegmentierungmedspacy.ner : Dienstprogramme zum Extrahieren von Konzepten aus klinischem Textmedspacy.context : Implementierung des Kontextes zum Erkennen semantischer Modifikatoren und Attribute von Entitäten, einschließlich Verneinung und Unsicherheitmedspacy.section_detection : Erkennung und Segmentierung des klinischen Abschnittsmedspacy.postprocess : Flexibler Framework zum Ändern und Entfernen von extrahierten Einheitenmedspacy.io : Dienstprogramme zum Konvertieren verarbeiteter Texte in strukturierte Daten und Interaktion mit Datenbankenmedspacy.visualization : Dienstprogramme zur Visualisierung von Konzepten und Beziehungen, die aus dem Text extrahiert wurdenSpacyQuickUMLS : UMLS -Konzeptextraktion kompatibel mit Spacy und Medspacy, die durch unsere Gabel von Quickumls implementiert sind. Weitere Details zu dieser Komponente, wie man sie verwendet, wie man UMLS -Ressourcen über das kleine UMLS -Beispiel hinaus generiert, finden Sie in diesem Notebook.Zukünftige Arbeiten könnten E/A, Relations-Extraktion und vorgebliebene klinische Modelle umfassen.
Was ist neu in 1.3.1:
requirements.txtAb dem 02.10.2021 (Version 0.2.0.0) unterstützt Medspacy Spacy V3
Ab Mai 2024 wurde Medspacy umstrukturiert, um die Verteilungsregeln und Ressourcen in Sprachen neben Englisch zu ermöglichen.
Bitte beachten Sie, dass einige Sprachen aus Sicht des Medspacy effektiv "leer" sind. Wir hatten Anfragen, um einige dieser Sprachen zuzulassen, aber wir haben keine Regeln, da das Medspacy -Team hauptsächlich auf Englisch arbeitet. In der folgenden Tabelle finden Sie eine Zusammenfassung dessen, was in jeder Sprache verfügbar ist, da sie jeweils variieren. Zum jetzigen Zeitpunkt wurden die Sprachen in der Reihenfolge der Regeln/Reife sortiert, die sie derzeit unterstützen. Wenn Sie dies lesen und Regeln haben oder Regeln in einer anderen Sprache entwickeln möchten, sollten Sie einen Beitrag in Betracht ziehen. Wir können helfen, Ihre Arbeit integrieren zu lassen.
| Sprache | Kontextregeln | Abschnittsregeln | Quickumls -Probe (und Unit -Test) |
|---|---|---|---|
| Englisch (en) | Ja | Ja | Ja |
| Französisch (Fr) | Ja | Sehr wenige | Ja |
| Niederländisch (NL) | Ja | NEIN | NEIN |
| Spanisch (es) | NEIN | Sehr wenige | Ja |
| Polnisch (pl) | NEIN | NEIN | NEIN |
| Portugiesisch (PT) | NEIN | NEIN | Ja |
| Italienisch (es) | NEIN | NEIN | Ja |
| Deutsch (DE) | NEIN | NEIN | NEIN |
In Bezug auf die Regeln, die in diesen Sprachen verfügbar sind, werden einige Zitate zu erwähnen:
Sie können medspacy mit setup.py installieren:
python setup.py installOder mit PIP:
pip install medspacySo installieren Sie eine frühere Version, die Spacy 2 verwendet:
pip install medspacy==medspacy 0.1.0.2 Die folgenden Pakete sind erforderlich und installiert, wenn medspacy installiert ist:
Wenn Sie andere Modelle herunterladen, können Sie sie verwenden, indem Sie das Modell selbst oder den Modellnamen für medspacy.load(model_name) angeben:
import spacy ; import medspacy
# Option 1: Load default
nlp = medspacy . load ()
# Option 2: Load from existing model
nlp = spacy . load ( "en_core_web_sm" , disable = { "ner" })
nlp = medspacy . load ( nlp )
# Option 3: Load from model name
nlp = medspacy . load ( "en_core_web_sm" , disable = { "ner" }) Hier ist ein einfaches Beispiel, das zeigt, wie eine einfache regelbasierte Pipeline mit medspacy implementiert und visualisiert wird:
import medspacy
from medspacy . ner import TargetRule
from medspacy . visualization import visualize_ent
# Load medspacy model
nlp = medspacy . load ()
print ( nlp . pipe_names )
text = """
Past Medical History:
1. Atrial fibrillation
2. Type II Diabetes Mellitus
Assessment and Plan:
There is no evidence of pneumonia. Continue warfarin for Afib. Follow up for management of type 2 DM.
"""
# Add rules for target concept extraction
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 ) Output: 
Ausführlichere Beispiele und Erklärungen für jede Komponente finden Sie im Ordner Notebooks.
Wenn Sie Medspacy in Ihrer Arbeit verwenden, sollten Sie unser Papier zitieren! Präsentiert auf dem AMIA jährlichen Symposium 2021, Preprint erhältlich auf Arxiv.
H. Eyre, A.B. Chapman, K.S. Peterson, J. Shi, P.R. Alba, M.M. Jones, T.L. Box, S.L. DuVall, O. V Patterson,
Launching into clinical space with medspaCy: a new clinical text processing toolkit in Python,
AMIA Annu. Symp. Proc. 2021 (in Press. (n.d.).
http://arxiv.org/abs/2106.07799.
@Article{medspacy,
Author="Eyre, H. and Chapman, A. B. and Peterson, K. S. and Shi, J. and Alba, P. R. and Jones, M. M. and Box, T. L. and DuVall, S. L. and Patterson, O. V. ",
Title="{{L}aunching into clinical space with medspa{C}y: a new clinical text processing toolkit in {P}ython}",
Journal="AMIA Annu Symp Proc",
Year="2021",
Volume="2021",
Pages="438--447"
}
}
Hier sind einige Links zu Projekten oder Tutorials, die Medspacy verwenden. Wenn Sie ein Projekt haben, das Medspacy verwendet, das Sie verwenden möchten, lassen Sie es uns wissen!
notebooks/nlp-*.ipynb