NLP学习笔记二

Task 2

第二个学习任务,分析数据。
分析目标:
①赛题数据中,新闻文本的长度是多少?
②赛题数据的类别分布是怎么样的,哪些类别比较多?
③赛题数据中,字符分布是怎么样的?

数据的长度分析

因为每个字符都以空格隔离,所以可以直接进行统计。

train_df['text_len'] = train_df['text'].apply(lambda x: len(x.split(' ')))
print(train_df['text_len'].describe())

输出结果:

count     1000.00000
mean       904.30900
std        929.32823
min         21.00000
25%        367.00000
50%        656.00000
75%       1102.50000
max      10018.00000
Name: text_len, dtype: float64

数据解释:
25%那一行表示:有25%的数据在367以下!
以此类推,有50%的文本长度在656以下,有75%的文本长度在1102.5以下.
这个数值可以由describe(percentiles=[.25, .5, .75])进行调整。

结论:
数据文本很长,每个文本平均由907个字符构成,最短的文本长度为2,最长的文本长度为57921。

根据文本长度我们绘制直方图进行观察:

import matplotlib.pyplot as plt
plt.hist(train_df['text_len'], bins=200)
plt.xlabel('Text char count')
plt.title("Histogram of char count")
plt.show()

在这里插入图片描述
由图可得:文本长度集中在0~2000个字符之间。

数据的类别发布

统计训练数据的label分布情况,并画出柱状图。

train_df['label'].value_counts().plot(kind='bar')
plt.title('News class count')
plt.xlabel("category")
plt.show()

在这里插入图片描述
由图可知,数据集的类别发布较为不均匀。训练集中科技类新闻最多,星座类新闻最少。

数据的字符发布

我们将所有文本进行拼接,然后对每个字符进行统计。

from collections import Counter
all_lines = ' '.join(list(train_df['text']))
word_count = Counter(all_lines.split(" "))
word_count = sorted(word_count.items(), key=lambda d:d[1], reverse = True)
print(len(word_count))
print(word_count[0])
print(word_count[-1])

输出结果:

3969
('3750', 37255)
('5556', 1)

结论:
共有3969个不同的字符,其中编码为‘3750’的字符出现次数最多,‘5556’出现次数最少。根据官方文档:字符3750、900、648在20w新闻覆盖率接近90%,很可能为标点符号。

总结

1.赛题中每个新闻包含的字符个数平均为1000个,还有一些新闻字符较长;
2.赛题中新闻类别分布不均匀,科技类新闻样本量接近4w,星座类新闻样本量不到1k;
3.赛题总共包括7000-8000个字符。

通过数据分析,我们还可以得出以下结论:
1.每个新闻平均字符个数较多,可能需要截断;
2.由于类别不均衡,会严重影响模型的精度。

作业

还没来得及做!难受!

1.假设字符3750,字符900和字符648是句子的标点符号,请分析赛题每篇新闻平均由多少个句子构成?
思路:日常生活中出现得最多的标点符号是:句号、逗号、分号。其中个人认为句号数量应该处于其他标点符号的中间,即字符900为句号,初步估计句子个数为:197653.

2.统计每类新闻中出现次数对多的字符?
还没来得及打代码尝试。

周末回来把缺的内容和自己的思考补上!今天不够时间学习,难受!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值