目标:
将数据集按比例划分为 train、test、val。
对平行语料处理后如下图所示:
步骤:
- 随机打乱数据集
- 划分数据集
- 划分平行语料
代码如下:
import os
import random
def data_split(config, file, train_ratio=0.98, shuffle=True):
"""
:param config: 数据文件所在的文件夹名
:param file: 要处理数据的文件名(全称)
:param train_ratio: 训练集占比
:param shuffle: 是否打乱
:return: None
"""
with open(os.path.join(config, file), 'r', encoding='utf-8') as fp: # 用\拼接config与file
lines = fp.read().strip().split('\n')
n = len(lines)
if shuffle:
random.shuffle(lines) # 随机打乱数据集
train_len = int(n * train_ratio)
val_len = int(n * (1 - train_ratio) / 2)
train_data = li