Member-only story
透過Word Cloud「文字雲」分析財政預算案
「文字雲」有助我們做一些探索式的研究,用處在於可以將文本的一些宏觀思想甚至文風反映出來,有時就連作者本身也未必察覺得出
(疑似偽技術悶文出沒,慎入)
財政預算案上星期三公布,相信沒有太多人會細讀洋洋兩萬多字、宣讀了一個多小時的預算案文本。近年來半路出家學習了一點點Python程式語言編寫,就借用當中一些工具,對最新的預算案做一些文章分析。
咳咳,待我將頭盔先帶上:程式編寫我是幼稚園級,教學文不懂寫也不敢寫,這篇只是就着運算出來的結果做點分析和觀察,而有些政策觀點可能超出我這個茫茫人海中的銀號小職員能力所及,望有識之士指正。
用「文字雲」(word cloud)分析文稿
文章分析或是文字探勘(text mining)是近年大數據浪潮下廣受注目和歡迎的分析方法,博大精深,主要是透過電腦程式工具將大量文稿量化(quantify)再做統計分析,而將其運算結果圖像化(visualize)亦是一門學問。要做到這個目的,較為簡單直接的工具就是「文字雲」(word cloud)。
其實大家「文字雲」在理實生活中應該多多少少也接觸過,其製作過程十分直觀,大致上就是將整編文稿內的字詞出現頻率做個統計,統計完之後就按出現頻率高低,將字詞轉換成不同大小(常用詞的字體就比較大,不常用的就比較細),然後放在一起變成一團「文字雲」。
準備分析的過程
我用的是簡單易學的Python語言,當中有大量現成工具可令我們不用萬丈高樓從地起,輕鬆地踏在前人的腳步達到我們的目的。事實上,利用程式生成「文字雲」不難,難就難在事前要花多一點時間去處理資料,為方便大家理解分析結果,我也必須簡介一下做法。
簡單來說,步䠫如下:
- 首先要下載預算案中文文稿,抽取正文,轉換成純文字檔案。
- 由於文稿是中文,中文的分詞比英文更為複雜,例如「香港人勤奮靈活」應該被劃分成「香港人」、「勸奮」、「靈活」幾個詞語來進行,而不是「香」、「港」、「人」、「勤」、「奮」、「靈」、「活」七字。因此,亦要額外用到中文分詞工具,我用的是jieba分詞工具。
- 在Python導入了預算案文本,整份預算案有大約2萬8千字(難怪波叔讀了近兩小時)。
- 先用jieba分詞,然後再統計一下詞頻,會發覺「老是常出現」的多是標點符號以及「的、和、為、我們、我」等對分析意義不大的字,所以要額外用「停用詞」(stop words)詞庫去將這些大量垃圾資訊剔走(在很多朋友眼中,或者要整份預算案剔走),而一些標準的中文「停用詞」詞庫可以容易在網上找到。