首先明确任务:
建立模型通过长文本数据正文(article),预测文本对应的类别(class)

确定好任务之后我们先对数据进行读取,DataFrames的head()方法,看看数据的前五行是如何的

import sys
assert sys.version_info >= (3, 5)
import sklearn
assert sklearn.__version__ >= "0.20"
import numpy as np
import os

training_data= pd.read_csv('./train_set.csv', nrows=5000)
#training_data = pd.read_csv(csv_path, nrows=5000)
training_data.head()

任务1-数据初始
通过上面得知,数据集就只有“id”,“article”,“word_seg”,“class”等四个属性,其中特征就是“article”,和“word_reg” 。
然后我们可以查看官网,文章分别在“字”和“词”的级别上做了脱敏处理。共有四列:
第一列是文章的索引(id),第二列是文章正文在“字”级别上的表示,即字符相隔正文(article);第三列是在“词”级别上的表示,即词语相隔正文(word_seg);第四列是这篇文章的标注(class)。
注:每一个数字对应一个“字”,或“词”,或“标点符号”。“字”的编号与“词”的编号是独立的!

这样我们可以再采用info()的方法来快速获取数据集的简单描述,特别是总行数,每个属性的类型和非空值的数量
training_data.info()
任务1-数据初始
可以看到没有什么缺失值,我们可以看到article和word_seg这些特征的输入都是字符串的

我们也看看数据的数值属性的信息

training_data.describe()

任务1-数据初始

%matplotlib inline
import matplotlib.pyplot as plt
training_data['class'].hist(bins=50, figsize=(10,5))
plt.show()

可以看到对应的类别是1-19,而且分布没有太严重

然后对数据进行训练集和测试集划分

from sklearn.model_selection import train_test_split
train_set,val_set = train_test_split(training_data, test_size = 0.2, random_state=42)

里面的特征之前没学习过,现在还没很好的处理思路

相关文章:

  • 2021-09-17
  • 2021-12-30
  • 2021-07-11
  • 2021-09-27
  • 2022-12-23
  • 2021-11-10
  • 2021-07-01
猜你喜欢
  • 2021-10-13
  • 2022-12-23
  • 2022-01-18
  • 2021-12-23
  • 2021-10-19
  • 2021-11-28
  • 2021-12-06
相关资源
相似解决方案