用python讀詩詞,人生自有詩意
春天開始,我們讀詩。從「蒹葭蒼蒼」讀到「庚寅以降」,從「採菊東籬」讀到「明月天山」,從「坐看雲起」讀到「安得廣廈」。一路讀過,一路走來。人生自有詩意,生活仍有詩和遠方。
04-03
2018
最近《中國詩詞大會第三季》終於開播了,所謂「詩者,天地之心也」,我們都渴望詩意的你我,詩意的人生。作為詩詞大會的忠實觀眾,我決定用數學的方法,感受一下文學的魅力。
本文主要分以下三部分:
1 爬取古詩文網上的詩詞各1000首。
2 寫一個可以作飛花令的小程序。
3 統計詞頻,製作詞雲。
讀書不覺已春深,一寸光陰一寸金
?首先爬取古詩文網上的1000首詩和1000首詞。爬取的內容有詩詞的標題、作者、朝代、原文和帶有的標籤。
https://www.gushiwen.org/shiwen/
?分別爬取詩和詞兩部分的各前100頁,每頁10首,共2000首詩詞,實際上古詩文網上收錄的詩詞曲文有四五萬首之多。
?
?把爬取的詩詞直接存儲在MongoDB資料庫中,程序的運行結果如下。
??
在古詩文網上,可以看到網友點贊數量最多的前五首詞是:
1.《水調歌頭·明月幾時有》 蘇軾
但願人長久,千里共嬋娟。
2.《沁園春·雪》 毛澤東
北國風光,千里冰封,萬里雪飄。
3.《滿江紅·寫懷》 岳飛
莫等閑,白了少年頭,空悲切。
4.《念奴嬌·赤壁懷古》 蘇軾
大江東去浪淘盡,千古風流人物。
5.《卜運算元·詠梅》 陸遊
零落成泥碾作塵,只有香如故。
至此已經爬取了2000首詩詞,下面可以把這些詩詞當詞庫,做一個飛花令小遊戲。
不到長城非好漢,屈指行程二萬
?看過中國詩詞大會的朋友都知道,節目中飛花令這一環節很是刺激和精彩。於是寫一個作飛花令的小程序,搜索1000首詞中,含有「雨」字的詞句。
?運行結果顯示,在1000首詞中,有648句中帶有「雨」字。一蓑煙雨、斜風細雨、空山新雨、春潮帶雨,雨也確實是古詩詞中很經常出現的意象。
在中國古詩詞中,既有一份「空山新雨後」的清新,也有一份「卻話巴山夜雨時」的深情;既有一份「東邊日出西邊雨」的哲思,也有一份「已是黃昏獨自愁,更著風和雨」的惆悵。當然我們更希望,詩詞像「春夜喜雨」一樣滋潤我們的心靈,春風化雨,潤物無聲。
讀過了雨,我們再看看詩詞中還有哪些出現頻率比較高的意象。
雨橫風狂三月暮,門掩黃昏,無計留春住
?對詩詞作詞頻統計,雖然python有自帶的詞頻統計工具,但是古詩詞和現代漢語不同,一字即一詞,單字詞占古漢語辭彙統計信息的80%以上,可謂微言大義,字字千鈞。
?我們以1000首詩為例,對詩句進行「逐字切分」,統計出現的高頻辭彙,同時去掉「之、乎、者、也」等一些虛詞和語氣詞。
?運行結果顯示了詩中出現頻率最高的100個字,在1000首詩中有3934個不同的字,出現最多的是「人」字,果然秉承傳統文化中「以人為本」的思想。
?詞雲中排名前十的字依次是:人、一、花、日、風、山、月、我、天、春。
春
花、風、山、月、春等都是詠物抒懷或者寫景詩中經常出現的意象。比如說一個「春」字,在古詩詞中就有多種表達:
初春、新春,讚美自然新的生命力。「最是一年春好處,絕勝煙柳滿皇都」,「等閑識得東風面,萬紫千紅總是春」。
惜春、傷春,暗喻春光雖美卻易逝,感嘆人生韶華易逝或國運不濟。「國破山河在,城春草木深」,「問君能有幾多愁,恰似一江春水像東流」。
送別、相思,「春風又綠江南岸,明月何時照我還」,「紅豆生南國,春來發幾枝?」。
到這裡所有的任務都已經完成啦!但是用python讀詩詞,不僅僅只有這些,能了解和學習到的還有很多很多。
寫在後面的話:
生活不止眼前的苟且,還有詩和遠方的田野。遠方很遠,詩卻很近,詩詞是我們心底最親近也最溫暖的那份記憶。詩詞和數學、計算機不同的是,我們接近他、了解他,不是因為被動的求解、求知,不是追求知識、學問,而是因為被他吸引、被他感動、被他召喚。在雲端里愛詩,在泥土裡生活,在歲月里一直洒脫!
參考:
1. 51CTO博客 書廉
http://blog.51cto.com/8456082/2052891
2. CSDN博客 Elin_24
3. 微信公眾號 「運營喵是怎樣煉成的」
蘇格蘭折耳喵
4. 書目 《中國詩詞大會 第二季》
《中國詩詞大會》欄目組編著
※一望無際,沒有轉折
※iOS 11.4 Beta 1發布,3大功能回歸,2小改變!
TAG:全球大搜羅 |