EHRSQL
收藏资源简介:
EHRSQL是一个针对电子健康记录(EHRs)的文本到SQL数据集。该数据集由222名医院工作人员的语音记录组成,包括医生、护士和保险审查及健康记录团队。数据集通过在一所大学医院进行调查,并使用调查结果创建种子问题,然后手动将这些问题链接到两个开源EHR数据库MIMIC-III和eICU。数据集包含各种时间表达式和无法回答的问题,这些问题也是从调查中收集的。EHRSQL数据集提出了独特的挑战:模型需要生成反映医院广泛需求的SQL查询,理解医疗保健中时间敏感问题的各种时间表达式,并区分给定问题是否可回答。
EHRSQL is a text-to-SQL dataset tailored for electronic health records (EHRs). This dataset consists of speech transcripts from 222 hospital staff, including physicians, nurses, insurance reviewers, and health record teams. It was developed via a survey conducted at a university hospital, where survey results were used to create seed questions, which were then manually linked to two open-source EHR databases, MIMIC-III and eICU. The dataset contains various temporal expressions and unanswerable questions, which were also collected from the survey. The EHRSQL dataset presents unique challenges: models are required to generate SQL queries that reflect the broad needs of hospitals, comprehend diverse temporal expressions in time-sensitive healthcare questions, and determine whether a given question is answerable.
EHRSQL: A Practical Text-to-SQL Benchmark for Electronic Health Records
概述
EHRSQL是一个大规模、高质量的数据集,旨在针对来自MIMIC-III和eICU的电子健康记录进行文本到SQL的问答。该数据集包括从222名医院工作人员(如医生、护士、保险审查员和健康记录团队)收集的问题。它可以用于测试问答模型的三个方面:生成医院工作场所中广泛使用的SQL查询、理解各种类型的时间表达(绝对、相对或两者)以及在模型预测不自信时拒绝回答(查询数据库)的能力。
数据集详情
问题和SQL
train.json文件包含以下字段:
db_id: 数据库IDquestion: 问题的改写版本template: 原始模板问题query: 对应的SQL查询value: 从数据库中采样的值q_tag: 问题模板t_tag: 采样的时间模板o_tag: 采样的操作值tag: 问题模板与时间模板和操作值的组合department: 问题收集的医院部门importance: 问题在医院中的重要性(高、中、低或n/a)para_type: 改写的来源(机器或人工)is_impossible: 问题是否可回答split: 数据分割(训练、验证或测试)id: 每个数据实例的唯一ID
valid.json中,可回答实例与train.json结构相同,不可回答实例字段较少。
表格
tables.json包含以下信息:
db_id: 数据库IDtable_names_original: 数据库中的原始表名table_names: 清理和规范化的表名column_names_original: 数据库中的原始列名column_names: 清理和规范化的列名column_types: 列的数据类型foreign_keys: 数据库中的外键primary_keys: 数据库中的主键
数据库
访问数据库需要PhysioNet的认证访问权限,下载链接如下:
下载后,运行以下代码进行数据库预处理: bash cd preprocess python3 preprocess_db.py --data_dir <path_to_mimic_iii_csv_files> --db_name mimic_iii --deid --timeshift --current_time "2105-12-31 23:59:00" --start_year 2100 --time_span 5 --cur_patient_ratio 0.1
T5 SQL生成
训练T5-base模型: bash python T5/main.py --config T5/config/ehrsql/training/ehrsql_mimic3_t5_base.yaml --CUDA_VISIBLE_DEVICES <gpu_id>
生成带有拒绝回答的SQL查询: bash python T5/main.py --config T5/config/ehrsql/eval/ehrsql_mimic3_t5_base__mimic3_valid.yaml --output_file prediction_raw.json --CUDA_VISIBLE_DEVICES <gpu_id> python T5/abstain_with_entropy.py --inference_result_path outputs/eval_ehrsql_mimic3_t5_base__mimic3_valid --input_file prediction_raw.json --output_file prediction.json --threshold 0.14923561
评估
评估生成的SQL查询: bash python evaluate.py --db_path ./dataset/ehrsql/mimic_iii/mimic_iii.sqlite --data_file dataset/ehrsql/mimic_iii/valid.json --pred_file ./outputs/eval_ehrsql_mimic3_t5_base__mimic3_valid/prediction.json




