当前位置: 首页 > news >正文

中文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转换为字符串,并将其写入文件中,同时在字符串末尾加入换行符。

相关文章:

中文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(t…...

解决解析PDF编码报错(以pdfminer为例):UnicodeDecodeError: ‘gbk‘ codec can‘t decode byte xxx

解决方法 博主使用的是pdfminer解析PDF文档&#xff0c;这个解决方法是通用的&#xff0c;只需要使PDFParser传入的文件为二进制文件即可&#xff0c;示例程序&#xff1a; from pdfminer.pdfparser import PDFParserpdf_parser PDFParser(open("pdf文件.pdf", &q…...

chatGPT2:如何构建一个可以回答有关您网站问题的 AI 嵌入(embeddings)

感觉这个目前没有什么用&#xff0c;因为客户可以直接问通用chatGPT&#xff0c;实时了解你网站内的信息&#xff0c;除非你的网站chatGPT无法访问。 不过自动预订、买票等用嵌入还是挺有用的。 什么是嵌入&#xff1f; OpenAI的嵌入&#xff08;embeddings&#xff09;是一种…...

Vue3-新特性defineOptions和defineModel

defineOptions 问题&#xff1a;用了<script setup>后&#xff0c;就无法添加与其平级的属性了&#xff0c;比如定义组件的name或其他自定义的属性。 为了解决这一问题&#xff0c;引入了defineProps与defineEmits这两个宏&#xff0c;但这只解决了props与emits这两个属…...

【计算机基础】通过插件plantuml,实现在VScode里面绘制状态机

&#x1f4e2;&#xff1a;如果你也对机器人、人工智能感兴趣&#xff0c;看来我们志同道合✨ &#x1f4e2;&#xff1a;不妨浏览一下我的博客主页【https://blog.csdn.net/weixin_51244852】 &#x1f4e2;&#xff1a;文章若有幸对你有帮助&#xff0c;可点赞 &#x1f44d;…...

Linux常用基础命令及重要目录,配置文件功能介绍

目录 一&#xff0c;Linux常用必备基础命令 1&#xff0c;网络类命令 2&#xff0c;文件目录类命令 3&#xff0c;操作类命令 4&#xff0c;关机重启命令 5&#xff0c;帮助命令 6&#xff0c;查看显示类命令 7&#xff0c;命令常用快捷键 二&#xff0c;Linux重要目录…...

Oracle登录认证方式详解

文章目录 一、简介二、OS认证三、口令认证四、remote_login_passwordfile 详解 一、简介 在数据库管理中&#xff0c;登录认证是确保数据库安全性的重要环节。Oracle数据库提供 了两种认证方式&#xff0c;一种是“操作系统认证”&#xff0c;一种是“口令文件认证&#xff0c…...

ate测试原理及ate测试系统(软件)知识科普 -纳米软件

ATE(Automatic Test Equipment)测试也叫自动化测试&#xff0c;通过计算机控制测试仪器对被测对象进行测试。以计算机编程代替人工测试&#xff0c;基于测试程序控制仪器并对待测品进行输入和输出信号检测分析&#xff0c;从而判断待测品的性能是否符合要求。 ATE测试需要根据测…...

Linux | 创建 | 删除 | 查看 | 基本命名详解

Linux | 创建 | 删除 | 查看 | 基本命名详解 文章目录 Linux | 创建 | 删除 | 查看 | 基本命名详解前言一、安装Linux1.1 方法一&#xff1a;云服务器方式1.2 方法二&#xff1a;虚拟机方式 二、ls2.2 ll 三、which3.1 ls -ld 四、pwd五、cd5.1 cd .\.5.2 ls -al5.3 重新认识命…...

搭配:基于OpenCV的边缘检测实战

引言 计算机中的目标检测与人类识别物体的方式相似。作为人类&#xff0c;我们可以分辨出狗的形象&#xff0c;因为狗的特征是独特的。尾巴、形状、鼻子、舌头等特征综合在一起&#xff0c;帮助我们把狗和牛区分开来。 同样&#xff0c;计算机能够通过检测与估计物体的结构和性…...

AI大发展:人机交互、智能生活全解析

目录 ​编辑 人工智能对我们的生活影响有多大 人工智能的应用领域 一、机器学习与深度学习 二、计算机视觉 三、自然语言处理 四、机器人技术 五、智能推荐系统 六、智能城市和智能家居 ​编辑 自己对人工智能的应用 自己的人工智能看法&#xff1a;以ChatGPT为例 …...

Django DRF序列化器serializer

以下案例由浅到深&#xff0c;逐步深入&#xff0c;通过实例介绍了序列化器的使用方法&#xff0c;和遇到的常见问题的解决方法。 一、序列化器serializers.Serializer 1、urls.py urlpatterns [path("api/<str:version>/depart/",views.DepartView.as_vie…...

【开源】基于JAVA的衣物搭配系统

项目编号&#xff1a; S 016 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S016&#xff0c;文末获取源码。} 项目编号&#xff1a;S016&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、研究内容2.1 衣物档案模块2.2 衣物搭配模块2.3 衣…...

Spark---基于Standalone模式提交任务

Standalone模式两种提交任务方式 一、Standalone-client提交任务方式 1、提交命令 ./spark-submit --master spark://mynode1:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.11-2.3.1.jar 100 或者 ./spark-submit --master spark…...

webrtc的RTCPeerConnection使用

背景: 平时我们很少会需要使用到点对点单独的通讯,即p2p,一般都是点对服务端通讯,但p2p也有自己的好处,即通讯不经过服务端,从服务端角度这个省了带宽和压力,从客户端角度,通讯是安全,且快速的,当然有些情况下可能速度并不一定快。那么如何实现p2p呢? 解决办法: …...

【视觉SLAM十四讲学习笔记】第三讲——Eigen库

专栏系列文章如下&#xff1a; 【视觉SLAM十四讲学习笔记】第一讲——SLAM介绍 【视觉SLAM十四讲学习笔记】第二讲——初识SLAM 【视觉SLAM十四讲学习笔记】第三讲——旋转矩阵 本章将介绍视觉SLAM的基本问题之一&#xff1a;如何描述刚体在三维空间中的运动&#xff1f; Eigen…...

Ubuntu开机显示recovering journal,进入emergency mode

在一次正常的shutdown -r now之后&#xff0c;服务器启动不起来了&#xff0c;登录界面显示recovering journal&#xff0c;主要报错信息如下所示&#xff1a; /dev/sda2:recovering journal /dev/sda2:Clearn... You are in emergency mode. After logging in, type journalc…...

C++_String增删查改模拟实现

C_String增删查改模拟实现 前言一、string默认构造、析构函数、拷贝构造、赋值重载1.1 默认构造1.2 析构函数1.3 拷贝构造1.4 赋值重载 二、迭代器和范围for三、元素相关&#xff1a;operator[ ]四、容量相关&#xff1a;size、resize、capacity、reserve4.1 size、capacity4.2…...

LeeCode前端算法基础100题(2)- 最多水的容器

一、问题详情&#xff1a; 给定一个长度为 n 的整数数组 height 。有 n 条垂线&#xff0c;第 i 条线的两个端点是 (i, 0) 和 (i, height[i]) 。 找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多的水。 返回容器可以储存的最大水量。 说明&#xff1a;…...

排序算法--归并排序

实现逻辑 ① 将序列每相邻两个数字进行归并操作&#xff0c;形成floor(n/2)个序列&#xff0c;排序后每个序列包含两个元素 ② 将上述序列再次归并&#xff0c;形成floor(n/4)个序列&#xff0c;每个序列包含四个元素 ③ 重复步骤②&#xff0c;直到所有元素排序完毕 void pri…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

第一篇:Agent2Agent (A2A) 协议——协作式人工智能的黎明

AI 领域的快速发展正在催生一个新时代&#xff0c;智能代理&#xff08;agents&#xff09;不再是孤立的个体&#xff0c;而是能够像一个数字团队一样协作。然而&#xff0c;当前 AI 生态系统的碎片化阻碍了这一愿景的实现&#xff0c;导致了“AI 巴别塔问题”——不同代理之间…...

【Zephyr 系列 10】实战项目:打造一个蓝牙传感器终端 + 网关系统(完整架构与全栈实现)

🧠关键词:Zephyr、BLE、终端、网关、广播、连接、传感器、数据采集、低功耗、系统集成 📌目标读者:希望基于 Zephyr 构建 BLE 系统架构、实现终端与网关协作、具备产品交付能力的开发者 📊篇幅字数:约 5200 字 ✨ 项目总览 在物联网实际项目中,**“终端 + 网关”**是…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

华为OD机考-机房布局

import java.util.*;public class DemoTest5 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseSystem.out.println(solve(in.nextLine()));}}priv…...

Vue 模板语句的数据来源

&#x1f9e9; Vue 模板语句的数据来源&#xff1a;全方位解析 Vue 模板&#xff08;<template> 部分&#xff09;中的表达式、指令绑定&#xff08;如 v-bind, v-on&#xff09;和插值&#xff08;{{ }}&#xff09;都在一个特定的作用域内求值。这个作用域由当前 组件…...

【安全篇】金刚不坏之身:整合 Spring Security + JWT 实现无状态认证与授权

摘要 本文是《Spring Boot 实战派》系列的第四篇。我们将直面所有 Web 应用都无法回避的核心问题&#xff1a;安全。文章将详细阐述认证&#xff08;Authentication) 与授权&#xff08;Authorization的核心概念&#xff0c;对比传统 Session-Cookie 与现代 JWT&#xff08;JS…...

Monorepo架构: Nx Cloud 扩展能力与缓存加速

借助 Nx Cloud 实现项目协同与加速构建 1 &#xff09; 缓存工作原理分析 在了解了本地缓存和远程缓存之后&#xff0c;我们来探究缓存是如何工作的。以计算文件的哈希串为例&#xff0c;若后续运行任务时文件哈希串未变&#xff0c;系统会直接使用对应的输出和制品文件。 2 …...

FTXUI::Dom 模块

DOM 模块定义了分层的 FTXUI::Element 树&#xff0c;可用于构建复杂的终端界面&#xff0c;支持响应终端尺寸变化。 namespace ftxui {...// 定义文档 定义布局盒子 Element document vbox({// 设置文本 设置加粗 设置文本颜色text("The window") | bold | color(…...