Ahogrammer

Deep Dive Into NLP, ML and Cloud

辞書を用いてテキストから病名を抽出する

医療分野の自然言語処理で基本となるタスクの一つにテキストからの病名の抽出があります。テキストから病名を抽出できると、たとえば、SNSのテキストから病気の流行を予測したり、広告技術と組み合わせて受診や薬の購入を促したり、対話システムと組み合わせて検診に使うといった応用に役立ちます。本記事では、辞書を使って病名を抽出する方法について紹介します。

準備

本記事では形態素解析の辞書を拡張してテキストから病名を抽出します。準備として病名の辞書をダウンロードします。病名の辞書としてはNAISTの研究室が公開している万病辞書を使います。万病辞書は医療従事者が記載した電子カルテや退院サマリから症状や病名に関連する語を広く抽出して作成されています。以下のページから最新のMeCab用辞書データをダウンロードしましょう。

sociocom.jp

方法

ダウンロードした辞書を使うには、MeCabのユーザ定義辞書のオプションに辞書のパスを渡します。以下ではユーザ定義辞書を渡した後「アレキサンダー病は1949年にAlexander WSにより報告された疾患です。」という文を解析しています。解析結果から「アレキサンダー病」に付帯情報が付いていて病名であることがわかります。

> mecab -u MANBYO_201907_Dic-utf8.dic
アレキサンダー病は1949年にAlexander WSにより報告された疾患です。
アレキサンダー病    名詞,サ変名詞,*,*,*,*,あれきさんだーびょう;icd=E752;lv=S/freq=低頻度;アレキサンダー病,あれきさんだーびょう,あれきさんだーびょう,3
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
1949    名詞,数,*,*,*,*,*
年 名詞,接尾,助数詞,*,*,*,年,ネン,ネン
に 助詞,格助詞,一般,*,*,*,に,ニ,ニ
Alexander   名詞,一般,*,*,*,*,*
WS  名詞,固有名詞,組織,*,*,*,*
により   助詞,格助詞,連語,*,*,*,により,ニヨリ,ニヨリ
報告  名詞,サ変接続,*,*,*,*,報告,ホウコク,ホーコク
さ 動詞,自立,*,*,サ変・スル,未然レル接続,する,サ,サ
れ 動詞,接尾,*,*,一段,連用形,れる,レ,レ
た 助動詞,*,*,*,特殊・タ,基本形,た,タ,タ
疾患  名詞,一般,*,*,*,*,疾患,シッカン,シッカン
です  助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
。 記号,句点,*,*,*,*,。,。,。
EOS

解説

万病辞書の中身は以下のようになっています。

f:id:Hironsan:20191007165556p:plain
万病辞書の中身

出現形というのは、電子カルテや退院サマリに実際に現れた症状や病名を表しています。それに対して、標準病名は出現形に対応する標準的な病名となっています。ICD(国際疾病分類)は統計分類であり、疾病をアルファベットと数字を組み合わせたコードで表しています。言語が異なっても同じ疾病は同一のコードで表されるため国際比較をするのに使うことができます。信頼度レベルというのは辞書を作成する際のアノテーションの一致度を表しています。

参考文献