唐婷*
(四川職業(yè)技術(shù)學(xué)院計(jì)算機(jī)科學(xué)系,四川 遂寧 629000)
Python 語(yǔ)言誕生于20 世紀(jì)90 年代初,它是一種計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言,Python 語(yǔ)言提供高效的高級(jí)數(shù)據(jù)結(jié)構(gòu),能進(jìn)行面向?qū)ο缶幊?,可以使用C 或C++擴(kuò)展新的功能和數(shù)據(jù)類型。目前,Python已經(jīng)成為最受歡迎的程序設(shè)計(jì)語(yǔ)言之一,廣泛應(yīng)用于web 開(kāi)發(fā)、科學(xué)計(jì)算和統(tǒng)計(jì)、人工智能、軟件開(kāi)發(fā)、桌面界面開(kāi)發(fā)等多個(gè)領(lǐng)域,Python 語(yǔ)言簡(jiǎn)潔易讀,具有很強(qiáng)的可擴(kuò)展性,深受編程人員喜愛(ài),同時(shí)也成為大學(xué)程序設(shè)計(jì)課程之一。
Python 語(yǔ)言還有一項(xiàng)突出的優(yōu)勢(shì),它具有功能強(qiáng)大的標(biāo)準(zhǔn)庫(kù)和第三方庫(kù),支持Python 的第三方庫(kù)已達(dá)數(shù)以萬(wàn)計(jì),比如中文分詞庫(kù)jieba 和制作詞云庫(kù)WordCloud,它們提供了快速提取中文詞語(yǔ)和制作具有藝術(shù)感的詞云的功能。jieba 庫(kù)是一款優(yōu)秀的中文分詞第三方庫(kù),它可以精準(zhǔn)提取中文語(yǔ)句中出現(xiàn)的詞語(yǔ),通過(guò)統(tǒng)計(jì)每個(gè)詞語(yǔ)出現(xiàn)的頻率,可以獲取有價(jià)值的信息,進(jìn)行一些特定的數(shù)據(jù)分析。WordCloud 庫(kù)是一款優(yōu)秀的詞云展示第三方庫(kù),詞云主要以詞語(yǔ)為基本單位,能更加直觀和藝術(shù)的展示文本內(nèi)容,文本中出現(xiàn)頻率較高的詞語(yǔ)會(huì)顯著表現(xiàn)出來(lái),能讓人們快速有效的獲取信息。下面通過(guò)詳細(xì)介紹jieba 庫(kù)和WordCloud 庫(kù)的技術(shù)內(nèi)容,讓我們感受一下輕松制作詞云的過(guò)程。
分詞是對(duì)文本處理的基礎(chǔ)操作,中文的分詞比英文分詞要復(fù)雜得多,在Python 中可以使用第三方的jieba 庫(kù)進(jìn)行中文分詞處理。jieba 庫(kù)能夠?qū)⒁欢沃形奈谋痉指舫芍形脑~語(yǔ)序列。jieba 庫(kù)分詞原理是依靠中文詞庫(kù),利用一個(gè)中文詞庫(kù)確定漢字之間的關(guān)聯(lián)概率,漢字間概率大的組成詞組形成分詞結(jié)果。除了分詞,用戶也可以添加自定義詞組。
jieba 庫(kù)支持3 種分詞模式:(1)精確模式:把文本精切的切分開(kāi),適合文本分析,不存在冗余單詞。(2)全模式:把文本中所有可能的單詞都掃描出來(lái),速度快但是有冗余。(3)搜索引擎模式:在精確模式基礎(chǔ)上對(duì)長(zhǎng)詞進(jìn)行再次切分。精確模式和全模式都使用jieba.cut()函數(shù),通過(guò)設(shè)置參數(shù)進(jìn)行相應(yīng)模式的選擇,搜索引擎模式使用jieba.cut_for_search()函數(shù)。三種模式的常用格式如下:
(1)jieba.lcut(s)函數(shù):精確模式返回一個(gè)列表類型的分詞結(jié)果。
例如:import jieba
分詞結(jié)果:['全國(guó)', '計(jì)算機(jī)', '等級(jí)', '考試', 'Python', '科目']
(2)jieba.lcut(s,cut_all=True)函數(shù):全模式返回一個(gè)列表類型的分詞結(jié)果,有冗余。
例如:import jieba
分詞結(jié)果:['全國(guó)計(jì)算機(jī)', '等級(jí)', '考試', 'Python', '科目']
jieba 庫(kù)中文分詞實(shí)現(xiàn)從大量文本信息中提取關(guān)鍵詞的功能,找到最能代表此文本的詞并不是簡(jiǎn)單的事,關(guān)鍵詞的提取一般用到兩種算法:TF-IDF 算法和TextRank 算法。TF-IDF 算法是一種用于信息檢索與數(shù)據(jù)挖掘的常用加權(quán)技術(shù),它可以評(píng)估字詞對(duì)于一個(gè)文件集的重要程度,字詞的重要性隨著出現(xiàn)次數(shù)的多少成正比增加。TextRank 算法是一種用于文本的基于圖的排序算法,通過(guò)把文本分割成若干組成單元,構(gòu)建節(jié)點(diǎn)連接圖,用句子之間的相似度作為邊的權(quán)重,通過(guò)循環(huán)迭代計(jì)算句子的TextRank 值,最后抽取排名高的句子組合成文本摘要。
詞云是一種在互聯(lián)網(wǎng)上對(duì)信息發(fā)布的新形式,詞云圖過(guò)濾掉大量的文本信息,對(duì)文本中出現(xiàn)頻率較高的關(guān)鍵詞突出顯示,不同的關(guān)鍵詞采用不同的顏色和字體大小,通過(guò)形成關(guān)鍵詞渲染,使瀏覽者只要一眼掃過(guò)就可以領(lǐng)略文本的主旨。本文主要介紹在Python 環(huán)境下,使用第三方的WordCloud 庫(kù)技術(shù)如何輕松制作形態(tài)各異的詞云。
WordCloud 庫(kù)是優(yōu)秀的詞云展示第三方庫(kù),詞云以詞語(yǔ)為基本單位,更加直觀和藝術(shù)的展示文本。通常的操作步驟:首先把文本分詞處理,然后用空格拼接,最后再調(diào)用WordCloud 庫(kù)函數(shù)處理。WordCloud 庫(kù)函數(shù)操作步驟:.
(2)加載詞云文本,向WordCloud 對(duì)象w 中加載文本txt:w.generate(txt)
(3)輸出詞云文件,將詞云輸出為圖像文件,.png 或.jpg:w.to_file(filename)
3.1 對(duì)英文文本生成詞云:《瓦爾登湖》是一部由美國(guó)作家梭羅所著的著名散文集,它記錄了作者獨(dú)居瓦爾登湖畔時(shí)的所見(jiàn)、所聞和所思。該散文集崇尚簡(jiǎn)樸生活,熱愛(ài)大自然的風(fēng)光,內(nèi)容豐厚,語(yǔ)言生動(dòng),充滿智慧。下面節(jié)選一段《瓦爾登湖》的文本制作成詞云圖片,使用imread()函數(shù)讀取外部詞云形狀圖像文件,使形成的詞云圖片更加美觀(如圖1 所示)。
圖1《瓦爾登湖》詞云
3.2 對(duì)中文文本生成詞云:《面朝大海,春暖花開(kāi)》是海子于1989 年所寫的一首抒情詩(shī)。大海廣闊浩蕩,讓人心曠神怡,這首詩(shī)樸素明朗,語(yǔ)言清新,表達(dá)出詩(shī)人的真誠(chéng)善良,讓人感受到一幅溫暖而幸福的生活畫(huà)面。制作中文文本的詞云,首先用jieba 庫(kù)對(duì)文本進(jìn)行分詞,然后用空格將詞語(yǔ)連接在一起,再用WordCloud 庫(kù)將詞語(yǔ)文本制作成詞云圖片,使用imread()函數(shù)讀取外部詞云形狀圖像文件,使形成的詞云圖片更加美觀(如圖2 所示)。
圖2《面朝大海,春暖花開(kāi)》詞云
基于Python 的詞云生成技術(shù)代碼看上去簡(jiǎn)潔,其基本原理并不簡(jiǎn)單,需要一定的專業(yè)技術(shù)知識(shí)。首先需要設(shè)置好Python 的環(huán)境配置,安裝第三方的jieba 庫(kù)、WordCloud 庫(kù)以及imageio 庫(kù),然后根據(jù)提供的函數(shù)實(shí)現(xiàn)分詞以及生成詞云圖片,在編寫代碼中注意Python 的語(yǔ)法特征?;赑ython 生成的詞云圖片效果很好,能體現(xiàn)詞云的優(yōu)點(diǎn)和價(jià)值,讓讀者過(guò)目不忘,在互聯(lián)網(wǎng)傳播過(guò)程中具體簡(jiǎn)潔、高效的作用。隨著信息時(shí)代的不斷發(fā)展,我們每天接收的信息量越來(lái)越多,詞云可以幫助我們過(guò)濾掉大量不必要的信息,將關(guān)鍵詞呈現(xiàn)在我們眼前,不僅美觀、簡(jiǎn)潔也具有一定的藝術(shù)觀賞性。