我使用huggingface库中的load_dataset来加载jsonline数据集。下面是jsonline文件中的数据点示例:
{"tokens": ["На", "місці", "трагедії", "Безсмертний", "заявив", ",", "що", "«", "нелюдські", "вчинки", "можуть", "оцінюватися", "лише", ",", "як", "звірство", "»", ".", "Нагадаємо", ",", "11", "квітня", "на", "станції", "метро", "«", "Жовтнева", "»", "у", "Мінську", "стався", "вибух", ",", "в", "результаті", "якого", "загинули", "12", "людей", ",", "більше", "150", "отримали", "поранення", ".", "13", "квітня", "Лукашенко", "заявив", "про", "розкриття", "теракту", ".", "Інша", "справа", ",", "що", "немає", "ясності", ",", "хто", "за", "цим", "стоїть", ".", "Багато", "хто", "звертає", "увагу", "на", "те", ",", "що", "вибух", "скоєно", "неподалік", "адміністрації", "президента", ".", "Сам", "Олександр", "Лукашенко", "учора", "увечері", "провів", "термінову", "нараду", "і", "наказав", "знайти", "тих", ",", "кому", "потрібно", "зруйнувати", "стабільність", "."], "source_start": 31, "source_end": 31, "target_start": 73, "target_end": 73, "topic_id": "255715", "source_id": "T10", "target_id": "T129", "doc_ids": [0, 1], "label": 1}
我得到这个错误:
ValueError: Couldn't cast
tokens: list<item: string>
child 0, item: string
source_start: int64
source_end: int64
target_start: int64
target_end: int64
label: int64
to
{'tokens': Sequence(feature=Value(dtype='string', id=0), length=-1, id=None), 'label': Value(dtype='int32', id=1), 'source_start': Value(dtype='int32', id=2), 'source_end': Value(dtype='int32', id=3), 'target_start': Value(dtype='int32', id=3), 'target_end': Value(dtype='int32', id=4), 'topic_id': Value(dtype='string', id=5), 'doc_id': Sequence(feature=Value(dtype='int32', id=6), length=-1, id=None), 'source_id': Value(dtype='string', id=7), 'target_id': Value(dtype='string', id=8)}
because column names don't match
下面是加载数据的代码:
custom_features = Features(
{
"tokens": Sequence(Value("string", id=0)),
"label": Value("int32", id=1),
"source_start": Value("int32", id=2),
"source_end": Value("int32", id=3),
"target_start": Value("int32", id=3),
"target_end": Value("int32", id=4),
'topic_id': Value("string", id=5),
'doc_id': Sequence(Value("int32", id=6)),
'source_id': Value("string", id=7),
'target_id': Value("string", id=8),
}
)
raw_datasets = load_dataset('json', data_files={
'train': args.train_file,
'dev': args.dev_file,
'test': args.test_file
},features=custom_features)
如果我删除字段“topic_id,doc_id,source_id,target_id”,数据集将正确加载。但是,我更喜欢将它们保存在jsonfile中,而在数据集的处理版本中忽略它们。有什么解决办法吗?
1条答案
按热度按时间fcg9iug31#
您可以通过将
'doc_ids': Sequence(Value("32", id=9))
添加到custom_features
来解决问题。