上一篇中我们介绍了自动生成词云工具(GUI)中数据清洗界面的实现过程(详解词云自动生成工具的数据清洗界面制作过程(连载四)),了解掌握了Grid、Pack混合布局的方法。本篇我们将讨论Python自动生成词云工具数据清洗功能的实现。
不废话,我们开始吧
准备好了吗,我们开始了
目标
通过梳理整个清理过程,我们实现上一篇中未实现的WordCloudGUI类的部分方法。
分析
开始之前,我们还是老思路,先分析一下。
先来分析一下
在第一页面中,得g到的是整个文本的内容。我们知道,在数据分析过程中(本文特指词云生成),原始文本内肯gong'nen定会存在大量干扰信息。举个例子,文本中的标点符号、助词、无关的数字等等这些内容,如果显示在词云中,是毫无意义的。这时候,我们就需要将这些干扰因素排除掉,只留下我们感兴趣的内容(即与我们要分析的主题相关的内容),这也是我们制作词云自动生成工具的数据清洗页面要实现的功能。
如何实现这一功能?我们的思路是:首先创建一个排除列表的索引(delwords = []),delwords中纪录Checkbutton的选中状态(选中时为1,未选中为0),然后当点击各种选择按钮时对Checkbutton的状态进行纪录。我们知道,列表可以记录重复元素,但是,本例中对于重复元素,我们不需要进行重复的删除操作,因此,我们再定义一个实际需要删除的字符集合(tdelwords = set()),我们可以将这两个属性的定义记录到类的初始化过程中。
对于Checkbutton控件的内容添加到tdelwords中,我们根据delwords列表中提供的状态信息进行添加,这点很容易理解。但是对于自定义字符如何添加?我们通过获取EntryField的内容,然后将该内容添加到tdelwords中,同时,在下方显示待清洗文本内容。
好了,容器有了,我们现在需要做的就是如何将待清洗的字符放入到容器中(其实,delwords相当于一个筛选器,而tdelwords才是真正的容器)。这点很好实现,请看下面的代码,这里不再赘述。
我们梳理完了这个过程,很好理解,将每一个按钮的响应函数实现,这个过程就一目了然了。下面,带大家编码实现这一过程。
编码开始了
编码
我们主要是实现下面几个函数的功能。
先来看一下比较简单的页面控制功能,函数实现如下图所示。
页面控制功能实现
然后来实现鼠标单击按钮选择清洗相应的内容,代码分别如下图所示。
选择清洗内容按钮
上述选择清洗内容按钮事件响应函数的实现方式比较类似,这里不再赘述,读者可以建立一个函数,通过传入选择类型的参数的方式进行选择,大家自行实现。全选所有字符的实现方法如下图代码所示。
全选所有的Checkbutton控件内容
这里只是对选择进行了实现,感兴趣的朋友们可以参照进行反选功能的实现。剩下的三个函数分别实现了添加自定义字符、应用删除、撤销删除的功能,具体代码如下图所示。
添加自定义字符、应用及撤销删除功能
好了,今天的实现就到这里,通过前几篇的连载内容,我们分别实现了总体界面搭建拥有这件神器,菜鸟也可以成为数据分析大师、获取文本内容拥有这件神器,菜鸟也可以成为数据分析大师(连载二)、清洗文本的界面拥有这件神器,菜鸟也可以成为数据分析大师(连载三)及相应的功能(本篇)。下一步我们对词云设置界面和词云预览界面分别进行实现,感兴趣的朋友们欢迎留言关注,我将持续进行更新。
转载请注明出处,百家号:Python高手养成