文本预处理-文本数据分析
文本数据分析的作用
- 文本数据分析能够有效帮助我们理解数据语料,快速检查出语料可能存在的问题,并指导之后模型训练过程中一些超参数的选择
常用的几种文本数据分析方法
- 标签数量分布
- 句子长度分布
- 词频统计与关键词词云
实验数据
中文酒店评论语料:
- 属于二分类的中文情感分析语料,该语料存放在"./cn_data"目录下
- 其中train.tsv代表训练集,dev.tsv代表验证集,二者数据样式相同
train.tsv数据样式
sentence label
早餐不好,服务不到位,晚餐无西餐,早餐晚餐相同,房间条件不好,餐厅不分吸烟区,房间不分有无烟房. 0
train.tsv数据样式说明
- train.tsv中的数据内容共分为2列,第一列数据代表具有感情色彩的评论文本;第二列数据,0或1,代表每条文本数据是积极或消极的评论,0代表消极,1代表积极
获得训练集和验证集的标签数量分布
1 | import seaborn as sns |
分析:
- 在深度学习模型评估中,我们一般使用ACC作为评估指标,若想将ACC的基线定义在50%左右,则需要正负样本比例维持在1:1左右,否则就要进行收入必要的数据增强或数据删减。
获取训练集和验证集的句子长度分布
1 | # 在训练数据中添加新的句子长度列,每个元素的值都是对应的句子列的长度 |
- 分析
- 通过绘制句子长度分布图,可以得知语料中大部分句子长度的分布范围,因为模型的输入要求固定尺寸的张量,合理的长度范围对之后进行句子截断补齐(规范长度)直到关键的指导作用。上图中大部分句子就是在20~250之间
获取训练集和验证集正负样本长度散点分布
1 | # 绘制训练集长度分布的散点图 |
- 分析
- 通过查看正负样本长度散点图,可以有效定位异常点的出现位置,帮助我们更准确进行人工语料审查。上图中在训练集正样本中出现了异常点,它的句子长度近3500左右,需要人工审查
获得训练集与验证集不同词汇总数统计
1 | # 导入jieba用于分词 |
训练集共包含不同词汇总数为: 12162
验证集共包含不再词汇总数为: 6857
获得训练集上正负样本的高频形容词词云
1 | # 使用jieba中的词性标注功能 |
获得验证集上正负样本的形容词词云
1 | # 获得验证集上正样本 |
- 分析
- 根据高频形容词词云显示,可以对当前语料质量进行简单评估,同时对违反语料标签含义的词汇进行人工审查和修正,来保证绝大多数语料符合训练标准。上图中的正样本大多数是褒义词,而负样本大多数是贬义词,基本符合要求,但负样本中也存在“便利”这样的褒义词,因此可以人工进行审查