医療テキスト仮名化を行うPHI-DeidentificationのベースモデルをModern-BERTにしたものです。
NERの部分のみの実装で、LLMを使用した仮名化の実装はPHI-Deidentificationを参照してください。
uv sync
| タグ | 対象 |
|---|---|
<phi_age> |
年齢 |
<phi_id> |
識別番号 |
<phi_tel> |
電話番号 |
<phi_job> |
職業 |
<phi_location> |
住所・地名 |
<phi_person> |
人名 |
<phi_hospital> |
医療機関名 |
configs/sample.yamlをコピーしてconfigを作成します。
学習データは、1行1サンプルのタグ付きテキストです。
息子<phi_age>32歳</phi_age>生活習慣病の疑い
右眼の傷が悪化し、<phi_hospital>青山町中央病院</phi_hospital>眼科<phi_person>佐々木</phi_person>先生を受診した。
...
タグの種類は、configのlabelsで管理しますので、学習データに合わせて修正してください。
以下で実行します。
python train.py configs/sample.yaml
学習が完了したら、configのtrain.output_dirにモデルファイルが出力されます。
テストデータは、1行1サンプルのplain-textです。
緊急連絡票には、避難先として香川県高松市青山町X-X-Xと記載されている。
佐々木ゆりさんから画像CDが届いた。
...
configのinference.model_dirに、学習されたモデルのディレクトリパスを指定します。
通常は、train.output_dirと同じです。
テストデータのパスは、inference.data_pathに指定します。
推論結果は、inference.output_pathにテキストファイルのパスを指定します。
以下で実行します。
python inference.py configs/sample.yaml