关于文本数据预处理的一些方法

article/2025/8/14 21:53:52

最近在进行一个关于深度学习的文本情感分类的项目,从数据获取到清洗,以及文本标注这些都在准备。文本预处理是NLP中十分关键的一个流程,正所谓数据是否优质决定着神经网络的训练效果,以及后续对神经网络的调参,本文分享一些基本的文本预处理方法。

文章目录

  • 数据浏览
  • 一、数据整合以及体量观测
  • 二、文本数据分词
  • 三、词云
  • 四、句长统计
  • 总结


数据浏览

由于项目上运用到的情感分类数据是要用于进行5分类的情感分类,数据体量较大,本文只选取其中很小一部分进行预处理,大体数据集合如下:
在这里插入图片描述

一、数据整合以及体量观测

这部分更多是对数据进行读取以及对各个标签数据集合进行整合,对各个标记进行整合

import matplotlib.pyplot as plt
import pandas as pd
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号one = pd.read_csv('情感-1.csv', encoding='gbk', header=None, )
two = pd.read_csv('情感-2.csv', encoding='gbk', header=None, )
three = pd.read_csv('情感-3.csv', encoding='gbk', header=None, )
four = pd.read_csv('情感-4.csv', encoding='gbk', header=None, )
five = pd.read_csv('情感-5.csv', encoding='gbk', header=None, )
# 画图进行各个数据量观测
def chart():len_list = [len(one), len(two), len(three), len(four), len(five), ]# plt.plot(range(1, 6), list)plt.bar(range(1, 6), len_list, )text = dict(list(zip(range(1, 6), len_list)))for i, j in text.items():plt.text(i, j, j, size = 15)plt.show()
# 数据文件整合,把5个文件进行整合成一个,以便于后续分词和词向量训练
def to_data():path = [one, two, three, four, five]data = pd.concat(path)data.to_csv('data.csv', header=False, index=False)
chart()
to_data()

结果预览:
在这里插入图片描述

二、文本数据分词

接下来就是对保存的文本进行一个分词操作,我们选用jieba分词,该分词有三种模式:
精确模式(jieba.cut()):把文本精确的切分开,不存在冗余单词
全模式(jieba.lcut()):把文本中所有可能的词语都扫描出来,有部分冗余单词
搜索引擎模式(jieba.lcut_for_search()):在精确模式基础上,对长词再次切分

import jieba
import pandas as pddef cut_word():data = pd.read_csv('data.csv', header=None, )[0]# 创建新文件以构建分词文本文件	with open('cut_word.txt', 'w', encoding='utf-8')as fp:for i in data:fp.write(str(' '.join(jieba.lcut(i))))fp.write(str('\n'))cut_word()

效果展示:
在这里插入图片描述
由于是运用到文本情感分析上没有对分词进行停用词以及去掉一些符串操作,在情感分析中一些停用词的由于往往具有不同的情感。

三、词云

对分词文本进行词云统计,以获取该语料的词频特性,在词云绘制中我们需要对用于词云绘制的语料进行去停用词操作,停用词往往是一段话、一篇文章出现最多的,如果不去除我们生成的词云将会难以判断出语料的词频特性。

import numpy as np
import wordcloud
from PIL import Image
import matplotlib.pyplot as pltdef cloud(Save = False):text = 'cut_word.txt'with open(text, encoding='utf-8') as f:text = f.read()stopwords = set()word = [line.strip() for line in open('Stopword.txt', 'r', encoding='utf-8').readlines()]stopwords.update(word)mask = np.array(Image.open('t01d0ea9f758acc4ce1.jpg'))# 运用WordCloud自带的stopwords进行筛选w = wordcloud.WordCloud(width=800,height=600,background_color='white', font_path='SIMLI.TTF', mask=mask, stopwords=stopwords)w.generate(text)plt.imshow(w)plt.show()if Save:save_path = 'wordCloud.png'        #保存词云图w.to_file(save_path)cloud(Save=True)

词云图片展示:通过这个图片我们就能直观得展示出语料得核心词,以及语料是什么性质的。
在这里插入图片描述

四、句长统计

在我们进行词嵌入以及需要设定的句子序列长短时,就要考虑文本数据的句子长度信息,这就使得对句子长短的统计显得更加重要。

import matplotlib.pyplot as plt
import pandas as pd
import numpy as npplt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签data = pd.read_csv('data.csv', header=None)[0]
data_len = []
for j in data:data_len.append(len(j))
print(data_len)
print('总句子数:', len(data))
print('最长句子:',np.max(data_len))
print('最小值:', np.min(data_len))
print('中位数:', int(np.median(data_len)))
print('平均值:', int(np.mean(data_len)))
data_list = {5: 0, 10: 0, 15: 0, 20: 0, 25: 0, 30: 0, 35: 0, 40: 0,45: 0, 50: 0, 55: 0, 60: 0, 65: 0, 70: 0, 75: 0,80:0}
for i in data:if len(i) < 5:data_list[5] += 1elif len(i) < 10:data_list[10] += 1elif len(i) < 15:data_list[15] += 1elif len(i) < 20:data_list[20] += 1elif len(i) < 25:data_list[25] += 1elif len(i) < 30:data_list[30] += 1elif len(i) < 35:data_list[35] += 1elif len(i) < 40:data_list[40] += 1elif len(i) < 45:data_list[45] += 1elif len(i) < 50:data_list[50] += 1elif len(i) < 55:data_list[55] += 1elif len(i) < 60:data_list[60] += 1elif len(i) < 65:data_list[65] += 1elif len(i) < 70:data_list[70] += 1elif len(i) < 75:data_list[75] += 1elif len(i) > 75:data_list[80] += 1print(data_list)
x = []
y = []
for key, index in data_list.items():x.append(key)y.append(index)
print(x)
print(y)plt.plot(x, y ,color='b', marker='o',markerfacecolor='red', markersize=7)
plt.title("数据集句子长度统计图")
plt.xlabel('句子长度')
plt.ylabel('统计量')# 设置数字标签
for a, b in data_list.items():print(a, b)plt.text(a, b, b, size=15)
plt.text(77, 30, '句长>80', size=10, color="b")
plt.text(62, 75, "统计总数量:%d" % len(data), size=10, color="r")
plt.text(62, 70, "句长最大值:%d" % np.max(data_len), size=10, color="r")
plt.text(62, 65, "句长最小值:%d" % np.min(data_len), size=10, color="r")
plt.text(62, 60, "句长中位数:%d" % int(np.median(data_len)), size=10, color="r")
plt.text(62, 55, "句长平均数:%d" % int(np.mean(data_len)), size=10, color="r")
plt.show()

在这里插入图片描述


总结

本文介绍了一些基础方法对文本数据预处理的方法,这些方法虽然简单但是很大程度上有利于后续我们对于情感分类的进行,以及神经网络的构建。其中有一些代码或者其他的可能是我借鉴其他大佬博主的,如有雷同十分抱歉!如果对您产生影响希望能告知我一下。谢谢!~ 。~


http://chatgpt.dhexx.cn/article/Xx4baxDy.shtml

相关文章

R语言|数据预处理方法

数据预处理的主要内容包括 数据清洗 原始数据的质量直接影响了数据分析的质量&#xff0c;不符合要求的脏数据有&#xff1a; 无关数据。重复数据或者含有特殊符号的数据。缺失值。产生原因是有些数据无法获取&#xff0c;或者获取成本过高&#xff0c;或者获取数据时产生误…

数据预处理流程

数据预处理流程总结 下面分享一下自己通常会用到的一些数据预处理的方法和步骤&#xff0c;用Kaggle平台上的elo用户忠诚度预测的数据集作为应用案例。 import numpy as np import pandas as pd import matplotlib.pyplot as plt plt.rcParams[font.sans-serif][SimHei] merch…

transforms数据预处理方法(一)

transforms数据预处理方法&#xff08;一&#xff09; 文章目录 transforms数据预处理方法&#xff08;一&#xff09;1.transforms——裁剪(1) transforms.CenterCrop(size)(2) transforms.RandomCrop (size, padding None , pad_if_needed False ,fill 0 , padding_mode cons…

大数据处理之道(预处理方法)

一&#xff1a;为什么要预处理数据&#xff1f; &#xff08;1&#xff09;现实世界的数据是肮脏的&#xff08;不完整&#xff0c;含噪声&#xff0c;不一致&#xff09; &#xff08;2&#xff09;没有高质量的数据&#xff0c;就没有高质量的挖掘结果&#xff08;高质量的决…

过程数据_数据预处理的方法

首先,我们先来搞清楚,什么叫“过程数据”?以及什么叫“结果数据”? 简单来讲,“过程数据”指的是我们可以掌握的事务和行为“结果数据”就是我们不能完全掌控的。过程数据的英文翻译 基本释义 process data 参考释义过程数据的相关资料 临近单词 过半数 过 过期作废 过气 过谦…

类别型数据的预处理方法

在机器学习过程中,我们往往需要对数据进行预处理。根据数据的取值情况,我们可以把数据总体分为两大类:类别型数据和数值型数据。 对于数值性变量,通常不需要对其进行编码处理。而如何处理类别型数据是一个难题。处理的方法有很多种,各有优缺并且各有适用的范围。 本文在收…

大数据预处理方法,来看看你知道几个

大数据蕴含巨大价值&#xff0c;引起了社会各界的高度关注。大数据的来源多种多样&#xff0c;从现实世界中采集的数据大体上都是不完整、不一致的脏数据&#xff0c;无法直接进行数据挖掘和分析&#xff0c;或分析挖掘的结果差强人意。为了提高数据分析挖掘的质量&#xff0c;…

机器学习中数据预处理的几种方法

由于实际收集到的机器学习数据集不可避免的会存在数据缺、数据集不平衡和数据集中各类数据非同一量级等情况&#xff0c;对缺失数据进行补全和对异常数据进行清洗、均衡化处理防止类别不平衡和数据标准化处理对于机器学习模型至关重要。 1 数据补全方法 有效地恢复缺失的数据是…

常见近红外/红外光谱数据预处理方法及MATLAB实现

在近红外等光谱数据分析建模过程中&#xff0c;最关键的一步除了特征选择之外就是光谱数据预处理&#xff0c;预处理的原因是光谱数据除了纯光谱&#xff08;pure spectra&#xff09;之外还包含基线漂移、噪声等信号&#xff0c;与此同时存在着因样本大小以及环境等因素带来的…

数据预处理常用方法总结

目录 一、数据清理1 处理缺失值2 噪声数据 二、数据集成1 实体识别2 冗余和相关分析3 数值冲突的检测与处理 三、数据变换1 数据规范化2 数据离散化3 概念分层 数据预处理包括多种方法&#xff0c;诸如数据清理、数据集成、数据变换等。 一、数据清理 数据清理主要是处理缺失…

数据预处理的方法有哪些

数据处理的工作时间占整个数据分析项目的70%以上&#xff0c;因此&#xff0c;数据的质量直接决定了分析模型的准确性。那么&#xff0c;数据预处理的方法是什么呢&#xff1f;例如数据清理、数据集成、数据规范、数据转换等&#xff0c;其中最常用的是数据清理和数据集成&…

数据预处理(方法总结)

数据预处理&#xff08;方法总结&#xff09; 转自-https://www.cnblogs.com/sherial/archive/2018/03/07/8522405.html 一、概述 在工程实践中&#xff0c;我们得到的数据会存在有缺失值、重复值等&#xff0c;在使用之前需要进行数据预处理。数据预处理没有标准的流程&…

机器学习算法笔记之6:数据预处理

一、概述 在工程实践中&#xff0c;我们得到的数据会存在有缺失值、重复值等&#xff0c;在使用之前需要进行数据预处理。数据预处理没有标准的流程&#xff0c;通常针对不同的任务和数据集属性的不同而不同。数据预处理的常用流程为&#xff1a;去除唯一属性、处理缺失值、属…

Python的数据分析可视化十种技能总结

常见的可视化试图列举 可视化视图可以分成4大类&#xff1a;比较、联系、构成和分布。他们的特点如下&#xff1a; 1、比较&#xff1a;比较数据之间的各类别的关系&#xff0c;或者是他们随着时间的变化趋势&#xff0c;比如折线图&#xff1b;2、联系&#xff1a;查看两个或…

python 典型变量分析

典型相关分析 1.典型相关分析的基本思想是首先在每组变量中找出变量的线性组合&#xff0c;使其具有最大相关性&#xff0c;然后再在每组变量中找出第二对线性组合&#xff0c;使其分别与第一对线性组合不相关&#xff0c;而第二对本身具有最大的相关性&#xff0c;如此继续下…

脑影像分析|数据分析——单个变量或多个变量与y的皮尔逊相关,同时返回r与p值(python)

| 图源 皮尔逊相关是计算两个变量之间线性相关关系&#xff0c;或者两个向量共线程度的常用指标&#xff0c;应返回衡量相关程度的r值&#xff0c;和相关显著程度的p值。我们熟知的工具包&#xff0c;如pandas&#xff0c;numpy和scipy等&#xff0c;只能计算单个变量x与变量y之…

SPSS处理多自变量多因变量分析以及描述平均值,在不同情况

SPSS处理工具&#xff1a;SPSS25.0 准备好数据 1.分析多自变量对某一个因变量的显著性 在分析里找到&#xff0c;General linear model,然后选择Univariate, 分别把两个自变量TIssue and Speed 输入到Fixed Factor&#xff0c;然后设置Option里的描述,如果需要其他的设置可以…

R语言实现双变量分析教程

双变量分析表示分析两个变量。 双变量分析是为了分析两个变量之间的关系&#xff0c;与单变量、多变量分析对应。主要有三种方式进行双变量分析。 散点图相关系数简单线性回归 下面使用测试数据作为示例来演示三种方法&#xff0c;供包括两个变量&#xff0c;HourStudied表示…

spss实战案例----分析多个变量与因变量之间是否存在关系,方差分析

本案例是IBM SPSS数据分析与挖掘实战案例精粹----第七章的学习记录 案例背景或目标&#xff1a;激素水平是否在对照组和实验组之间存在差异 分析方法&#xff1a;Bootstrap抽样&#xff0c;秩和检验&#xff0c;秩变换方法&#xff0c;cox回归 字段包括&#xff1a;性别&…

Python学习16 ----Seaborn多变量分析绘图

Seaborn多变量分析绘图 代码详见https://github.com/RenDong3/Python_Note 1 读取数据 2 分析绘图 parameters: x,y,hue 数据集变量 变量名data 数据集 数据集名row,col 更多分类变量进行平铺显示 变量名col_warp 每行的最高平铺数 整数estimator 在每个分类中进行矢量到标…