스파이와 함께 임상 NLP를위한 도서관.

MedSpacy는 현재 베타 버전에 있습니다.
MedSpacy는 인기있는 스파이 프레임 워크를 사용하여 임상 NLP 및 텍스트 처리 작업을 수행하기위한 도구 라이브러리입니다. 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 개념 추출은 Quickumls의 포크에서 구현 한 Spacy 및 Medspacy와 호환됩니다. 이 구성 요소에 대한 자세한 내용, 사용 방법, 작은 UMLS 샘플 이외의 UMLS 리소스를 생성하는 방법은이 노트북에서 찾을 수 있습니다.향후 연구에는 I/O, 관계 추출 및 미리 훈련 된 임상 모델이 포함될 수 있습니다.
1.3.1의 새로운 기능 :
requirements.txt 및 업데이트 된 MedSpacyDependencies를 위해 최대 3.8.2의 스파이의 이후 버전을 지원합니다.MedSpacy는 20121 년 10 월 2 일 (버전 0.2.0.0) 현재 Spacy V3를 지원합니다
2024 년 5 월 현재 MedSpacy는 영어 외에 언어로 규칙과 자원을 배포 할 수 있도록 재구성되었습니다.
일부 언어는 Medspacy의 관점에서 효과적으로 "비어 있습니다. 우리는 이러한 언어 중 일부를 허용하라는 요청을 받았지만 Medspacy 팀이 주로 영어로 일하기 때문에 규칙이 없습니다. 각 언어로 제공되는 내용을 요약하려면 아래 표를 참조하십시오. 이 글을 쓰는 시점에서 언어는 현재 지원하는 규칙/성숙 순서대로 정렬되었습니다. 이 글을 읽고 규칙이 있거나 다른 언어로 규칙을 개발하고 싶다면 기여를 고려하십시오. 우리는 당신의 작업을 통합하도록 도울 수 있습니다.
| 언어 | 컨텍스트 규칙 | 섹션 규칙 | Quickumls 샘플 (및 단위 테스트) |
|---|---|---|---|
| 영어 (en) | 예 | 예 | 예 |
| 프랑스어 (FR) | 예 | 아주 적습니다 | 예 |
| 네덜란드어 (NL) | 예 | 아니요 | 아니요 |
| 스페인어 (ES) | 아니요 | 아주 적습니다 | 예 |
| 폴란드어 (PL) | 아니요 | 아니요 | 아니요 |
| 포르투갈어 (PT) | 아니요 | 아니요 | 예 |
| 이탈리아 (IT) | 아니요 | 아니요 | 예 |
| 독일어 (DE) | 아니요 | 아니요 | 아니요 |
이 언어로 제공되는 규칙에 대해서는 몇 가지 인용을 언급 할 수 있습니다.
setup.py 사용하여 medspacy 설치할 수 있습니다.
python setup.py install또는 PIP와 함께 :
pip install medspacySpacy 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 Annual Symposium 2021에서 발표 된 Preprint는 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 참조하십시오