80万条中文ChatGPT多轮对话数据集

代码

import json
import numpy as np
from tqdm import tqdm
import re

def find_chinese_text(text):
    pattern = re.compile(r'[^\u4e00-\u9fff]')
    return pattern.sub('', text)


with open("E:/data_sets/multiturn_chat_0.8M.json", "r", encoding="utf-8") as f:
    json_list = f.readlines()

data = [json.loads(i) for i in tqdm(json_list)]
data_list = []
basic_list = ["<|User|>", "<|Ash|>"] * 100

for one_data in tqdm(data):
    ins = one_data["instruction"]
    # inp=one_data["input"]
    out = one_data["output"]

    ins = np.hstack([i.split("Human:") for i in ins.split("Assistant:")])[1:-1].tolist()
    ins_len = len(ins)
    ins = np.hstack([[i, j] for i, j in zip(basic_list[:ins_len], ins)]).tolist()
    ins += [basic_list[ins_len], out]
    data_list.append(ins)
with open("data_set.txt","a",encoding="utf-8") as f:

    voc_set=set()
    for one_list in tqdm(data_list):
        one_data=[]
        for one in one_list:
            try:
                if one in ["<|User|>", "<|Ash|>"]:
                    one_data+=[one]
                else:
                    if len(find_chinese_text(one))/(len(one)+1)<0.5:
                        one=one.split()
                    else:
                        one=list(one)
                    one_data+=one
            except:
                print()
        voc_set|=set(one_data)
        f.write(str(one_data)+"\n")

代码地址

数据地址

代码解析

  1. 导入需要的库:json、numpy、tqdm、re。
  2. 定义函数 find_chinese_text(),用于寻找文本中的中文字符。
  3. 使用 with 打开文件 “E:/data_sets/multiturn_chat_0.8M.json”,并逐行读取文件,将其转化为列表形式。
  4. 将读取到的json数据解析出instruction和output,并将instruction中的对话拆分成用户和Ash的对话,并将其存储到ins列表中,输出的对话存储到out列表中。
  5. 将ins列表中的对话合并成一整段对话,并在其中添加分割符 “<|User|>” 和 “<|Ash|>”。
  6. 将out列表添加到ins列表中,并将整段对话添加到data_list中。
  7. 使用 with 打开文件 “data_set.txt”,并迭代 data_list 中的每一段对话,将其中的每一个元素添加到 one_data 列表中,如果元素是 “<|User|>” 或者 “<|Ash|>”,则直接添加,否则将元素按空格分开,分开后的每个单词作为列表元素添加到 one_data 列表中。
  8. 将 one_data 列表转化为字符串,并将其写入到 “data_set.txt” 文件中。
  9. 使用 set() 函数将所有的词语添加到 voc_set 集合中,得到整个数据集中所有的单词。
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐