Inspiration 灵感,  Poem 诗,  Technical 技术

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

Subscribe
Notify of
guest
1 Comment
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
Anonymous
Anonymous
2 years ago

Fantastic!

1
0
Would love your thoughts, please comment.x
()
x