自然语言处理实践Task2
一、读取训练数据
# sep设置分割符
# nrows设置读取的行数
train_df = pd.read_csv('./data/train_set.csv', sep='\t', nrows=100)
train_df.head()
第一列label为新闻的类别,第二列text为新闻的字符。
二、数据分析
- 计算句子的长度
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')
- 计算每个类别的样本数量
train_df['label'].value_counts().plot(kind='bar')
plt.title('News class count')
plt.xlabel('category')
- 字符统计
# 统计每个字符的个数
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)
三、作业
- 假设字符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()
- 统计每类新闻中出现次数对多的字符。
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相关推荐
- python documents in chinese_基于 Python 的简单自然语言处理实践
基于 Python 的简单自然语言处理 Twenty News Group 语料集处理 20 Newsgroup 数据集包含了约 20000 篇来自于不同的新闻组的文档,最早由 Ken Lang 搜集 ...
- DataWhale第21期组队学习自然语言处理实践(知识图谱)task4— 用户输入->知识库的查询语句
参考来源:https://github.com/datawhalechina/team-learning-nlp/blob/master/KnowledgeGraph_Basic/task04.md# ...
- r与python自然语言处理_Python自然语言处理实践: 在NLTK中使用斯坦福中文分词器 | 我爱自然语言处理...
斯坦福大学自然语言处理组是世界知名的NLP研究小组,他们提供了一系列开源的Java文本分析工具,包括分词器(Word Segmenter),词性标注工具(Part-Of-Speech Tagger), ...
- 《自然语言处理实践——聊天机器人技术原理与应用》(王昊奋)简要笔记(全)
第一章 概述 1.对话系统分类 基于实现方式--检索式.生成式 基于功能--问答系统.面向任务的对话系统.闲聊系统.主动推荐系统. 2.框架 自动语音识别--自然语言理解--对话管理(Web,社区问答 ...
- PyTorch深度学习实战 | 迁移学习与自然语言处理实践
01.文章任务 从提供的金融文本中识别出现的未知金融实体,包括金融平台名.企业名.项目名称及产品名称.持有金融牌照的银行.证券.保险.基金等机构.知名的互联网企业如腾讯.淘宝.京东等和训练集中出现的实 ...
- 自然语言处理实践Task6
基于Bert的文本分类 Bert Pretrain class WhitespaceTokenizer(object):"""WhitespaceTokenizer wi ...
- 自然语言处理实践Task5
使用gensim训练word2vec import logging import randomimport numpy as np import torchlogging.basicConfig(le ...
- 自然语言处理实践Task4
FastText FastText通过Embedding层将单词映射到稠密空间,然后将句子中所有的单词在Embedding空间中进行平均,进而完成分类操作. FastText是一个三层的神经网络,输入 ...
- 自然语言处理实践Task3
One-hot 这里的One-hot与数据挖掘任务中的操作是一致的,即将每一个单词使用一个离散的向量表示.具体将每个字/词编码一个索引,然后根据索引进行赋值. One-hot表示方法的例子如下: 句子 ...
最新文章
- element 往node里面增加属性值_【Vue原理】Compile - 源码版 之 Parse 属性解析
- python dlib学习(六):训练模型
- Takeown--夺取文件or文件夹所有权
- Linux C语言编程基本原理与实践
- [react] React中你有使用过propType吗?它有什么作用?
- Python笔记-Flask的搭建及基本使用
- Linux 发展历史
- 物联网概念炒作可能只是开始
- 查看oracle数据库是否归档和修改归档模式(转)
- 【linux】通过xshell上传文件
- 解题报告 之 HDU5336 XYZ and Drops
- 深入理解JVM:Java语言与JVM关系
- 马丁福勒微服务论文网址
- mac latex使用记录
- 【天光学术】本科历史人物方面的论文怎么写?先从标题入手!
- 上班第一天,大家都在干什么呢?‘Java研发工程师上班‘
- [转] mybatis调用存储过程(jeeplus)
- 0221沙发的制作过程(使用3DsMAX2016)
- 从“将男朋友转化为老公”的评价体系谈数据分析
- 跳跃的小怪兽 Splay