一、读取训练数据

# sep设置分割符
# nrows设置读取的行数
train_df = pd.read_csv('./data/train_set.csv', sep='\t', nrows=100)
train_df.head()

第一列label为新闻的类别,第二列text为新闻的字符。

二、数据分析

  1. 计算句子的长度
train_df['text_len'] = train_df['text'].apply(lambda x: len(x.split(' ')))
train_df['text_len'].describe()

结果:100个句子,平均长度为872.32,最长为7125,最短为64。

count     100.000000
mean      872.320000
std       923.138191
min        64.000000
25%       359.500000
50%       598.000000
75%      1058.000000
max      7125.000000

可视化分析

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

  1. 计算每个类别的样本数量
train_df['label'].value_counts().plot(kind='bar')
plt.title('News class count')
plt.xlabel('category')

  1. 字符统计
# 统计每个字符的个数
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)
# 统计不同字符在句子中出现的次数
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)

三、作业

  1. 假设字符3750,字符900和字符648是句子的标点符号,请分析赛题每篇新闻平均由多少个句子构成?
import re
train_df['sentence_len'] = train_df['text'].apply(lambda x: len(re.split('[3750 900 648]', x)))
train_df['sentence_len'].describe()
  1. 统计每类新闻中出现次数对多的字符。
from collections import Counter
def handle(x):all_lines = ' '.join(list(x['text']))word_count = Counter(all_lines.split(" "))word_count = sorted(word_count.items(), key=lambda d:int(d[1]), reverse = True)return word_count[0]res = train_df.groupby('label').apply(handle)

自然语言处理实践Task2相关推荐

  1. python documents in chinese_基于 Python 的简单自然语言处理实践

    基于 Python 的简单自然语言处理 Twenty News Group 语料集处理 20 Newsgroup 数据集包含了约 20000 篇来自于不同的新闻组的文档,最早由 Ken Lang 搜集 ...

  2. DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句

    参考来源:https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task04.md# ...

  3. r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...

    斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger), ...

  4. 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)

    第一章 概述 1.对话系统分类 基于实现方式--检索式.生成式 基于功能--问答系统.面向任务的对话系统.闲聊系统.主动推荐系统. 2.框架 自动语音识别--自然语言理解--对话管理(Web,社区问答 ...

  5. PyTorch深度学习实战 | 迁移学习与自然语言处理实践

    01.文章任务 从提供的金融文本中识别出现的未知金融实体,包括金融平台名.企业名.项目名称及产品名称.持有金融牌照的银行.证券.保险.基金等机构.知名的互联网企业如腾讯.淘宝.京东等和训练集中出现的实 ...

  6. 自然语言处理实践Task6

    基于Bert的文本分类 Bert Pretrain class WhitespaceTokenizer(object):"""WhitespaceTokenizer wi ...

  7. 自然语言处理实践Task5

    使用gensim训练word2vec import logging import randomimport numpy as np import torchlogging.basicConfig(le ...

  8. 自然语言处理实践Task4

    FastText FastText通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作. FastText是一个三层的神经网络,输入 ...

  9. 自然语言处理实践Task3

    One-hot 这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示.具体将每个字/词编码一个索引,然后根据索引进行赋值. One-hot表示方法的例子如下: 句子 ...

最新文章

  1. element 往node里面增加属性值_【Vue原理】Compile - 源码版 之 Parse 属性解析
  2. python dlib学习(六):训练模型
  3. Takeown--夺取文件or文件夹所有权
  4. Linux C语言编程基本原理与实践
  5. [react] React中你有使用过propType吗?它有什么作用?
  6. Python笔记-Flask的搭建及基本使用
  7. Linux 发展历史
  8. 物联网概念炒作可能只是开始
  9. 查看oracle数据库是否归档和修改归档模式(转)
  10. 【linux】通过xshell上传文件
  11. 解题报告 之 HDU5336 XYZ and Drops
  12. 深入理解JVM:Java语言与JVM关系
  13. 马丁福勒微服务论文网址
  14. mac latex使用记录
  15. 【天光学术】本科历史人物方面的论文怎么写?先从标题入手!
  16. 上班第一天,大家都在干什么呢?‘Java研发工程师上班‘
  17. [转] mybatis调用存储过程(jeeplus)
  18. 0221沙发的制作过程(使用3DsMAX2016)
  19. 从“将男朋友转化为老公”的评价体系谈数据分析
  20. 跳跃的小怪兽 Splay

热门文章

  1. 双层循环嵌套打印矩形 java
  2. fastdfs-02-上传与下载流程
  3. virtualbox ,centos 的多网卡如何设置
  4. CCF201509-4 高速公路(100分)
  5. 结对开发 随机产生数组并求最大子数组的和
  6. 设置android:sharedUserId=android.uid.system 支持 sdcard读写
  7. Visio中如何画正弦波
  8. GIPS语音编解码器家族
  9. 在循环体中如何实现叠放效果
  10. 容器编排技术 -- Kubernetes 为 Namespace 配置最小和最大 CPU 限制