Perpustakaan untuk NLP klinis dengan spacy.

MedSpacy saat ini dalam beta.
MedSpacy adalah perpustakaan alat untuk melakukan nlp klinis dan tugas pemrosesan teks dengan kerangka kerja spacy yang populer. Paket medspacy menyatukan sejumlah paket lain, yang masing -masing mengimplementasikan fungsionalitas spesifik untuk pemrosesan teks klinis umum khusus untuk domain klinis, seperti segmentasi kalimat, analisis kontekstual dan pernyataan atribut, dan deteksi bagian.
medspacy dimodulasi sehingga setiap komponen dapat digunakan secara mandiri. Semua medspacy dirancang untuk digunakan sebagai bagian dari pipa pemrosesan spacy . Masing -masing modul berikut tersedia sebagai bagian dari medspacy :
medspacy.preprocess : Preprocessing destruktif untuk memodifikasi teks klinis sebelum diprosesmedspacy.sentence_splitter : segmentasi kalimat klinismedspacy.ner : Utilitas untuk mengekstraksi konsep dari teks klinismedspacy.context : Implementasi konteks untuk mendeteksi pengubah semantik dan atribut entitas, termasuk negasi dan ketidakpastianmedspacy.section_detection : Deteksi dan Segmentasi Bagian Klinismedspacy.postprocess : Kerangka kerja fleksibel untuk memodifikasi dan menghapus entitas yang diekstraksimedspacy.io : utilitas untuk mengubah teks yang diproses menjadi data terstruktur dan berinteraksi dengan databasemedspacy.visualization : utilitas untuk memvisualisasikan konsep dan hubungan yang diekstraksi dari teksSpacyQuickUMLS : Ekstraksi konsep UMLS kompatibel dengan spacy dan medspacy yang diimplementasikan oleh Fork Quickumls kami. Lebih detail tentang komponen ini, cara menggunakannya, cara menghasilkan sumber daya UMLS di luar sampel UMLS kecil dapat ditemukan di buku catatan ini.Pekerjaan di masa depan dapat mencakup I/O, ekstraksi hubungan, dan model klinis pra-terlatih.
Apa yang baru di 1.3.1:
requirements.txt yang dikonfigurasi ulang.txt dan ketergantungan MedSpacy yang diperbarui untuk mendukung versi spacy selanjutnya hingga 3.8.2.Pada 10/2/2021 (versi 0.2.0.0), MedSpacy mendukung Spacy V3
Pada Mei 2024, MedSpacy telah direstrukturisasi untuk memungkinkan mendistribusikan aturan dan sumber daya dalam bahasa selain bahasa Inggris.
Harap dicatat bahwa beberapa bahasa secara efektif "kosong" dari perspektif medspacy. Kami memiliki permintaan untuk mengizinkan beberapa bahasa ini, tetapi kami tidak memiliki aturan karena tim MedSpacy bekerja terutama dalam bahasa Inggris. Silakan lihat tabel di bawah ini untuk ringkasan apa yang tersedia dalam setiap bahasa, karena masing -masing bervariasi. Sampai tulisan ini, bahasa telah diurutkan sesuai dengan aturan/kedewasaan apa yang mereka dukung saat ini. Jika Anda membaca ini dan Anda memiliki aturan atau ingin mengembangkan aturan dalam bahasa lain, silakan pertimbangkan untuk berkontribusi. Kami dapat membantu membuat pekerjaan Anda terintegrasi.
| Bahasa | Aturan konteks | Aturan Bagian | Sampel QuickUMLS (dan Uji Unit) |
|---|---|---|---|
| Bahasa Inggris (en) | Ya | Ya | Ya |
| Prancis (FR) | Ya | Sangat sedikit | Ya |
| Belanda (NL) | Ya | TIDAK | TIDAK |
| Spanyol | TIDAK | Sangat sedikit | Ya |
| Polandia (PL) | TIDAK | TIDAK | TIDAK |
| Portugis (PT) | TIDAK | TIDAK | Ya |
| Italia (itu) | TIDAK | TIDAK | Ya |
| Jerman (DE) | TIDAK | TIDAK | TIDAK |
Mengenai aturan yang tersedia dalam bahasa -bahasa ini, beberapa kutipan untuk disebutkan:
Anda dapat menginstal medspacy menggunakan setup.py :
python setup.py installAtau dengan PIP:
pip install medspacyUntuk menginstal versi sebelumnya yang menggunakan Spacy 2:
pip install medspacy==medspacy 0.1.0.2 Paket berikut diperlukan dan diinstal saat medspacy diinstal:
Jika Anda mengunduh model lain, Anda dapat menggunakannya dengan memberikan model itu sendiri atau nama model ke medspacy.load(model_name) :
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" }) Berikut adalah contoh sederhana yang menunjukkan cara menerapkan dan memvisualisasikan pipa berbasis aturan sederhana menggunakan medspacy :
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: 
Untuk contoh dan penjelasan yang lebih rinci dari setiap komponen, lihat folder notebook.
Jika Anda menggunakan MedSpacy dalam pekerjaan Anda, pertimbangkan mengutip makalah kami! Dipresentasikan pada Simposium Tahunan AMIA 2021, pracetak yang tersedia di 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"
}
}
Berikut adalah beberapa tautan ke proyek atau tutorial yang menggunakan MedSpacy. Jika Anda memiliki proyek yang menggunakan MedSpacy yang ingin Anda gunakan, beri tahu kami!
notebooks/nlp-*.ipynb