最近python真的是風(fēng)頭無兩,朋友圈都擠滿了各種報名python零基礎(chǔ)班的分享鏈接蔫耽。佛性如我放仗,抱著心愛的可樂枸杞也無法做到不悲不喜了,毅然決定開始學(xué)python包警。
考慮到平時對時事政治關(guān)注并不多书幕,借此機(jī)會了解下這些年政府工作報告都寫了些什么也未嘗不可。那就用python來分析下揽趾,2008年至2017年這十年間,政府工作報告都寫了些什么吧苛骨!
一篱瞎、報告中的高頻詞
對于單個字的統(tǒng)計并不能給出太多有效的信息,因此我首先選擇以詞為單位進(jìn)行分析痒芝。這就涉及到了分詞俐筋,目前比較主流的中文分詞工具有中科院分詞系統(tǒng)(NLPIR)、THU Lexical Analyzer for Chinese(THULAC)严衬、ik-analyzer澄者、jieba、ansj等×坏玻考慮到分詞過程中會出現(xiàn)大量的無實質(zhì)含義的代詞赠幕、助詞等語素,添加stopwords列表過濾部分無實意的詞將有助于提高分析的效率询筏,因此我選擇了支持自定義詞典的jieba分詞工具來進(jìn)行后續(xù)的分析榕堰。
下圖的對比結(jié)果(左:原文檔;右:分詞結(jié)果)可以看出來嫌套,分詞工具的結(jié)果基本上是令人滿意的逆屡。當(dāng)然,還是存在部分專有詞匯無法識別踱讨,例如“十八屆六中全會”被識別為了“十八”和“六中全會”魏蔗。如果這種錯誤分詞存在巨大歧義的話,可以考慮添加自定義詞庫進(jìn)行逐個錄入痹筛。
分詞完成之后莺治,考慮以詞云的方式呈現(xiàn)每一年報告中的高頻詞。詞云中每一個詞的大小與其出現(xiàn)的頻次相關(guān)味混,因此詞云可以比較直觀的反映出每份報告中最常被提及的詞匯产雹。生成詞云的工具也有很多,這里使用的是wordcloud工具包翁锡。
下面我羅列了所有十份報告的詞云蔓挖。可以看到馆衔,“發(fā)展”這個詞是所有十份報告中當(dāng)之無愧的第一高頻詞瘟判。聯(lián)想到十九大報告中的“我國社會主要矛盾的變化,沒有改變我們對我國社會主義所處歷史階段的判斷角溃,我國仍處于并將長期處于社會主義初級階段的基本國情沒有變拷获,我國是世界最大發(fā)展中國家的國際地位沒有變〖跸福”嗯匆瓜,我國是世界最大發(fā)展中國家的國際地位沒有變。
二未蝌、報告中的名詞關(guān)鍵詞
首先驮吱,關(guān)鍵詞與高頻詞有什么不一樣呢?高頻詞單純只統(tǒng)計了這個詞的出現(xiàn)頻率萧吠,如果沒有添加stopwords左冬,那么最高頻的詞將會是“的”、“是”纸型、“在”之類沒有實意的詞拇砰。所以我們可以看出梅忌,一個詞出現(xiàn)的頻率并不能完全代表這個詞在這篇文章中的關(guān)鍵性。即除破,高頻詞不等于關(guān)鍵詞牧氮。
因此,我將要在下面的文章中繼續(xù)分析各個詞在這篇文章中的關(guān)鍵性(權(quán)重)皂岔。
對于關(guān)鍵詞的抽取蹋笼,分詞工具包實現(xiàn)了兩個算法:TF-IDF算法和TextRank算法。兩種算法都是無監(jiān)督學(xué)習(xí)的算法躁垛,即對文章中的各個詞進(jìn)行打分剖毯,然后輸出分值最高的詞作為關(guān)鍵詞。兩種算法的差異在于教馆,各自的打分策略不同逊谋。
TF-IDF算法基于兩個指標(biāo)(TF和IDF)的乘積進(jìn)行排序。TF為某個詞在本文檔中出現(xiàn)頻率土铺,即本文檔中某詞出現(xiàn)的次數(shù)與本文檔中詞的總數(shù)的商胶滋。IDF(Inverse Document Frequency)則是語料庫中包含某個詞的文檔數(shù)的倒數(shù)。也就是說悲敷,某個詞在本文檔中出現(xiàn)的頻率越高(即TF越大)究恤,某個詞在語料庫中被包含的文檔數(shù)越少(即IDF越大),則某個詞的TF-IDF越大后德,則這個詞在TF-IDF算法中更容易被標(biāo)記為關(guān)鍵詞部宿。
需要注意到,這里面有一個語料庫的存在瓢湃,這個外源性的語料庫將對關(guān)鍵詞抽取的結(jié)果產(chǎn)生影響理张。如果語料庫中存在大量文言文的語料,那么新文化運動之后產(chǎn)生的新詞匯的IDF將會比文言文詞匯的IDF更大绵患,即更容易被標(biāo)記為關(guān)鍵詞雾叭。反之亦然。
TextRank則是完全基于文檔本身進(jìn)行關(guān)鍵詞計算排序的算法落蝙。該算法根據(jù)詞與詞之間的語法和位置關(guān)系织狐,并通過多次迭代得到穩(wěn)定的節(jié)點權(quán)重。其最終結(jié)果與節(jié)點筏勒、節(jié)點與其他節(jié)點的關(guān)聯(lián)性以及與之關(guān)聯(lián)的節(jié)點的權(quán)重相關(guān)赚瘦。限于篇幅(其實是太麻煩)在這里就不贅述TextRank的具體計算步驟。
為了排除外源性的影響奏寨,選擇完全基于文檔本身的關(guān)鍵詞抽取方法——TextRank。
提取了十份報告中的各自排序前30的名詞關(guān)鍵詞鹰服。并對300個關(guān)鍵詞進(jìn)行初步處理病瞳,整合重復(fù)關(guān)鍵詞并刪除其中無明顯指向性的詞語揽咕。基本處理結(jié)束后套菜,得到十份報告最終的名詞關(guān)鍵詞亲善,一共45個詞,見下圖逗柴∮纪罚可以看到“發(fā)展”、“改革”和“經(jīng)濟(jì)”毫無疑問是報告中關(guān)鍵詞前三甲戏溺。
為了更好的看出十份報告的逐年趨勢渣蜗,下面將部分關(guān)鍵詞抽取出來單獨加以分析。
根據(jù)十份報告的綜合權(quán)重旷祸,選取排名前五的關(guān)鍵詞進(jìn)行單獨分析耕拷,結(jié)果如下圖⊥邢恚可以看出“發(fā)展”除了2008年的報告以外骚烧,一直是當(dāng)之無愧的第一關(guān)鍵詞。同時闰围,“建設(shè)”的權(quán)重呈現(xiàn)輕微下降的趨勢赃绊。與之相對的是,“改革”的權(quán)重呈現(xiàn)上升的趨勢羡榴。此外碧查,“經(jīng)濟(jì)”作為唯一進(jìn)入前五的行業(yè)關(guān)鍵詞也說明了經(jīng)濟(jì)在我國的重要地位。
那么炕矮,各個行業(yè)之間的對比呢么夫?摘取45個關(guān)鍵詞中涉及行業(yè)產(chǎn)業(yè)的關(guān)鍵詞進(jìn)行分析,結(jié)果見下圖肤视。我們可以看到“經(jīng)濟(jì)”的權(quán)重遠(yuǎn)高于其他幾個關(guān)鍵詞档痪。“文化”和“教育”的趨勢基本一致邢滑「“農(nóng)業(yè)”自2015年報告以來沒有進(jìn)入當(dāng)年報告的前30。近年來困后,“安全”開始成為關(guān)注的重點乐纸。
此外還有一些有趣的發(fā)現(xiàn),例如下圖摇予。我們可以看到“農(nóng)村”的權(quán)重在十年間呈現(xiàn)下降的趨勢汽绢。同時,“企業(yè)”的權(quán)重自2014年開始呈現(xiàn)上升的趨勢侧戴。
三宁昭、報告中的地理名詞
分詞工具在抽取關(guān)鍵詞的同時還實現(xiàn)了詞性篩選的功能跌宛。那么,哪些地方在報告中權(quán)重更高呢积仗?用詞性(地理相關(guān)的詞性)來篩選分詞之后疆拘,再次抽取十份報告的前30個關(guān)鍵詞。經(jīng)過進(jìn)一步的整理篩查之后得到了68個包含地名寂曹、地理術(shù)語和地理相關(guān)詞的關(guān)鍵詞列表哎迄,其分布如下圖所示÷≡玻可以看出漱挚,“香港”和“澳門”作為特別行政區(qū)在報告中的權(quán)重較高。此外匾灶,“上豪饫茫”、“上海浦東新區(qū)”和“濱海新區(qū)”的權(quán)重也很高阶女。讓我比較意外的是颊糜,“海洋”、“陸和翰龋”和“亞歐大陸橋”等關(guān)鍵詞排序也非吵挠悖靠前,細(xì)看發(fā)現(xiàn)這主要體現(xiàn)在2015年的報告中憔杨。
在這些涉及地理名詞的關(guān)鍵詞中還有一些有意思的發(fā)現(xiàn)鸟赫,如下圖。2014年和2015年的報告中“海洋”的權(quán)重非常高消别,2013年中國劃定了東海防空識別區(qū)抛蚤,開始重視海洋主權(quán)。自2015年的報告開始寻狂,“大國”的權(quán)重開始上升岁经,與之對應(yīng)的是中國越來越積極的參與到全球治理中。
好了蛇券,啰啰嗦嗦寫了這么多缀壤,關(guān)于這十份報告的分析就寫到這里了。最后我想和大家分享點寫這篇文章的感受:這篇文章最不重要的就是結(jié)論纠亚,最有意思的是尋找信息量的過程塘慕。
希望這篇文章可以拋磚引玉,收到大家的意見和建議蒂胞。同時图呢,也為大家學(xué)習(xí)python的過程中增加一點樂趣。
源:本文涉及到的十份政府工作報告(2008年 - 2017年)均來自網(wǎng)站http://www.gov.cn/guowuyuan/baogao.htm