达观杯文本智能处理(1)

数据说明

比赛官方对数据的说明是数据包含两个文件:train_set.csv和test_set.csv
数据很庞大,数据集和测试集都是1.28G,表示8G的内存很困难,准备再加个8G的内存条。
一.初识数据

train_set.csv:此数据集用于训练模型,每一行对应一篇文章。文章分别在“字”和“词”的级别上做了脱敏处理。共有四列:

第一列是文章的索引(id)
第二列是文章正文在“字”级别上的表示,即字符相隔正文(article)
第三列是在“词”级别上的表示, 即词语相隔正文(word_seg)
第四列是这篇文章的标注(class)。
test_set.csv:此数据用于测试。数据格式同train_set.csv,但不包含class。

注:test_set与train_test中文章id的编号是独立的。
数据读取

import pandas as pd
from sklearn.model_selection import train_test_split
#内存不足时,可采用train_data=pd.read_csv("train_set.csv",nrows=5000)来读取
train_data=pd.read_csv("train_set.csv")
test_data=pd.read_csv("test_set.csv")
train_data.head()

在这里插入图片描述
看一下标签值的分布情况

print(train_data['class'].describe())

在这里插入图片描述
查看数据中类别分布情况

from pyecharts import Bar
attr = train_data['class'].value_counts(ascending = True).index
v1 = train_data['class'].value_counts(ascending = True).values
bar = Bar("数据集按类别划分的分布图")
bar.use_theme('dark')
bar.add("类别", attr, v1,is_label_show=True,is_datazoom_show=True)
bar

![(https://img-blog.csdnimg.cn/20190411183905209.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2R6eXN1bnNoaW5l,size_16,color_FFFFFF,t_70)

print(train_data['class'].value_counts())

在这里插入图片描述

可以看到训练集有102277条数据,文本分类共19类,没有严重的类别不均。
类别为5的数据最少,类别为3的数据最多。
看一下训练集有没有缺失值:

train_data.isnull().any()

在这里插入图片描述
可以看出没有缺失值

article字段和word_seg字段的字数区间如下:

num = len(train_data['article'])
article_len_list = []
word_seg_len_list = []
for i in range(num):
    article_len = len(train_data['article'][i].split())
    article_len_list.append(article_len)
    word_seg_len = len(train_data['word_seg'][i].split())
    word_seg_len_list.append(word_seg_len)
print('article中最少的字数为:',min(article_len_list))
print('article中最多的字数为:',max(article_len_list))
print('--------------------')
print('word_seg中最少的字数为:',min(word_seg_len_list))
print('word_seg中最多的字数为:',max(word_seg_len_list))

数据拆分
可以看到其实数据集中的字和词都是脱敏后的,不需要分词,直接对训练集切分

columns=['article','word_seg']
X_train,X_test,y_train,y_test=train_test_split(train_data[columns],train_data['class'],test_size=0.3, random_state=2019)
print(X_train.shape,X_test.shape,y_train.shape,y_test.shape)

article中最少的字数为: 50
article中最多的字数为: 55804
word_seg中最少的字数为: 6
word_seg中最多的字数为: 39759
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值