病名抽出モジュール

日本語医療文書のための病名抽出システム

症例報告などの医療文書から病名を抽出(・正規化)するシステムです. BERT-CRFを使用しています

param DEFAULT_CACHE_PATH

モデルのダウンロード先指定のための環境変数(default: ~/.cache)

type DEFAULT_CACHE_PATH

env

class medner_j.ner.Ner(base_model, basic_tokenizer, subword_tokenizer, model_dir=PosixPath('/home/is/ujiie/.cache/MedNERJ/pretrained'), normalizer=None)[source]

NER model

本体のモデルです. 基本的に,from_pretrained()を使用してインスタンスを生成してください.

Examples

インスタンスの生成:

from medner_j import Ner
model = Ner.from_pretrained()
Parameters
  • label_vocab (dict) – {label:label_idx, …}

  • itol (dict) – {label_idx: label, …}

  • basic_tokenizer (callable) – 単語分割用トークナイザ

  • subword_tokenizer (callable) – サブワード分割用トークナイザ

  • model (nn.Module) – BertCrfモデル

  • normalizer (callable) – 単語正規化関数

classmethod from_pretrained(model_name='BERT', normalizer='dict')[source]

学習モデルの読み込み

学習済みモデルを読み込み,Nerインスタンスを返します. 学習済みモデルがキャッシュされていない場合,~/.cacheにモデルのダウンロードを行います. ダウンロード先を指定したい場合は環境変数DEFAULT_CACHE_PATHで指定してください.

Parameters
  • model_name (str) – モデル名.現バージョンはBERTのみしか実装していません.

  • normalizer (str or callable) – 標準化方法の指定.dict or dnorm.

Returns

Nerインスタンス

Return type

Ner

predict(sents, output_format='xml')[source]

病名抽出

文のリストを受け取り,病名を抽出するメソッド

Parameters
  • sents (List) – 入力文のリスト

  • output_format (str) – 出力フォーマット.xml or dict(default: xml)

Returns

出力のリスト

Return type

List

出力フォーマット(xml):

["<C>脳梗塞</C>を認める."]

出力フォーマット(dict):

[{"span": (0, 3), "type": "C", "disease":"脳梗塞", "norm":"脳梗塞"}]