File size: 1,459 Bytes
331cb33
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 预处理指定数据集,并输出到/home/lixianjun/datasets_process
# 调用格式:python /home/lixianjun/code/process.py --dataset "Salesforce/wikitext" --config "wikitext-103-raw-v1" --number 100
# 可选指定数据集、子集、数量
import json
import os
import argparse
from datasets import load_dataset

def main():
    # 解析命令
    parser = argparse.ArgumentParser()
    parser.add_argument('--dataset', type=str, default='Salesforce/wikitext')
    parser.add_argument('--config', type=str, default='wikitext-2-raw-v1')
    parser.add_argument('--number', type=int, default=None)
    args = parser.parse_args()

    # 处理
    dataset = load_dataset(args.dataset, args.config, split='train')
    if args.number:
        dataset = dataset.select(range(min(args.number, len(dataset))))
    sentence = []
    for item in dataset:
        text = item['text'].strip()
        if text and not text.startswith('='):
            sentence.append(text)

    with open(name, 'w', encoding='utf-8') as f:
        json.dump(sentence, f, indent=2, ensure_ascii=0)

    # 保存
    path = '/home/lixianjun/datasets_process'
    os.makedirs(path, exist_ok=1)

    if args.config:
        name = f"{args.config}"
    else:
        name = f"{args.dataset.split('/')[-1]}"
    if args.number:
        name = f"{name}_{args.number}.json"
    else:
        name = f"{name}.json"
    name = os.path.join(path, name)

if __name__ == '__main__':
    main()