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