基于Python編寫詞云軟件并顯示分詞結(jié)果
顯示分詞結(jié)果
目前來說雖然實(shí)現(xiàn)了詞云輸出的功能,但詞云創(chuàng)作的過程卻被隱藏起來了,為了更加便于操作,需要一個(gè)顯示分詞結(jié)果的組件,這一點(diǎn)Text就完全可以勝任,故而在initWidgets
中添加
def initWidgets(self): # 前面不用動(dòng) frm = ttk.LabelFrame(self, text="分詞結(jié)果") 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
用于添加滾動(dòng)條,內(nèi)容如下
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,所以需要設(shè)置一個(gè)函數(shù),用于更改txtSplit中的值
def setSplit(self, txt): self.txtSplit.delete(1.0, "end") self.txtSplit.insert("end", txt) self.txtSplit.see("end")
然后,添加分詞按鈕,修改initPara函數(shù)
def initPara(self, frmPara): # 前面不用改動(dòng) frm = ttk.Frame(frmPara) frm.pack(side=tk.TOP, fill=tk.X) ttk.Button(frm, text="分詞預(yù)覽", 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函數(shù)改為
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))
效果如下
詞云輸出方法
相應(yīng)地,輸出詞云的方法也要更改,原來是通過self.words來生成詞云,現(xiàn)在則要經(jīng)過self.txtSplit
def genWordCloud(self): # 前面不用改 cloud = WordCloud(**dct) txt = self.txtSplit.get(1.0, "end") txt = " ".join(txt.split("\n")) cloud.generate(txt) # 后面也不用改
這樣就可以生成詞云了,接下來要實(shí)現(xiàn)保存分詞結(jié)果的功能。
def saveWords(self): path = asksaveasfilename() with open(path) as f: f.write(self.txtSplit.get(1.0, 'end'))
到此這篇關(guān)于基于Python編寫詞云軟件并顯示分詞結(jié)果的文章就介紹到這了,更多相關(guān)Python詞云內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python GUI庫圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法
這篇文章主要介紹了python GUI庫圖形界面開發(fā)之PyQt5瀏覽器控件QWebEngineView詳細(xì)使用方法,需要的朋友可以參考下2020-02-02Python內(nèi)置函數(shù)input()示例詳解
input()函數(shù)是Python中用于獲取用戶輸入的一個(gè)簡單而強(qiáng)大的工具,它在創(chuàng)建需要用戶交互的程序時(shí)非常有用,這篇文章主要介紹了Python內(nèi)置函數(shù)input()詳解,需要的朋友可以參考下2024-04-04使用keras實(shí)現(xiàn)densenet和Xception的模型融合
這篇文章主要介紹了使用keras實(shí)現(xiàn)densenet和Xception的模型融合,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05Python增強(qiáng)賦值和共享引用注意事項(xiàng)小結(jié)
這篇文章主要給大家介紹了關(guān)于Python增強(qiáng)賦值和共享引用注意事項(xiàng)的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用Python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2019-05-05