数据分析处理之词频统计

摘要:
本次项目主要是对英文文献进行词频统计,利用给定的数据集中已分好的初级、中级、高级三个等级,对英文文献中的单词进行分级处理,并得到各个等级所占比重,画出统计图(饼图)。此项目用到python的模块有:tkinter(用来搭建词频统计的前台界面)、pandas、numpy、operator、matplotlib。第一章主要介绍数据预处理,第二章对功能进行介绍,第三章实现前台界面与功能实现。

一、数据处理

1.导入xlsx数据集
在这里插入图片描述
导入后利用head初步查看数据集情况
在这里插入图片描述
根据显示结果可以看出,数据集中有大量的NaN空值出现,两个单词挤在同一个单元格中的情况,单词前后还有大量的空格等问题,单词无法全部正常读入,这样都会影响后面词频统计和计算各个等级占比,所以下面要对数据进行清洗。
2.查看数据类型
在这里插入图片描述
3.多列变为一列
首先要把DataFrame类型转化为Array,然后运用Array中的reshape方法把多列变为一列。
在这里插入图片描述
在这里插入图片描述
4.去除含有NaN的行
去除NaN需要用到dropna方法,但是dropna方法针对DataFrame类型,所以首先需要把array类型转为DataFrame。
在这里插入图片描述
在这里插入图片描述
5.定义列名
在这里插入图片描述
6.去除特殊符号
单词中含有空格、特殊字符等一些特殊符号,会影响到计算结果。所以我们利用Strip方法对primary数据集进行操作
去空格
在这里插入图片描述
去数学符号
在这里插入图片描述
7.分裂数据
单词有多个单词在一个单元格的情况。要对其进行分裂处理,word book1 中可以看到两个单词中间是\n,所以我们用\n来作为标志,来进行分裂。
在这里插入图片描述

可以看出单词已从第一列中分离出来,并多出两列进行存放分裂出来的单词,下面把分裂出的单词也都放在第一列。

在这里插入图片描述

再次去除数据集中的NaN,得到处理完成的数据集为:primary。
在这里插入图片描述
根据处理word book1 的方法,同样处理word book2、word book3,处理完成后的命名分别为middle、senior。

二、功能实现

需要实现三个功能,一个是词频统计,一个是各个等级占比统计,还有统计图的绘制。我选取了一篇英文演讲稿。

1.词频统计

在这里插入图片描述
首先把文章中所有的单词转换为小写,然后利用字典遍历文章中所有的单词,计算每一个单词所出现的次数,为了能够更清楚直观的显示,修改词频格式。
结果图:
在这里插入图片描述

2.词汇等级统计

此功能为了实现统计文章中的单词都在初、中、高、其他词汇中所占比重。也可以看出文章的难以程度,我们利用For循环遍历整个文章,其中如果单词在数据集primary中则我们给定计数器j加1,如果在数据集middle则给计数器k加1,如果在数据集senior给计数器m加1,剩下的单词则为其他词汇的计数器W所接受,g为总单词数的计数器。最后输出各个计数器数值与总数的比例。代码如下:
在这里插入图片描述
结果图:

在这里插入图片描述

3.绘制统计图

根据上面词频统计所得到的各个等级的单词数,可以进行绘制统计图。利用matplotlib.pyplot中的pie进行绘制饼图,可以更好的体现各个等级占比数。代码如下:
在这里插入图片描述
结果图:

在这里插入图片描述

三、前台界面设计与功能实现

Python中前台界面设计需要利用tkinter模块来实现。
在这里插入图片描述
首先创建窗口并定义名字和大小。界面设计代码如下:

在这里插入图片描述

界面展示:
在这里插入图片描述

Entry为输入英文文章框,与词频统计button紧密相连,点击“词频统计”则触发onclick方法,onclick方法为封装好的词频统计功能。其中统计的文章为用户在Entry中输入的英文文章,利用get方法得到输入框内容,来进行统计。统计结果利用insert方法输出到下面的Text文本框中。
实现代码为:

在这里插入图片描述

词频统计结果图:
在这里插入图片描述

点击“统计每个级别所占比”按钮,运用Buttoon 中的command调用封装好的word_frequency方法,用来计算占比,和绘制统计图。计算的占比显示在下面的Text文本框中。实现代码为:

在这里插入图片描述

结果图:

在这里插入图片描述

点击“画出统计图”则弹出另一个界面显示所绘制得饼图。界面封装函数代码为:
在这里插入图片描述

利用PhotoImage提取打印出的饼图,显示在Label中,并且利用TOPLEVEL重新开启一个新的窗口中显示。得到如图下面得结果。

在这里插入图片描述

结论
第二章中我们是给定一个英文文章,然后给定词频统计、各个等级占比、绘制统计图,第三章中利用图形界面我们把这项工作变得智能化。可以输入不同得文章进行词频统计、各个等级占比、绘制统计图。可以说这是个小型得软件程序。通过此次实验中遇到得问题我看到了数据预处理的重要性,它可以直接关系到后面功能的准确度。根据自己不断的优化和清洗数据,使得现在得程序已经基本稳定,数值基本准确。以前没有接触到Tkinter,通过这次学习也对它有了进一步得了解,下一次应该会找一个更大得数据集来对软件进行优化。

  • 8
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值