Task 2 数据读取与数据分析

Task 2 数据读取与数据分析

数据读取

下载数据,通过read_csv 读取train_set.csv数据:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

train_df=train_df=pd.read_csv('d:\\a\\train_set1.csv',sep='\t',nrows=100)
train_df.head

参数:sep每列的分隔符,用‘\t’分割,nrows=100,读取100条数据

数据分析

赛题数据中每行句子的字符使用空格进行分割,可通过直接统计单词的个数得到每个句子的长度。

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

通过结果可知,句子长度均值在872,最短64 最长7125

查看句子长度的直方图:

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

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-lDDtpSXj-1595408686822)(D:\downlpad\288d01fbc2f9cd73258e1a8db9e8e41.png)]

查看赛题数据的类别分布

通过绘制直方图来查看每个新闻类别的分布。

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

输出结果:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Rt3gjWxD-1595408686824)(D:\downlpad\93494884acc7115cf6875b428d39a7b.png)]

通过结果可知,大部分的新闻分布是0,1,2 最少的是13,新闻的类别标识为:{‘科技’:0,‘股票’:1,‘体育’:2,‘娱乐’:3,‘时政’:4,‘社会’:5,‘教育’:6,‘财经’:7,‘家居’:8,‘游戏’:9,‘房产’:10,‘时尚’:11,‘彩票’:12,‘星座’:13}。

字符分布

统计每个字符出现的次数,将句子进行拼接进而划分为字符,并统计每个字符的个数。通过统计,知道 3750 3702 5034 出现频率最高推测其为标点符号。

使用lambda函数,先对train_df[‘text’]的数据进行去重,然后拼接统计:

train_df['text_unique'] = train_df['text'].apply(lambda x: ' '.join(list(set(x.split(' ')))))
all_lines = ' '.join(list(train_df['text_unique']))
word_count = Counter(all_lines.split(' '))
word_count = sorted(word_count.items(),key=lambda d:int(d[1]),reverse=True)
print(len(word_count))
print(word_count[0])
print(word_count[-1])

可知:1.每个新闻的字符个数在900多,还有个别新闻较长,可能需要截断;

2.新闻类别分布不均匀,会影响模型精度。

)




可知:1.每个新闻的字符个数在900多,还有个别新闻较长,可能需要截断;

2.新闻类别分布不均匀,会影响模型精度。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值