import json import random # --- 設定 --- input_file = 'train.jsonl' output_train_file = 'train.jsonl' # 元のファイルを上書き output_valid_file = 'valid.jsonl' valid_split_ratio = 0.1 # 10%を検証データにする # ------------- print(f"'{input_file}' を読み込んでいます...") # 元のデータを読み込む with open(input_file, 'r', encoding='utf-8') as f: lines = f.readlines() # データをシャッフルしてランダム性を確保 random.shuffle(lines) # 分割点を計算 split_index = int(len(lines) * (1 - valid_split_ratio)) # 学習データと検証データに分割 train_data = lines[:split_index] valid_data = lines[split_index:] # 新しい学習データとして書き出す with open(output_train_file, 'w', encoding='utf-8') as f: f.writelines(train_data) print(f"学習データを '{output_train_file}' に保存しました。({len(train_data)}行)") # 検証データとして書き出す with open(output_valid_file, 'w', encoding='utf-8') as f: f.writelines(valid_data) print(f"検証データを '{output_valid_file}' に保存しました。({len(valid_data)}行)") print("分割が完了しました。")