Библиотека для клинического НЛП со СПИЦИИ.

Medspacy в настоящее время находится в бета -версии.
Medspacy - это библиотека инструментов для выполнения клинических задач NLP и обработки текста с популярной структурой Spacy. Пакет medspacy объединяет ряд других пакетов, каждый из которых реализует специфическую функциональность для общей обработки клинического текста, специфичной для клинической области, такой как сегментация предложения, контекстуальный анализ и утверждение атрибутов, а также обнаружение раздела.
medspacy модульной, так что каждый компонент может использоваться независимо. Все medspacy предназначено для использования в рамках конвейера по обработке spacy . Каждый из следующих модулей доступен как часть medspacy :
medspacy.preprocess : разрушительная предварительная обработка для изменения клинического текста перед обработкойmedspacy.sentence_splitter : сегментация клинических предложенийmedspacy.ner : утилиты для извлечения концепций из клинического текстаmedspacy.context : реализация контекста для обнаружения семантических модификаторов и атрибутов сущностей, включая отрицание и неопределенностьmedspacy.section_detection : обнаружение и сегментация клинического разделаmedspacy.postprocess : Гибкая структура для изменения и удаления извлеченных объектовmedspacy.io : утилиты для преобразования обработанных текстов в структурированные данные и взаимодействие с базами данныхmedspacy.visualization : утилиты для визуализации концепций и отношений, извлеченных из текстаSpacyQuickUMLS : UMLS Concept Extraction, совместимая с Spacy и Medspacy, реализованной нашей вилкой Quickumls. Более подробную информацию об этом компоненте, как его использовать, как генерировать ресурсы UMLS за пределами малого образца UMLS, можно найти в этой записной книжке.Будущая работа может включать в себя ввод/вывод, экстракцию отношений и предварительно обученные клинические модели.
Что нового в 1.3.1:
requirements.txt и обновленные MedspacyDependencies для поддержки более поздних версий Spacy до 3,8.2.По состоянию на 2/2/2021 (версия 0.2.0.0), Medspacy поддерживает Spacy v3
По состоянию на май 2024 года Medspacy был реструктурирован, чтобы разрешить распределение правил и ресурсов на языках, кроме английского.
Обратите внимание, что некоторые языки эффективно «пустые» с точки зрения Medspacy. У нас были просьбы разрешить некоторые из этих языков, но у нас нет правил, так как команда Medspacy работает в основном на английском языке. Пожалуйста, смотрите таблицу ниже для краткого изложения того, что доступно на каждом языке, поскольку каждый из них варьируется. На момент написания этой статьи языки были отсортированы в порядке того, какие правила/зрелость они в настоящее время поддерживают. Если вы читаете это, и у вас есть правила или вы хотите разработать правила на другом языке, пожалуйста, рассмотрите возможность внести свой вклад. Мы можем помочь интегрировать вашу работу.
| Язык | Контекст правила | Правила раздела | Образец Quickumls (и модульный тест) |
|---|---|---|---|
| Английский (en) | Да | Да | Да |
| Французский (FR) | Да | Очень мало | Да |
| Голландский (NL) | Да | Нет | Нет |
| Испанский (ES) | Нет | Очень мало | Да |
| Польский (PL) | Нет | Нет | Нет |
| Португальский (PT) | Нет | Нет | Да |
| Итальянский (это) | Нет | Нет | Да |
| Немецкий (DE) | Нет | Нет | Нет |
Что касается правил, доступных на этих языках, несколько цитат, чтобы упомянуть:
Вы можете установить medspacy с помощью setup.py :
python setup.py installИли с PIP:
pip install medspacyЧтобы установить предыдущую версию, которая использует Spacy 2:
pip install medspacy==medspacy 0.1.0.2 Следующие пакеты требуются и установлены при установке medspacy :
Если вы загружаете другие модели, вы можете использовать их, предоставив саму модель или имя модели 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" }) Вот простой пример, показывающий, как реализовать и визуализировать простой трубопровод, основанный на правилах, используя 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: 
Более подробные примеры и объяснения каждого компонента см. В папке ноутбуков.
Если вы используете Medspacy в своей работе, подумайте о ссылке на нашу газету! Представлено на ежегодном симпозиуме AMIA 2021, предварительно доступен на 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"
}
}
Вот некоторые ссылки на проекты или учебные пособия, которые используют Medspacy. Если у вас есть проект, который использует Medspacy, который вы хотели бы использовать, сообщите нам!
notebooks/nlp-*.ipynb