スペイシーを備えた臨床NLPのライブラリ。

Medspacyは現在ベータ版です。
MedSpacyは、人気のあるSPACYフレームワークを使用して、臨床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 :Quickumlsのフォークによって実装されたSpacyとMedspacyと互換性のあるUMLSコンセプト抽出。このコンポーネントの詳細、使用方法、小さなUMLSサンプルを超えたUMLSリソースの生成方法は、このノートブックにあります。将来の作業には、I/O、関係抽出、事前に訓練された臨床モデルが含まれます。
1.3.1の新しいもの:
requirements.txtおよび更新されたmedspacy -dependenciesは、最大3.8.2のスペイシーの後のバージョンをサポートしました。10/2/2021(バージョン0.2.0.0)の時点で、MedspacyはSpacy V3をサポートしています
2024年5月現在、Medspacyは、英語以外の言語で規則とリソースを配布することを許可するために再構築されています。
一部の言語は、Medspacyの観点から効果的に「空」であることに注意してください。これらの言語の一部を許可するリクエストがありましたが、Medspacyチームは主に英語で機能するため、ルールはありません。それぞれが異なるため、各言語で利用可能なものの要約については、以下の表を参照してください。この執筆時点で、言語は現在支持されているルール/成熟度の順に分類されています。これを読んでいて、ルールがある場合、または別の言語でルールを作成したい場合は、貢献を検討してください。私たちはあなたの仕事を統合するのを手伝うことができます。
| 言語 | コンテキストルール | セクションルール | Quickumlsサンプル(および単体テスト) |
|---|---|---|---|
| 英語(en) | はい | はい | はい |
| フランス語(FR) | はい | ごく少数 | はい |
| オランダ(NL) | はい | いいえ | いいえ |
| スペイン語(es) | いいえ | ごく少数 | はい |
| ポリッシュ(pl) | いいえ | いいえ | いいえ |
| ポルトガル語(PT) | いいえ | いいえ | はい |
| イタリア語(それ) | いいえ | いいえ | はい |
| ドイツ語(de) | いいえ | いいえ | いいえ |
これらの言語で利用可能なルールに関して、言及するいくつかの引用について:
setup.pyを使用してmedspacyをインストールできます:
python setup.py installまたはPIPで:
pip install medspacySpacy 2を使用する以前のバージョンをインストールするには:
pip install medspacy==medspacy 0.1.0.2medspacyがインストールされているときに、次のパッケージが必要になり、インストールされます。
他のモデルをダウンロードすると、モデル自体またはモデル名を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で発表された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を参照してください