数据集

使用的是hnSentiCorp_htl_all
数据概览: 7000 多条酒店评论数据,5000 多条正向评论,2000 多条负向评论
字段说明

字段 说明
label 1 表示正向评论,0 表示负向评论
review 评论内容

导包

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

查看部分数据

data = pd.read_csv("ChnSentiCorp_htl_all.csv")
print(data.sample(20))

获得数据集的标签数量分布

plt.style.use('fivethirtyeight')
sns.countplot(x="label", data=data)
plt.title("data")
plt.show()

获取数据集的句子长度分布

#第一步:将int类型转化为str;
#data['Air_quality']=data['Air_quality'].astype('str')
#第二步:利用len()函数,判断Air_quality列每个字符串的长度,并生成新列
data["sentence_length"] = data["review"].str.len()
# 绘制句子长度列的数量分布图
sns.countplot(x="sentence_length", data=data)
# 主要关注count长度分布的纵坐标, 不需要绘制横坐标, 横坐标范围通过dist图进行查看
plt.xticks([])
plt.show()

# 绘制dist长度分布图
sns.distplot(data["sentence_length"])
# 主要关注dist长度分布横坐标, 不需要绘制纵坐标
plt.yticks([])
plt.show()


通过绘制句子长度分布图, 可以得知我们的语料中大部分句子长度的分布范围, 因为模型的输入要求为固定尺寸的张量,合理的长度范围对之后进行句子截断补齐(规范长度)起到关键的指导作用。

获取数据集的正负样本长度散点分布

# 绘制训练集长度分布的散点图
sns.stripplot(y='sentence_length', x='label', data=data)
plt.show()


通过查看正负样本长度散点图, 可以有效定位异常点的出现位置, 帮助我们更准确进行人工语料审查。

获得数据集不同词汇总数统计

# 导入jieba用于分词
# 导入chain方法用于扁平化列表
import jieba
from itertools import chain
# 进行训练集的句子进行分词, 并统计出不同词汇的总数
train_vocab = set(chain(*map(lambda x: jieba.lcut(str(x)), data["review"])))
print("数据集共包含不同词汇总数为:", len(train_vocab))

获得数据集上正负的样本的高频形容词词云

# 使用jieba中的词性标注功能
import jieba.posseg as pseg
# 导入绘制词云的工具包
from wordcloud import WordClouddef get_a_list(text):"""用于获取形容词列表"""# 使用jieba的词性标注方法切分文本,获得具有词性属性flag和词汇属性word的对象,# 从而判断flag是否为形容词,来返回对应的词汇r = []for g in pseg.lcut(text):if g.flag == "a":r.append(g.word)return rdef get_word_cloud(keywords_list,name):# 实例化绘制词云的类, 其中参数font_path是字体路径, 为了能够显示中文,# max_words指词云图像最多显示多少个词, background_color为背景颜色wordcloud = WordCloud(font_path="C:\Windows\Fonts\simhei.ttf", max_words=100, background_color="white")# 将传入的列表转化成词云生成器需要的字符串形式keywords_string = " ".join(keywords_list)# 生成词云wordcloud.generate(keywords_string)wordcloud.to_file(name)# 绘制图像并显示plt.figure()plt.imshow(wordcloud, interpolation="bilinear")plt.axis("off")plt.show()# 获得数据集上正样本
p_data = data[data["label"] == 1]["review"]
# 对正样本的每个句子的形容词
p_a_vocab = chain(*map(lambda x: get_a_list(str(x)), p_data))# 获得训练集上负样本
n_data = data[data["label"] == 0]["review"]
# 获取负样本的每个句子的形容词
n_a_vocab = chain(*map(lambda x: get_a_list(str(x)), n_data))# # 调用绘制词云函数
get_word_cloud(p_a_vocab, "good.png")
get_word_cloud(n_a_vocab, "bad,png")



根据高频形容词词云显示, 我们可以对当前语料质量进行简单评估, 同时对违反语料标签含义的词汇进行人工审查和修正, 来保证绝大多数语料符合训练标准. 上图中的正样本大多数是褒义词, 而负样本大多数是贬义词, 基本符合要求, 但是负样本词云中也存在"便利"这样的褒义词, 因此可以人工进行审查.

自然语言处理 文本数据分析相关推荐

  1. 文本数据分析:文本挖掘还是自然语言处理?

    数据分析师Seth Grimes曾指出"80%的商业信息来自非结构化数据,主要是文本数据",这一表述可能夸大了文本数据在商业数据中的占比,但是文本数据的蕴含的信息价值毋庸置疑.KD ...

  2. 自然语言处理 文本预处理(下)(张量表示、文本数据分析、文本特征处理等)

    文章目录 一.文本张量表示方法 1. 什么是文本张量表示 2. 文本张量表示的作用: 3. 文本张量表示的方法: 4. one-hot词向量 4.1 什么是one-hot词向量表示 4.2 one-h ...

  3. 自然语言处理文本分析_通过自然语言处理释放文本分析的力量

    自然语言处理文本分析 深度学习 , 自然语言处理 (Deep Learning, Natural Language Processing) Natural language is a language ...

  4. 文本数据分析:删除停用词

    停用词是指在信息检索中,为节省存储空间和提高搜索效率,在处理自然语言文本之前或之后会自动过滤掉某些没有具体意义的字或词,这些字或词即被称为停用词,比如英文单词"I""th ...

  5. Python 数据分析第六期--文本数据分析

    Python 数据分析第六期–文本数据分析 1. Python 文本分析工具 NLTK NLTK (Natural Language Toolkit) NLP 领域最常用的一个 Python 库 , ...

  6. Python对某视频弹幕进行爬取,完成文本数据分析

    本文主要使用jieba.requests.wordcloud.matplotlib.imageio等包完成数据爬取.文本数据分析.可视化. 弹幕数据: 目录 1.爬取弹幕数据.分词并统计高频词: 爬取 ...

  7. 2.文本预处理(分词,命名实体识别和词性标注,one-hot,word2vec,word embedding,文本数据分析,文本特征处理,文本数据增强)

    文章目录 1.1 认识文本预处理 文本预处理及其作用 文本预处理中包含的主要环节 文本处理的基本方法 文本张量表示方法 文本语料的数据分析 文本特征处理 数据增强方法 重要说明 1.2 文本处理的基本 ...

  8. python爬虫与文本数据分析 系列课

    在过去的两年间,Python一路高歌猛进,成功窜上"最火编程语言"的宝座.惊奇的是使用Python最多的人群其实不是程序员,而是数据科学家,尤其是社会科学家,涵盖的学科有经济学.管 ...

  9. 自然语言之文本预处理

    感谢阅读 文本处理的基本方法 分词 概念 作用 jieba 安装 结巴识别模式 精确模式: 全模式: 搜索引擎模式: 全模式和搜索引擎模式的区别: 向切分依据的字典中添加.删除词语 用户自定义词典(u ...

最新文章

  1. 转:文件系统read,write缓存,有点意思
  2. 时间序列分类算法简介及其在能耗数据分类上的应用
  3. 关于 vim 的 magic 设置
  4. Python getattr() 函数
  5. 给内部类对象数组属性赋值时报错:Exception in thread main java.lang.NullPointerException...
  6. JS收集:遍历CHECKBOX
  7. python 数据类_python数据类
  8. 输入法相关的使用(跳转)
  9. 飘动图片广告html代码,基于JavaScript代码实现随机漂浮图片广告
  10. 微调StyleGAN2模型(使用Google Colab)
  11. 南威尔士计算机科学,新南威尔士大学计算机科学专业
  12. 汉字转拼音工具JPinyin的介绍和使用示例
  13. 转移到ios下载安卓_转移到iOS下载-转移到iOS安装器(安卓转移苹果软件)下载v2.10.0 安卓版-当易网...
  14. 宿主软件中文版含乐器包和插件包-AVID Pro Tools 10.3.10 Mac
  15. Uniswap社区3号提案近200万美元预算昨日到账,这笔钱要怎么花?
  16. 鸿蒙三部曲 吞噬星空,我吃西红柿最新作品竟然是它?看来鸿蒙金榜第四名已有归属...
  17. 为何webpack风靡全球?三大主流模块打包工具对比
  18. 复盘2021,拥抱2022!
  19. 计算机网络安全-----身份认证
  20. 新iPhone太贵了? UBTC锁仓理财了解一下

热门文章

  1. Navigating to current location (/login) is not allowed
  2. project导出html格式,前端导出xslx.html
  3. java画板中画直线_画图板(画直线)
  4. 3分钟,把你的安卓手机/平板变成你的电脑副屏
  5. 如何写15分钟的计时器
  6. python孩子 哪里学_Python知识免费学!孩子提高逻辑思维,这样练就够了!
  7. WIN32 opengl环境搭建
  8. Linux中pid与tid的异同及top中pid字段含义
  9. Vue粒子特效使用教程(vue-particles插件)
  10. 极米newz6x、极米new z8x和当贝D3X的区别哪个好