Официальная реализация документа «Синонимы кода имеют значение: сеть сопоставления нескольких синонимов для автоматического кодирования МКБ» [ACL 2022]
Все коды протестированы под Python 3.7, PyTorch 1.7.0. Необходимо установить opt_einsum для расчета einsum. Для обучения полной настройке MIMIC-III требуется не менее 32 ГБ графического процессора.
Мы помещаем только несколько образцов для каждого набора данных. Для загрузки набора данных MIMIC-III необходимо получить лицензии. Как только вы получите набор данных MIMIC-III, следуйте инструкциям caml-mimic для предварительной обработки набора данных. После предварительной обработки вы должны получить train_full.csv , test_full.csv , dev_full.csv , train_50.csv , test_50.csv , dev_50.csv . Пожалуйста, поместите их в sample_data/mimic3 . Затем вам следует использовать preprocess/generate_data_new.ipynb для создания набора данных в формате json.
Загрузите word2vec_sg0_100.model из LAAT. Вам нужно изменить путь встраивания слов.
MIMIC-III Full (1 графический процессор):
CUDA_VISIBLE_DEVICES=0 python main.py --n_gpu 1 --version mimic3 --combiner lstm --rnn_dim 256 --num_layers 2 --decoder MultiLabelMultiHeadLAATV2 --attention_head 4 --attention_dim 512 --learning_rate 5e-4 --train_epoch 20 --batch_size 2 --gradient_accumulation_steps 8 --xavier --main_code_loss_weight 0.0 --rdrop_alpha 5.0 --est_cls 1 --term_count 4 --sort_method random --word_embedding_path word_embedding_path
MIMIC-III Full (8 графических процессоров):
NCCL_IB_DISABLE=1 CUDA_VISIBLE_DEVICES=0,1,2,3,4,5,6,7 python -m torch.distributed.launch --nproc_per_node 8 --master_port=1212 --use_env main.py --n_gpu 8 --version mimic3 --combiner lstm --rnn_dim 256 --num_layers 2 --decoder MultiLabelMultiHeadLAATV2 --attention_head 4 --attention_dim 512 --learning_rate 5e-4 --train_epoch 20 --batch_size 2 --gradient_accumulation_steps 1 --xavier --main_code_loss_weight 0.0 --rdrop_alpha 5.0 --est_cls 1 --term_count 4 --sort_method random --word_embedding_path word_embedding_path
МИМИК-III 50:
CUDA_VISIBLE_DEVICES=0 python main.py --version mimic3-50 --combiner lstm --rnn_dim 512 --num_layers 1 --decoder MultiLabelMultiHeadLAATV2 --attention_head 8 --attention_dim 512 --learning_rate 5e-4 --train_epoch 20 --batch_size 16 --gradient_accumulation_steps 1 --xavier --main_code_loss_weight 0.0 --rdrop_alpha 5.0 --est_cls 1 --term_count 8 --word_embedding_path word_embedding_path
python eval_model.py MODEL_CHECKPOINT
контрольная точка mimic3
контрольная точка mimic3-50
@inproceedings{yuan-etal-2022-code,
title = "Code Synonyms Do Matter: Multiple Synonyms Matching Network for Automatic {ICD} Coding",
author = "Yuan, Zheng and
Tan, Chuanqi and
Huang, Songfang",
booktitle = "Proceedings of the 60th Annual Meeting of the Association for Computational Linguistics (Volume 2: Short Papers)",
month = may,
year = "2022",
address = "Dublin, Ireland",
publisher = "Association for Computational Linguistics",
url = "https://aclanthology.org/2022.acl-short.91",
pages = "808--814",
abstract = "Automatic ICD coding is defined as assigning disease codes to electronic medical records (EMRs).Existing methods usually apply label attention with code representations to match related text snippets.Unlike these works that model the label with the code hierarchy or description, we argue that the code synonyms can provide more comprehensive knowledge based on the observation that the code expressions in EMRs vary from their descriptions in ICD. By aligning codes to concepts in UMLS, we collect synonyms of every code. Then, we propose a multiple synonyms matching network to leverage synonyms for better code representation learning, and finally help the code classification. Experiments on the MIMIC-III dataset show that our proposed method outperforms previous state-of-the-art methods.",
}