#python #json #nlp #bert-language-model #huggingface-datasets
#питон #json #нлп #берт-язык-модель #обнимашки-наборы данных
Вопрос:
Я пытаюсь обучить модель БЕРТА предсказанию правильного следующего высказывания. Мне дается запутанный разговор, и я пытаюсь выбрать следующее высказывание из списка кандидатов из 100, которое может не содержать правильного следующего высказывания. Я пытаюсь создать модель, обученную данным, которые поступают в этот ввод:
{ "data-split": "train", "example-id": 0, "messages-so-far": [ { "date": "2007-02-13", "speaker": "participant_0", "time": "07:31", "utterance": "hi guys, i need some urgent help. i "rm -rf'd" a direcotry. any way i can recover it?" }, { "date": "2007-02-13", "speaker": "participant_1", "time": "07:31", "utterance": "participant_0 : in short, no." }, { "date": "2007-02-13", "speaker": "participant_0", "time": "07:31", "utterance": "participant_1 , are you sure?" }, ... ], "options-for-correct-answers": [ { "candidate-id": "3d06877cb2f0c1861b248860fa60ce07", "speaker": "participant_1", "utterance": ""Are you sure?" is something rm -rf never asks.." } ], "options-for-next": [ { "candidate-id": "ace962b708d559fc462b7fdd9b6fc093", "speaker": "participant_1", "utterance": "(and if hardware is detected correctly, of course)" }, { "candidate-id": "349efca9c3d5986a87d95fb90c1b7c04", "speaker": "participant_2", "utterance": "how do i do a simulated reboot" }, ... ], "scenario": 1 }
Поле сообщения-до сих пор содержит контекст диалогового окна, а параметры для следующего содержит кандидатов для выбора следующего высказывания. Правильное следующее высказывание указывается в поле варианты правильных ответов. Сценарий поля относится к подзадаче.
В какой формат я должен перевести эти данные? В настоящее время он находится в JSON. Я знаю, что это должен быть файл tsv, но мне трудно понять, что должно быть в столбцах.
Я написал код, который переводит его в этот формат
но я не думаю, что это то, чего я хочу.
Для справки это код, который обрабатывает его в этом формате. Любые предложения о том, как изменить это на то, что я хочу, чтобы можно было ввести в файл TSV для обучения БЕРТА, были бы потрясающими!
import json file_path = "/Users/madison/Desktop/Final 1671/NOESIS-II/subtask1/data/task-1.advising.train.json" with open(file_path) as json_file: records = (json.load(json_file)) example_id = [] last_sentence = [] next_sentence = [] for row in records: example_id.append(row['example-id']) last_sentence.append(row['messages-so-far'][-1]['utterance']) if len(row['options-for-correct-answers']) != 0: next_sentence.append(row['options-for-correct-answers'][0]['utterance']) else: next_sentence.append("None") import pandas as pd data = {"example_id": example_id, "last_sentence": last_sentence, "next_sentence": next_sentence} df = pd.DataFrame(data) print(df.head())