零基础入门NLP——数据读取与数据分析

零基础入门NLP——数据读取与数据分析

一、数据读取

赛题数据虽然是文本数据,每个新闻是不定长的,但任然使用csv格式进行存储。因此可以直接用Pandas完成数据读取的操作。

import pandas as pd
train_df = pd.read_csv('train_set.csv', sep='\t', nrows=100)

这里的read_csv由三部分构成:

  • 读取的文件路径,这里需要根据改成你本地的路径,可以使用相对路径或绝对路径;
  • 分隔符sep,为每列分割的字符,设置为\t即可;
  • 读取行数nrows,为此次读取文件的函数,是数值类型(由于数据集比较大,建议先设置为100);

结果如下所示,其中第一列为新闻类别,第二列为新闻字符

label text
0 2 2967 6758 339 2021 1854 3731 4109 3792 4149 15…
1 11 4464 486 6352 5619 2465 4802 1452 3137 5778 54…
2 3 7346 4068 5074 3747 5681 6093 1777 2226 7354 6…
3 2 7159 948 4866 2109 5520 2490 211 3956 5520 549…
4 3 3646 3055 3055 2490 4659 6065 3370 5814 2465 5…

二、数据分析

在赛题数据中每行句子的字符使用空格进行隔开,所以可以直接统计单词的个数来得到每个句子的长度。统计并如下:

%pylab inline
train_df['text_len'] = train_df['text'].apply(lambda x: len(x.split(' ')))
print(train_df['text_len'].describe())
count     100.000000
mean      872.320000
std       923.138191
min        64.000000
25%       359.500000
50%       598.000000
75%      1058.000000
max      7125.000000
Name: text_len, dtype: float64

对新闻句子的统计可以得出,本次赛题给定的文本比较长,每个句子平均由872个字符构成,最短的句子长度为64,最长的句子长度为7125。

下图将句子长度绘制了直方图,可见大部分句子的长度都几种在2000以内。

_ = plt.hist(train_df['text_len'], bins=200)
plt.xlabel('Text char count')
plt.title("Histogram of char count")

零基础入门NLP——数据读取与数据分析_第1张图片

你可能感兴趣的:(零基础入门NLP——数据读取与数据分析)