1. 程式人生 > 實用技巧 >資料讀取與資料分析

資料讀取與資料分析

一、資料讀取

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

  

二、資料分析

1、長度分析

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

result:

2、字元分佈統計

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))
# 6869

print(word_count[0])
# ('3750', 7482224)

print(word_count[-1])
# ('3133', 1)

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(word_count[0])
# ('3750', 197997)

print(word_count[1])
# ('900', 197653)

print(word_count[2])
# ('648', 191975)

 三、資料分析的結論

  通過上述分析我們可以得出以下結論:

  1. 賽題中每個新聞包含的字元個數平均為1000個,還有一些新聞字元較長;
  2. 賽題中新聞類別分佈不均勻,科技類新聞樣本量接近4w,星座類新聞樣本量不到1k;
  3. 賽題總共包括7000-8000個字元;

  通過資料分析,我們還可以得出以下結論:

  1. 每個新聞平均字元個數較多,可能需要截斷;

  2. 由於類別不均衡,會嚴重影響模型的精度;

四、結論

待更新。。。