数据:
train_set.csv:此数据集用于训练模型,每一行对应一篇文章。文章分别在“字”和“词”的级别上做了脱敏处理。共有四列:
第一列是文章的索引(id),第二列是文章正文在“字”级别上的表示,即字符相隔正文(article);第三列是在“词”级别上的表示,即词语相隔正文(word_seg);第四列是这篇文章的标注(class)。
注:每一个数字对应一个“字”,或“词”,或“标点符号”。“字”的编号与“词”的编号是独立的!
test_set.csv:此数据用于测试。数据格式同train_set.csv,但不包含class。
注:test_set与train_test中文章id的编号是独立的。
代码:
import pandas as pd
train = pd.read_csv('./data/train_set.csv', index_col=None)
test = pd.read_csv('./data/test_set.csv', index_col=None)
print('train :', train.shape)
print('test :', test.shape)
print(train.columns)
print(test.columns)
train['char_len'] = train['article'].map(lambda x: len(x.split(' ')))
train['word_len'] = train['word_seg'].map(lambda x: len(x.split(' ')))
test['char_len'] = test['article'].map(lambda x: len(x.split(' ')))
test['word_len'] = test['word_seg'].map(lambda x: len(x.split(' ')))
print(train['char_len'].describe())
print(train['word_len'].describe())
print(test['char_len'].describe())
print(test['word_len'].describe())
输出:
train : (102277, 4)
test : (102277, 3)
Index(['id', 'article', 'word_seg', 'class'], dtype='object')
Index(['id', 'article', 'word_seg'], dtype='object')
count 102277.000000
mean 1177.100159
std 1348.431565
min 50.000000
25% 497.000000
50% 842.000000
75% 1408.000000
max 55804.000000
Name: char_len, dtype: float64
count 102277.000000
mean 716.954604
std 801.804540
min 6.000000
25% 305.000000
50% 514.000000
75% 862.000000
max 39759.000000
Name: word_len, dtype: float64
count 102277.000000
mean 1177.731865
std 1320.447219
min 50.000000
25% 499.000000
50% 842.000000
75% 1412.000000
max 31694.000000
Name: char_len, dtype: float64
count 102277.000000
mean 718.052152
std 792.131628
min 6.000000
25% 306.000000
50% 516.000000
75% 863.000000
max 19755.000000
Name: word_len, dtype: float64
分析:
训练集和测试集各自有102277条
训练集中的每条样本article平均长度、最大长度、最小长度分别为:1177、55804、50
训练集中的每条样本word_seg平均长度、最大长度、最小长度分别为:717、39759、6
测试集中的每条样本article平均长度、最大长度、最小长度分别为:1177、31694、50
测试集中的每条样本word_seg平均长度、最大长度、最小长度分别为:718、19755、6