基于Python自帶的GUI工具包Tkinter來實(shí)現(xiàn)窗口視窗設(shè)計(jì)。選用Python語言的理由在于其語法簡(jiǎn)單,跨平臺(tái)、內(nèi)嵌大量模塊,支持眾多第三方包,大大降低了編程的難度,同時(shí)Python語言最為接近人類語言,近年來受到越來越多的人員,尤其是非計(jì)算機(jī)專業(yè)但有編程需求的人士,特別是文科研究者的青睞。
該應(yīng)用的目的是讓學(xué)習(xí)者在一個(gè)應(yīng)用(不需要頻繁切換應(yīng)用程序)里完成一鍵查詢單詞搭配,進(jìn)而建立不打擾學(xué)習(xí)者寫作的環(huán)境,因此該應(yīng)用包括兩個(gè)區(qū)域:文字編輯區(qū)和搭配查詢結(jié)果顯示區(qū),如圖1所示。
具體用戶操作路徑為用戶在文字編輯區(qū)輸入寫作內(nèi)容,當(dāng)需要查找某單詞的搭配時(shí),用戶只需在輸入完該單詞后,按下觸發(fā)鍵(本應(yīng)用定義為shift鍵),該應(yīng)用就會(huì)去在線詞匯搭配網(wǎng)站,獲取該單詞的相關(guān)HTML信息,然后通過正則表達(dá)式截取只與搭配相關(guān)的信息,并進(jìn)行頁面呈現(xiàn)調(diào)整,最后在該應(yīng)用的查詢結(jié)果顯示區(qū)呈現(xiàn)。例如,在圖1中,用戶在文本區(qū)進(jìn)行寫作練習(xí),想要知道comment的搭配,只需在輸入comment之后,按下鍵盤shift鍵,之后右側(cè)的查詢結(jié)果框就會(huì)顯示來自在線搭配網(wǎng)站上關(guān)于comment各種搭配信息。
代碼實(shí)現(xiàn)路徑:
1)獲取網(wǎng)頁信息
使用Python內(nèi)置庫Urllib相關(guān)模塊,從目標(biāo)網(wǎng)站(https://www.freecollocation.com)獲取檢索詞的網(wǎng)頁。如果沒有找到檢索詞的搭配,網(wǎng)頁顯示“Cannotfind檢索詞inthecollocationdictionary”,則返回1,再做后續(xù)處理。如果找到檢索詞,則保存該網(wǎng)頁信息。
2)選取相關(guān)信息
通過分析網(wǎng)頁特征,可以看出和搭配相關(guān)的信息,都儲(chǔ)存在多個(gè)
標(biāo)簽里面。搭配詞的詞性放在標(biāo)簽里,搭配詞放在標(biāo)簽里,例句放在標(biāo)簽里。先用BeautifulSoup對(duì)該網(wǎng)頁進(jìn)行整理,然后使用標(biāo)簽提取相關(guān)內(nèi)容,并且存到字符串中,以便下一步呈現(xiàn)。
3)Tkinter窗口試圖設(shè)計(jì)
為了方便用戶寫作和查看搭配詞互不干擾或在寫作時(shí)不用切換屏幕查看搭配詞,窗口設(shè)計(jì)為兩個(gè)滾動(dòng)文本框(ScrolledText),左側(cè)的為編輯區(qū)(EditPad),右側(cè)為搭配結(jié)果顯示區(qū)(Collocates)??紤]到用戶看到兩個(gè)文本框,不知在哪個(gè)框里輸入,除了給出2個(gè)標(biāo)簽提示不同的區(qū)域外,還需把搭配結(jié)果顯示區(qū)屬性設(shè)置為不可編輯,避免用戶誤操作。下方設(shè)計(jì)保存(Save)和退出(Quit)兩個(gè)按鈕,功能分別為保存用戶輸入的數(shù)據(jù)和退出該應(yīng)用。
4)一鍵綁定
以往文字編輯應(yīng)用中,如果想要查找某個(gè)單詞的相關(guān)信息,需要選中該單詞,然后單擊右鍵,選擇相關(guān)的選項(xiàng),過程較為煩瑣。一鍵綁定是該應(yīng)用的創(chuàng)新之處,是指當(dāng)用戶在編輯區(qū)輸入文本的時(shí)候,如果想檢索某單詞的同義詞時(shí),只需要在輸入該單詞之后,再按下shift鍵,即可執(zhí)行相關(guān)檢索功能。這樣一來,省去了大量的操作時(shí)間,讓用戶可以更快速地獲得檢索結(jié)果,獲得更為及時(shí)的搭配詞反饋。
實(shí)現(xiàn)的基本原理是把用戶所有的輸入信息存儲(chǔ)為一個(gè)字符串,然后再將該字符串切分為若干個(gè)單詞,再取最后一個(gè)單詞,作為檢索詞,去在線詞匯搭配網(wǎng)站獲取該單詞的網(wǎng)頁相關(guān)信息,然后經(jīng)過一系列的網(wǎng)頁處理,最后在該應(yīng)用的檢索結(jié)果顯示區(qū)呈現(xiàn)。重點(diǎn)是通過ScrolledText的bind方法,將shift鍵和上面陳述的實(shí)現(xiàn)基本原理進(jìn)行綁定,這樣才可以實(shí)現(xiàn)用戶只需按下shift鍵,該應(yīng)用自動(dòng)執(zhí)行上述相關(guān)代碼。
以上內(nèi)容為大家介紹了Python的英語搭配助手應(yīng)用開發(fā)研究,希望對(duì)大家有所幫助,如果想要了解更多Python相關(guān)知識(shí),請(qǐng)關(guān)注IT培訓(xùn)機(jī)構(gòu):千鋒教育。http://www.parentadvocate.org/