首页 > 编程知识 正文

文本的处理方式有哪些,数据挖掘的基本过程及步骤

时间:2023-05-06 10:00:15 阅读:135395 作者:2613

最近在进行关于深度学习的文本感情分类的项目。 从数据获取到清洗、文本书写都有准备。 文本预处理是NLP中非常重要的过程,据说数据的优质与否决定着神经网络的训练效果和后续对神经网络的参与,本文分享了一些基本的文本预处理方法。

文章目录数据阚览一、数据整合及体量观测二、文本数据分词三、语云四、句子长度统计汇总

数据浏览是项目中使用的情感分类数据进行五类的情感分类,由于数据量大,本文只选取其中的一小部分进行预处理,数据集合大致如下。

另一方面,数据合并和海量观测这一部分,大多是将数据的读取和各标签数据的集合合并,并合并各标签

importmatplotlib.pyplotaspltimportpandasaspdplt.rcparams [ ' font.sans-serif ' ]=[ ' simhei ' ] # 负号one=pd.read_csv (感情-1.csv )、encoding='gbk '、header=None,) two=pd.read_csv )用于正常显示感情(five=pd.read_csv (情感-5.csv )、encoding='gbk )、header=None,) #出图并进行各数据量的观测的def chart ) : len _ len jintext.items(3360PLT.text ) I、j、j、 size=15 ) plt.show ) #合并数据文件,将五个文件合并为一个文件,后续分词和单词向量训练(def to_data ) ) 33336 five ) data=PD.concat

二、文本数据分词对下一个存储的文本进行分词操作。 我们选择jieba分词。 这个分词有三种模式。

精确模式(jieba.cut ) )精确分离文本,不存在冗余单词

所有模式(jieba.lcut ) )扫描文本中所有可能的单词,有部分冗长的单词

搜索引擎模式(jieba.lcut_for_search () ) ) ) ) ) ) ) )的搜索引擎模式) ) ) ) )。

importjiebaimportpandasaspddefcut _ word (: data=PD.read _ CSV (data.CSV ),header=None, )0) #创建新文件以创建分词encoding=' utf-8 ' (asfp : fori in data : FP.write (str ('.join (Jie ba.lcut (I ) )

由于应用于文章的情感分析,没有对分词进行停止词,也没有进行删除符号串的操作,所以在情感分析中一些停止词的原因往往具有不同的情感。

三、词云对分词文本进行词云统计,获得该词汇的词频特性。 在单词云的创建中,我们需要针对用于创建单词云的词汇禁用单词操作。 无效化的单词往往在一篇文章中出现得最多,如果不去除我们生成的单词云,就很难判断词汇的词频特性。

importnumpyasnpimportwordcloudfrompilimportimageimportmatplotlib.pyplotaspltdefcloud (3360 text=' cut _ word.txt ' witht )

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 pltimport pandas as pdimport 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] += 1 elif len(i) < 10: data_list[10] += 1 elif len(i) < 15: data_list[15] += 1 elif len(i) < 20: data_list[20] += 1 elif len(i) < 25: data_list[25] += 1 elif len(i) < 30: data_list[30] += 1 elif len(i) < 35: data_list[35] += 1 elif len(i) < 40: data_list[40] += 1 elif len(i) < 45: data_list[45] += 1 elif len(i) < 50: data_list[50] += 1 elif len(i) < 55: data_list[55] += 1 elif len(i) < 60: data_list[60] += 1 elif len(i) < 65: data_list[65] += 1 elif len(i) < 70: data_list[70] += 1 elif len(i) < 75: data_list[75] += 1 elif 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()


总结

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

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。