2025-05-08 22:41:15 +08:00
|
|
|
from datasets import Dataset, load_dataset
|
2025-04-29 23:00:28 +08:00
|
|
|
|
|
|
|
from opencompass.registry import LOAD_DATASET
|
|
|
|
|
|
|
|
from .base import BaseDataset
|
|
|
|
|
|
|
|
|
|
|
|
@LOAD_DATASET.register_module()
|
|
|
|
class MedQADataset(BaseDataset):
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def load_single(path):
|
|
|
|
dataset = []
|
2025-05-08 22:41:15 +08:00
|
|
|
ds = load_dataset(path)
|
|
|
|
for data in ds['train']:
|
|
|
|
data['label'] = data['answer_idx']
|
2025-04-29 23:00:28 +08:00
|
|
|
choices = ''
|
2025-05-08 22:41:15 +08:00
|
|
|
for option in data['options']:
|
|
|
|
choices += option + '. ' + data['options'][option] + '\n'
|
2025-04-29 23:00:28 +08:00
|
|
|
data['choices'] = choices
|
|
|
|
|
|
|
|
dataset.append(data)
|
|
|
|
|
|
|
|
return Dataset.from_list(dataset)
|
|
|
|
|
|
|
|
@staticmethod
|
|
|
|
def load(path):
|
2025-05-08 22:41:15 +08:00
|
|
|
dataset = MedQADataset.load_single(path)
|
2025-04-29 23:00:28 +08:00
|
|
|
return dataset
|