今天跟大家伙儿聊聊我这几天搞的“世界末日 周杰伦”这么个事儿。一开始就是随便想想,觉得好玩,想看看能不能搞出来点
一开始我就是把周董的歌词,尤其是那种比较丧的歌词,比如“想笑 来伪装掉下的眼泪”这种,还有“天灰灰 会不会 让我忘了你是谁”,全都扒拉下来。然后一股脑儿扔进一个文本文件里。
我就开始琢磨怎么把这些歌词“世界末日”一下。我想的是,世界末日嘛肯定很混乱,很破碎。所以我就写了个简单的Python脚本,先把这些歌词随机打乱顺序,然后把每一句歌词里面的字也随机打乱。
代码大概是这么写的:
- 先读文件,把歌词弄成一个列表。
- 然后用`*()`函数把列表顺序打乱。
- 遍历每一句歌词,再把每个字拆开,弄成一个字列表。
- 再用`*()`把字列表顺序打乱。
- 把打乱的字列表重新拼成句子。
运行完之后,出来的东西简直没法看!完全就是一堆乱码,虽然能感觉到是周董的风格,但是根本看不懂是
后来我就想,这么搞不行,太暴力了。得加点“美感”。我就开始研究周董的歌词特点,发现他很喜欢用一些特定的词,比如“天”、“夜”、“黑”、“灰”之类的,还有一些口头禅,比如“无所谓”、“也许”。
于是我就把这些词单独提取出来,建了一个词库。然后修改了脚本,让它在打乱歌词的时候,优先保留这些关键词。也就是说,这些关键词的顺序尽量不变,只是打乱其他字的顺序。
这回修改的代码是这样的:
- 在之前的代码基础上,加了一个关键词列表。
- 在打乱字列表之前,先判断这个字是不是关键词。
- 如果是关键词,就跳过,不打乱。
这样搞出来效果就好多了!虽然还是有点乱,但是能看出一些句子结构了,而且那些关键词也还在,感觉更有“末日”的味道了。
我还加了一点小技巧。我发现周董的歌词很喜欢重复一些句子,所以我就让脚本随机重复一些句子,让整个文本看起来更像一首“末日版”的周杰伦歌曲。
的代码就变成这样了:
- 在关键词保留的基础上,随机选择一些句子,重复添加到文本中。
- 重复的次数也是随机的,增加一些不确定性。
搞完之后,我就把这个“世界末日 周杰伦”的文本发给几个朋友看,大家都说挺有意思的,有点那种“似是而非”的感觉,既熟悉又陌生。
这回实践就是瞎折腾,但是也挺好玩的。以后有机会再搞点更有意思的东西出来!