Python解析海子诗歌
三年前的夏天,我从茶卡盐湖开着租来的车一路向西,驶向德令哈。那是一个夏日的夜晚,公路两旁都是牧场。高速上几乎没有别的车辆,只有数不清的蚊虫追逐着我们的车灯。
之所以特地奔赴这座小城停留一晚,自然是因为海子在德令哈写的那首诗 — 《1988.6.8~10日记》。
姐姐,今夜我在德令哈,夜色笼罩
姐姐,我今夜只有戈壁
草原尽头我两手空空
悲痛时握不住一颗泪滴
姐姐,今夜我在德令哈
这是雨水中一座荒凉的城
除了那些路过的和居住的
德令哈……今夜
这是唯一的,最后的,抒情。
这是唯一的,最后的,草原。
第二天的早晨,德令哈下着小雨。我们在这座小城逛一逛,四周的戈壁和草原还在,只不过它不再是“雨水中荒凉的城”。实际上作为青海海西州的首府,现在的德令哈是座挺繁华甚至现代化的小城。尽管时过境迁,但这里的人们并没有忘记三十几年前在这里路过的诗人,还为他建了一座诗歌陈列馆。
在海子去世时,他们的朋友最大的担忧是海子会被人们遗忘。现在看来他们是多虑了。人们没有忘记海子,他的诗歌如今被收录在语文课本中,所有人都知道他的那句“我有一所房子,面朝大海,春暖花开”。
他的老友西川给他整理的诗集《海子诗全集》是我没事就会翻的书。每每翻阅,除了惊叹于海子细腻的笔触,还越发好奇海子最喜欢用的意象是什么。
于是我顺手就用 Python 爬了爬海子的诗的文本,用 jieba 提取出海子最常用的词,将其最常用的词汇进行一个排序,形成此文。
首先我在网上下载了一本《海子诗全集》。如上所说,这本诗集是海子生前好友西川收纳整理的,是市面上海子诗集中质量最高的一本。我下载的是一个pdf,需要将 pdf 中文本进行提取。为此,我们需要安装两个库。
$ pip install pdfplumber
$ pip install pymupdf
安装好以后,我们便可以从 pdf 中提取出海子诗歌的文本(去掉目录、序、后记等)。
import pdfplumber
pdf_file_path = f'/Users/chenyue/Desktop/Haizi_Poem_Explorer/海子诗全集.pdf'
txt_file_path = f'/Users/chenyue/Desktop/Haizi_Poem_Explorer/HaiziPoems_PureText.txt'
with pdfplumber.open(pdf_file_path) as pdf:
with open(txt_file_path,mode='w') as text:
for page in pdf.pages[48:872]:
text.write(page.extract_text())
得到了一个文本后,我们便可以用 jieba 来分析文本了。
import jieba.analyse
#需要做关键词分析的文本路径
path = f'/Users/chenyue/Desktop/Haizi_Poem_Explorer/HaiziPoems_PureText.txt'
file_in = open(path, 'r', encoding='UTF-8')
content = file_in.read()
try:
#停用词表路径
jieba.analyse.set_stop_words(f'/Users/chenyue/Desktop/Haizi_Poem_Explorer/stop.txt')
tags = jieba.analyse.extract_tags(content, topK=100, withWeight=True)
for v, n in tags:
#算出来的权重是小数,乘以一万用于凑整
print (v + '\t' + str(int(n * 10000)))
finally:
file_in.close()
这是我们最后通过 jieba 得到的结果后,通过wordart做的词云,词汇组成的图片是海子流传最广的一张肖像。
换一张卡通图:
项目所有文档、代码、资料都放在了 GitHub上。
ieba跑出来各个关键词的权值Top100如下,供各位自行回味。
- 天空 484
- 太阳 469
- 大地 316
- 诗歌 306
- 头颅 290
- 石头 256
- 月亮 226
- 人类 220
- 诗人 220
- 草原 219
- 一只 217
- 日子 197
- 美丽 186
- 死亡 182
- 巴比伦 178
- 我要 166
- 沙漠 166
- 血儿 162
- 黑夜 162
- 孤独 161
- 黄昏 159
- 黑暗 158
- 痛苦 158
- 天堂 156
- 母亲 153
- 青草 151
- 肉体 150
- 生命 150
- 村庄 149
- 坐在 145
- 秋天 143
- 故乡 143
- 河流 141
- 远方 133
- 岩石 125
- 夜晚 123
- 吉卜赛 123
- 女人 123
- 嘴唇 122
- 来到 118
- 声音 116
- 歌唱 115
- 土地 113
- 王子 106
- 眼睛 104
- 地上 104
- 春天 103
- 北方 102
- 秘密 102
- 爱情 101
- 火焰 101
- 幸福 100
- 少女 100
- 诞生 99
- 一种 96
- 山上 96
- 原始 95
- 众神 93
- 老人 91
- 编者注 91
- 黎明 91
- 燃烧 90
- 女儿 89
- 世界 89
- 一条 88
- 宝剑 88
- 寂静 88
- 花朵 87
- 地方 86
- 身上 86
- 红色 86
- 幻象 85
- 灵魂 85
- 豹子 82
- 生活 81
- 死去 80
- 饥饿 80
- 麦地 79
- 身体 79
- 公主 79
- 泪水 78
- 一位 78
- 反王 77
- 野花 76
- 火把 76
- 大海 75
- 粮食 75
- 内心 75
- 父亲 75
- 神秘 74
- 黑色 74
- 儿子 74
- 兄弟 74
- 丰收 73
- 语言 73
- 歌声 73
- 盲目 73
- 照亮 72
- 这是 72
- 野兽 71
Fantastic!