当前位置: 代码迷 >> 综合 >> DATAWHALE-NLP 数据分析-DAY2
  详细解决方案

DATAWHALE-NLP 数据分析-DAY2

热度:76   发布时间:2024-01-31 04:06:17.0

DATAWHALE-NLP 数据分析-DAY2

  • 1.数据分析
    • 1.1按照教程分析
  • 2.DEV的熟悉

1.数据分析

1.1按照教程分析

按照NLP入门教程的代码跑了一遍
一、每段文字的字符数量及类别频率

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

在这里插入图片描述
label的分类严重不均匀,但这个是实际中很常见的情况,而且根据统计的频率来看,应该前期还不需要投入太多心思处理这块的内容。

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

在这里插入图片描述

在这里插入图片描述
其中每个标签的含义
{‘科技’: 0, ‘股票’: 1, ‘体育’: 2, ‘娱乐’: 3, ‘时政’: 4, ‘社会’: 5, ‘教育’: 6, ‘财经’: 7, ‘家居’: 8, ‘游戏’: 9, ‘房产’: 10, ‘时尚’: 11, ‘彩票’: 12, ‘星座’: 13}

二、统计字符的频率
根据教程的提示,应该3750,648,900这频率最高的前3个字符应该是标点符号,猜测可能是需要在后面去掉或者作为标记去把每一篇文章分割成句子再作更多处理。

from collections import Counter
all_lines = ' '.join(list(train_set['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[:5])
#[('3750', 7482224), ('648', 4924890), ('900', 3262544), ('3370', 2020958), ('6122', 1602363)]print(word_count[-5:])
#[('155', 1), ('1415', 1), ('1015', 1), ('4468', 1), ('3133', 1)]

2.DEV的熟悉

注意安装package的时候后面要加 -user。。。这个卡了我一段时间,其次就是有这样的GPU资源真的舒服,感谢DATAWHALE提供了这么多资讯!

参考资料:零基础入门NLP- 新闻文本分类_v4