达观杯文本智能处理挑战赛练习

数据说明

比赛官方对数据的说明是数据包含两个文件:train_set.csv和test_set.csv

一.初识数据

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

  1. 第一列是文章的索引(id)
  2. 第二列是文章正文在“字”级别上的表示,即字符相隔正文(article)
  3. 第三列是在“词”级别上的表示, 即词语相隔正文(word_seg)
  4. 第四列是这篇文章的标注(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

data_path='E:/dataset/daguan/new_data/'

train_data=pd.read_csv(data_path+"train_set.csv")
test_data=pd.read_csv(data_path+"test_set.csv")
train_data.head()

达观杯文本智能处理挑战赛练习

看一下标签值的分布情况:

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

达观杯文本智能处理挑战赛练习

可以看到训练集有102277条数据,文本分类共19类,没有严重的类别不均。

看一下训练集有没有缺失值:

train_data.isnull().any()

达观杯文本智能处理挑战赛练习

可以看到没有任何一列存在缺失值

看一下训练集有没有缺失值:

test_data.isnull().any()

达观杯文本智能处理挑战赛练习

也没有缺失值

数据拆分

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

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)

达观杯文本智能处理挑战赛练习

本来想只取word_seg列的,但是考虑到后面做模型融合或者提取构造特征时可能会用到,就先留下来了,到后面再看吧。