基于Python编写词云软件并显示分词结果

 更新时间:2023年10月20日 09:02:01   作者:微小冷  
这篇文章主要为大家详细介绍了如何基于Python编写一个简单的词云制作软件并显示分词结果,文中的示例代码讲解详细,具有一定的学习价值,感兴趣的小伙伴可以了解一下

参考:Python打造一个词云软件

显示分词结果

目前来说虽然实现了词云输出的功能,但词云创作的过程却被隐藏起来了,为了更加便于操作,需要一个显示分词结果的组件,这一点Text就完全可以胜任,故而在initWidgets中添加

def initWidgets(self):
    # 前面不用动
    frm = ttk.LabelFrame(self, text="分词结果")
    frm.pack(fill=tk.BOTH, expand=True)
    self.txtSplit = tk.Text(frm)
    self.txtSplit.pack(side=tk.LEFT, fill=tk.BOTH, padx=5, pady=5, expand=True)
    self.addScroll(frm, self.txtSplit)

其中self.addScroll用于添加滚动条,内容如下

def addScroll(self, frm, txt):
    scroll = ttk.Scrollbar(frm)
    scroll.pack(side=tk.RIGHT,fill=tk.Y)
    txt.config(yscrollcommand=scroll.set)
    scroll.config(command=txt.yview)

由于text组件不能绑定StringVar,所以需要设置一个函数,用于更改txtSplit中的值

def setSplit(self, txt):
    self.txtSplit.delete(1.0, "end")
    self.txtSplit.insert("end", txt)
    self.txtSplit.see("end")

然后,添加分词按钮,修改initPara函数

def initPara(self, frmPara):
    # 前面不用改动            
    frm = ttk.Frame(frmPara)
    frm.pack(side=tk.TOP, fill=tk.X)
    ttk.Button(frm, text="分词预览", 
        command=self.splitWords).pack(side=tk.LEFT)
    ttk.Button(frm, text="分词保存", 
        command=self.saveWords).pack(side=tk.LEFT)
    ttk.Button(frm, text="输出词云", 
        command=self.genWordCloud).pack(side=tk.LEFT)

并将splitWords函数改为

def splitWords(self):
    p = self.paths["输入路径"].get()
    with open(p, encoding='utf8') as f:
        text = f.read()
    words = jieba.lcut(text)
    self.words = [w for w in words if len(w)>1] # 取出长度大于1的词
    self.setSplit("\n".join(self.words))

效果如下

词云输出方法

相应地,输出词云的方法也要更改,原来是通过self.words来生成词云,现在则要经过self.txtSplit

def genWordCloud(self):
    # 前面不用改
    cloud = WordCloud(**dct)
    txt = self.txtSplit.get(1.0, "end")
    txt = " ".join(txt.split("\n"))
    cloud.generate(txt)
    # 后面也不用改

这样就可以生成词云了,接下来要实现保存分词结果的功能。

def saveWords(self):
    path = asksaveasfilename()
    with open(path) as f:
        f.write(self.txtSplit.get(1.0, 'end'))

到此这篇关于基于Python编写词云软件并显示分词结果的文章就介绍到这了,更多相关Python词云内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法

    python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法

    这篇文章主要介绍了python GUI库图形界面开发之PyQt5浏览器控件QWebEngineView详细使用方法,需要的朋友可以参考下
    2020-02-02
  • 深入解析Python中的集合类型操作符

    深入解析Python中的集合类型操作符

    这篇文章主要介绍了深入解析Python中的集合类型操作符,是Python入门学习中的基础知识,需要的朋友可以参考下
    2015-08-08
  • Python内置函数input()示例详解

    Python内置函数input()示例详解

    input()函数是Python中用于获取用户输入的一个简单而强大的工具,它在创建需要用户交互的程序时非常有用,这篇文章主要介绍了Python内置函数input()详解,需要的朋友可以参考下
    2024-04-04
  • 强悍的Python读取大文件的解决方案

    强悍的Python读取大文件的解决方案

    今天小编就为大家分享一篇关于强悍的Python读取大文件的解决方案,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • django最快程序开发流程详解

    django最快程序开发流程详解

    这篇文章主要介绍了django最快程序开发流程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 使用keras实现densenet和Xception的模型融合

    使用keras实现densenet和Xception的模型融合

    这篇文章主要介绍了使用keras实现densenet和Xception的模型融合,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 使用Python破解RAR文件密码的代码实例

    使用Python破解RAR文件密码的代码实例

    这篇文章主要介绍了使用Python破解RAR文件密码的代码实例,rar 压缩文件资源又不少是被加密的,密码通常也比较简单,我们可以通过暴力破解的方式来获取,通常耗时也比较小,需要的朋友可以参考下
    2023-11-11
  • Python之日期和时间包datetime的使用

    Python之日期和时间包datetime的使用

    这篇文章主要介绍了Python之日期和时间包datetime的使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-06-06
  • Python增强赋值和共享引用注意事项小结

    Python增强赋值和共享引用注意事项小结

    这篇文章主要给大家介绍了关于Python增强赋值和共享引用注意事项的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • python匿名函数的使用方法解析

    python匿名函数的使用方法解析

    这篇文章主要介绍了python匿名函数的使用方法解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-10-10

最新评论