数据格式:一行为一句话。
import random
def split(all_list, shuffle=False, ratio=0.5):
num = len(all_list)
offset = int(num * ratio)
if num == 0 or offset < 1:
return [], all_list
if shuffle:
random.shuffle(all_list)
train = all_list[:offset]
dev_test = all_list[offset:]
return train, dev_test
def write_split(film, train, dev_test):
infilm = open(film, 'r', encoding='utf-8')
trainfilm = open(train, 'w', encoding='utf-8')
dev_testfilm = open(dev_test, 'w', encoding='utf-8')
list = []
for datas in infilm.readlines():
datas = datas.replace('\n','')
list.append(datas)
traindatas, dev_testdatas = split(list, shuffle=True, ratio=0.5)
for traindata in traindatas:
trainfilm.write(traindata + '\n')
for dev_testdata in dev_testdatas:
dev_testfilm.write(dev_testdata + '\n')
infilm.close()
trainfilm.close()
dev_testfilm.close()
if __name__ == '__main__':
#分割train、dev、test
film='./data/RenminNER/BIOES/test.txt'
train = './data/RenminNER/BIOES/new_dev.txt'
dev_test = './data/RenminNER/BIOES/new_test.txt'
write_split(film, train, dev_test)