中文rlhf数据集50w条数据解析

中文rlhf数据集50w条数据解析

  • 解析代码
  • 数据名
  • 代码解析

解析代码

import jieba
from tqdm import tqdm
import re
import pandas as pd
import numpy as npdef find_non_english_text(text):pattern = re.compile(r'[^a-zA-Z]')return pattern.sub('', text)def find_chinese_text(text):pattern = re.compile(r'[^\u4e00-\u9fff]')return pattern.sub('', text)json_list = pd.read_parquet("E:/data_sets/train-rm-static-m2m100-zh-jianti.parquet")
data_list = []
basic_list = ["<|User|>", "<|Ash|>"] * 100for _, one_data in tqdm(json_list.iterrows()):ins = "".join(one_data["prompt"].split("\n\n")[1:-1])# inp=one_data["input"]out = one_data["response"]ins = np.hstack([i.split("Human:") for i in ins.split("Assistant:")])[1:].tolist()ins = [i for i in ins if len(i)>0]ins_len = len(ins)try: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)except:continue
with open("data_set_five.txt", "a", encoding="utf-8") as f:voc_set = set()for one_data in tqdm(data_list):ins = []for one in one_data:if one in ["<|User|>", "<|Ash|>"]:ins += [one]else:one = jieba.lcut(one)try:one = np.hstack([list(i) if len(find_chinese_text(i)) > 0 else i for i in one]).tolist()except:breakins += onevoc_set |= set(ins)f.write(str(ins) + "\n")

数据名

在hf上搜方可
train-rm-static-m2m100-zh-jianti.parquet
数据地址

代码解析

  1. import jieba: 导入分词库jieba。
  2. from tqdm import tqdm: 导入tqdm库,用于在循环中显示进度条。
  3. import re: 导入正则表达式库。
  4. import pandas as pd: 导入pandas库,用于处理数据。
  5. import numpy as np: 导入numpy库,用于处理数组。
  6. def find_non_english_text(text): 定义一个函数,用于查找非英文文本。该函数输入一个文本,使用正则表达式找到文本中的非英文字符,并用空字符替换。
  7. def find_chinese_text(text): 定义一个函数,用于查找中文文本。该函数输入一个文本,使用正则表达式找到文本中的非中文字符,并用空字符替换。
  8. json_list = pd.read_parquet("E:/data_sets/train-rm-static-m2m100-zh-jianti.parquet"): 读取parquet格式的文件,并将数据赋值给json_list。
  9. data_list = []: 定义一个空列表,用于存储最终的数据。
  10. basic_list = ["&lt;|User|>", "&lt;|Ash|>"] * 100: 定义一个列表,其中包含两个字符串"<|User|>“和”<|Ash|>",并将其重复100次。
  11. for _, one_data in tqdm(json_list.iterrows()):: 遍历json_list,并使用tqdm在循环中显示进度条。其中,_表示索引值,one_data表示每一行数据。
  12. ins = "".join(one_data["prompt"].split("\n\n")[1:-1]): 从one_data中获取prompt字段,并去除字段中的换行符。然后,取出prompt中除第一行和最后一行之外的所有内容,并将其赋值给ins。
  13. out = one_data["response"]: 从one_data中获取response字段,并将其赋值给out。
  14. ins = np.hstack([i.split("Human:") for i in ins.split("Assistant:")])[1:].tolist(): 将ins根据"Assistant:"分割成多个子串,然后将子串中的"Human:"去除,并将子串合并为一个列表。最后,将列表中的第一个元素去除,并将其转换为列表类型。
  15. ins_len = len(ins): 获取ins列表的长度,并将其赋值给ins_len。
  16. ins = np.hstack([[i, j] for i, j in zip(basic_list[:ins_len], ins)]).tolist(): 将basic_list中与ins长度相同的元素取出,然后将basic_list和ins中的元素一一配对组成元素为两个字符串的列表,并将这些列表合并为一个列表。最后,将这个列表转换为列表类型。
  17. data_list.append(ins): 将ins添加到data_list中。
  18. with open("data_set_five.txt", "a", encoding="utf-8") as f:: 打开一个文件"data_set_five.txt",并将其赋值给变量f。打开文件时,使用"a"模式表示追加数据到文件末尾。
  19. voc_set = set(): 定义一个空集合,用于存储数据中的所有词汇。
  20. for one_data in tqdm(data_list):: 遍历data_list,并使用tqdm在循环中显示进度条。其中,one_data表示每一个元素。
  21. ins = []: 定义一个空列表,用于存储分词后的文本。
  22. for one in one_data:: 遍历one_data中的每一个元素,并将其赋值给变量one。
  23. if one in ["&lt;|User|>", "&lt;|Ash|>"]:: 判断one是否等于"<|User|>“或”<|Ash|>"。
  24. ins += [one]: 如果one等于"<|User|>“或”<|Ash|>",则将one加入ins中。
  25. else:: 如果one不等于"<|User|>“或”<|Ash|>"。
  26. one = jieba.lcut(one): 使用jieba对one进行分词。
  27. try:: 开始异常处理。
  28. one = np.hstack([list(i) if len(find_chinese_text(i)) > 0 else i for i in one]).tolist(): 对于one中的每个分词,如果其包含中文字符,则将其拆分成单个字符,否则不做处理。然后,将处理后的结果合并为一个列表,并将这个列表转换为列表类型。
  29. voc_set |= set(ins): 将ins中的所有元素加入voc_set中。
  30. f.write(str(ins) + "\n"): 将ins转换为字符串,并将其写入文件中,同时在字符串末尾加入换行符。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/164859.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

教育数字化转型:塑造未来学习新范式

在国家教育数字化战略行动指引下&#xff0c;我国正积极推动数字化赋能教育高质量发展&#xff0c;以塑造教育发展的新优势。如今&#xff0c;随着科技新基建的普及和数字化赋能教育的深入推进&#xff0c;未来的教育模型正在逐渐形成。 在新的教育模型中&#xff0c;数字化学…

算法基础(python版本)

第二章 算法设计思想 一、搜索排序 1.排序算法 https://visualgo.net/zh/sorting (1)冒泡排序 # 思路&#xff1a; # (1)比较相邻元素&#xff0c;如果第一个比第二个大&#xff0c;则交换他们 # (2)第一轮下来&#xff0c;可以保证最后一个数一定是最大的&#xff1b;第二…

2023最全的Web自动化测试介绍

做测试的同学们都了解&#xff0c;做Web自动化&#xff0c;我们主要用Selenium或者是QTP。 有的人可能就会说&#xff0c;我没这个Java基础&#xff0c;没有Selenium基础&#xff0c;能行吗&#xff1f;测试虽然属于计算机行业&#xff0c;但其实并不需要太深入的编程知识&…

介绍一个功能强大的shopify app——TINYIMG

各位观众老爷&#xff0c;南来的北往的&#xff0c;东去的西走的&#xff0c;今天给大家推荐一个功能很强大的shopify app 当当当 那就是 tinyimg 这个app有多牛逼呢&#xff0c;且听我慢慢道来 首先这个app可以用来优化图片大小&#xff0c;给你的网站提提速 然后这个app还可…

Android使用AIDL+MemoryFile传递大数据

Android进程间通信经常会使用AIDL&#xff0c;简单方便&#xff0c;但是数据量有限制&#xff0c;超过一定值会报错&#xff1a; E !!! FAILED BINDER TRANSACTION !!! (parcel size 2073744) 可以通过使用AIDLMemoryFile传递大数据 新建AIDL接口&#xff1a; interface On…

CCFCSP试题编号:201803-2试题名称:碰撞的小球

一、题目描述 二、思路 1.首先妾身分析这个题目&#xff0c;想要解题&#xff0c;得得解决2个问题。 1&#xff09;判断小球到达端点或碰撞然后改变方向&#xff1b; 2&#xff09;每时刻都要改变位置 两个问题都比较好解决&#xff0c;1&#xff09;只要简单判断坐标&…

形态学操作—膨胀

在 OpenCV 中&#xff0c;图像形态学操作是一组基于图像形状的处理技术&#xff0c;其中膨胀&#xff08;Dilation&#xff09;是其中之一。膨胀操作可用于图像处理中的特征增强、去噪、分割和边缘检测等。其基本原理是利用结构元素&#xff08;Kernel 或 Structuring Element&…

Tomcat实现WebSocket即时通讯 Java实现WebSocket的两种方式

HTTP协议是“请求-响应”模式&#xff0c;浏览器必须先发请求给服务器&#xff0c;服务器才会响应该请求。即服务器不会主动发送数据给浏览器。 实时性要求高的应用&#xff0c;如在线游戏、股票实时报价和在线协同编辑等&#xff0c;浏览器需实时显示服务器的最新数据&#x…

UML建模图文详解教程06——顺序图

版权声明 本文原创作者&#xff1a;谷哥的小弟作者博客地址&#xff1a;http://blog.csdn.net/lfdfhl本文参考资料&#xff1a;《UML面向对象分析、建模与设计&#xff08;第2版&#xff09;》吕云翔&#xff0c;赵天宇 著 顺序图概述 顺序图(sequence diagram&#xff0c;也…

(三)C语言之for语句概述

&#xff08;三&#xff09;C语言之for语句概述 一、使用for语句实现打印华氏温度与摄氏温度转换二、for语句概述三、练习 一、使用for语句实现打印华氏温度与摄氏温度转换 #include <stdio.h> /*当华氏温度为 0,20,40,...300时&#xff0c;打印出华氏温度与摄氏温度对照…

一个简单的QT应用示例

一个简单的QT应用示例&#xff1a;创建一个窗口程序。 首先&#xff0c;确保已经安装了Qt开发环境。接下来&#xff0c;按照以下步骤创建一个简单的窗口程序&#xff1a; 1. 打开Qt Creator&#xff0c;点击“新建文件或项目”。 2. 选择“应用程序”&#xff0c;然后点击“下…

【MATLAB】根轨迹的绘制及rltool工具的使用

目录 一、MATLAB中传递函数的表示二、rlocus函数绘制根轨迹1.常规根轨迹仿真示例2.参数根轨迹仿真示例3.零度根轨迹仿真示例 三、图形化工具rltool介绍 一、MATLAB中传递函数的表示 在绘制系统的根轨迹之前&#xff0c;需要知道传递函数在matlab中如何表示。 在matlab中&#…

VOC数据集和COCO数据集直接的相互转换

VOC数据集格式 get_list.py import os import random import shutil# 设置随机种子 random.seed(1000)# 判断Annotations和JpegImages是否对应 train_precent=0.8 label_path= "../../Annotations" print(os.path.abspath(label_path)) save="../Main" pr…

repo init报error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed

repo init报error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed 1 repo init出错的信息2 解决方法 在ubuntu执行repo init的时候报了repo init报error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed这种错误&#xff0c;解决方法是需要更新本地…

PS给图片增加一个白色边框。

问题描述&#xff1a;PS如何给图片增加一个白色边框&#xff1f; 解决办法&#xff1a; 第一步&#xff1a;使用shiftAltA快捷键&#xff0c;在图片四周拉出一个灰白色的边框。如下图所示&#xff1a; 第二步&#xff0c;使用快捷键Ctrlshiftn新建一个图层。 并把新建的图层…

创建maven的web项目

&#xff08;一&#xff09;创建maven的web项目 Step1、创建一个普通的maven项目 &#xff08;1&#xff09;新建一个empty project&#xff0c;命名为SSM2。 点击项目名&#xff0c;右键new&#xff0c;选择Module&#xff0c;左侧选择“Maven archetype”&#xff0c;可以给…

我叫:快速排序【JAVA】

1.自我介绍 1.快速排序是由东尼霍尔所发展的一种排序算法。 2.快速排序又是一种分而治之思想在排序算法上的典型应用。 3.本质上来看&#xff0c;快速排序应该算是在冒泡排序基础上的递归分治法。 2.思想共享 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟…

【iOS】数据持久化(二)之归档和解档(iOS 13以后)

在之前介绍的数据存储方法中&#xff0c;不管是NSUserDefaults还是plist文件都不能对自定义对象进行存储&#xff0c;OC提供的解归档恰好解决了这个问题 本片文章对 iOS13 以后的版本 归档和解档 进行介绍。老版本的解归档见这篇文章&#xff1a;【iOS】文件&#xff08;对象数…

Python Anaconda创建虚拟环境及Pycharm使用虚拟环境

目录 前言 一、Anaconda与Pycharm 二、conda常用命令 三、Pycharm使用虚拟环境 总结 前言 我们在做开发任务时可能会创建多个项目&#xff0c;这些项目可能会依赖于不同的Python环境。比如有的用到Python3.6、有的用到Python3.7&#xff1b;有的用Pytorch开发、有的用Tens…

解决:ImportError: cannot import name ‘Sequence‘ from ‘collections‘

解决&#xff1a;ImportError: cannot import name ‘Sequence‘ from ‘collections‘ 背景 在使用之前的代码时&#xff0c;报错&#xff1a; File “G:\research\code\MicroDE_py\plot_bcic_iv_4_ecog_trial.py”, line 262, in from skorch.helper import predefined_spl…