利用pandas处理文本大数据训练样本随机化

前言

从事的是自然语言处理的工作,之前做的demo都是小于100万的数据集,使用强大的excel可轻松handle

现遇到了大约200万的训练样本,要随机化处理。虽然知道sklearn有可以随机划分训练集测试集的函数,也是一种方法。但这里采用的是一种可自由设置数据格式的方法pandas,先上代码,很简洁的。

import numpy as np
import random
import csv
import pandas as pd

all_data_df = pd.read_csv("input_data.csv", sep='\t', header=None,names=["org_index", "s1", "s2", "label"])
#使用pandas 读取csv原始数据,保存为pandas数据格式(同表格形式)

all_data_df['random']=random.uniform(0,1) #增加一列,命名为random,值为随机数
df_frame = pd.DataFrame(all_data_df) #将pandas数据格式转化为DataFrame
df_frame = df_frame.sort_index(by='random')
#将所有数据安装random列排序,达到随机打乱样本的效果

df_frame = df_frame.set_index(['org_index'])#为打乱后数据重新建立索引
df_frame = df_frame.reset_index(drop=True)#重新生成新索引,丢弃原始索引
df_frame.reset_index(level=None)#新索引,从头开始自动递增

df_frame.to_csv(path_or_buf="output_random_data.csv", sep='\t', na_rep='', float_format=None, columns=["s1", "s2", "label"], header=True, index=True, mode='w', encoding="utf8")          #将数据保存为csv格式,即可得到随机后的样本,且索引重新生成

输入文件为:input.csv  输出文件为:output_random_data.csv 随机化后的数据样本

数据格式为 :

《利用pandas处理文本大数据训练样本随机化》

第一列是索引 org_index  ,第二列是句子1, 第三列是句子2 ,第四列 是标签(其中0表示两个句子不相似,1表示两个句子相似)。每列直接用制表符“\t”进行分隔。

代码处理步骤,模拟表格处理操作

1,新增加数据列

2,在新增加的数据列中生成随机数

3,将所有数据安装随机数那列进行排序

4,将第一列索引重新赋值即可

然后就可以使用文本编辑器安装数据比较划分训练集和测试集啦。该代码仅用于可以使用文本编辑器打开的数据规模,还没有达到真正海量的数据处理,适合中等规模数据处理方法。

 

    原文作者:小凡18
    原文地址: https://blog.csdn.net/weixin_41021342/article/details/88038805
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞