书如数据集:用Python和D3.js分析12部圣书
来自Pexels
如果有人被要求找出与 Reddit 评论(参见我上一篇文章)相反的内容,世界上各种宗教文献可能会是一个很好的猜测。与 Reddit 用户喜欢的话题性强、极客风格的内容(经常带有明显的无神论讽刺)形成鲜明对比的是,所有主要和不太主要的神圣书籍都是庄重且充满对崇高的敬仰的深思熟虑之作。不幸的是,由于其本质,这些文学作品往往被视为具有内在的分裂性、过时且最终无用,尤其对于那些坚定反对宗教的人来说。然而,无论任何意见如何,所有正统的灵性文学无疑都充满了丰富的意象和象征意,并且许多最著名的书籍都是近乎完美的作品。如果这些书籍像希腊神话一样被阅读(严肃学者认为希腊神话充满了隐藏的意义),或者只是当作优秀的小说作品,它们在我们的世界中依然占据重要地位。此外,几乎所有这些选集都是无与伦比的文化里程碑,是整个社会和思维方式的基础,因此,它们的重要性远远超出了当今《纽约时报》畅销书榜单所能赋予的赞誉。
偶然看到“书籍是数据集”这句话后,我开始越来越多地寻找任何可能用来练习和提高我的数据分析技能的东西。最终,我决定试试看能否把这个想法付诸实践。起初,我考虑分析一些著名小说或莎士比亚的作品,以及其他一些类似的“文本块”选项。然而,我很快意识到许多宗教经典在网上很容易找到,本身也很有趣,并且都在公共领域,这对我来说很有帮助。
当我选择将圣典分析作为我的下一个个人项目时,剩下的只是决定分析哪些文本。我希望尽量涵盖更多的内容,而且必须提到的是,我本可以涵盖得更广泛些。接近项目结束时,我突然想起了许多这样的文本,如《摩门经》、《波波尔·乌夫》和《阿维斯陀经》,到那时再去寻找和整理它们已经不太现实。下面将提供每个文本的简短概述和亚马逊链接。
- 钦定版圣经:这可能是西方世界乃至现代世界的基石文本。可以说,几乎每个人至少对这本书都有所了解。基督教在全球大约有二十亿信徒,圣经被认为是世界上流传最广的书籍。
- 古兰经(哈拉利译本):与其他所有选段一样,遗憾的是,《古兰经》主要只有那些对伊斯兰教特别感兴趣的人熟悉。然而,伊斯兰教拥有近二十亿信徒,显然与基督教一样,是一个重要的意识形态力量。对于这样的项目,《古兰经》是必不可少的。简而言之,《古兰经》包含了穆罕默德,真主公认的使者所说的话。
- 米德拉什:寻找犹太文学比我预期的要复杂得多,最权威的犹太文本可能是《塔纳赫》,虽然结构不同,但它包含了《旧约》的大部分内容。《塔纳赫》实际上是对《托拉》(律法)、《尼西姆》(先知)和《基特夫》(著作)三个部分的缩写,它实质上就是《希伯来圣经》。虽然一些读者可能听过《塔木德》,但它实际上是拉比的法律文本,不适合这个项目。《米德拉什》包含了一部分犹太教法律,但更多的是解释性的,以《塔纳赫》为中心,因此非常代表犹太教的灵性思想。
- 道德经:最简单、最短的选段,《道德经》是道教的定义文本,虽然还有许多其他文本,如《庄子》。以类似田园诗的风格写成,《道德经》可能是所有选段中最优雅的,可以作为其他选段潜在的庄重平衡。
- 法句经:虽然有许多可以选择的佛教文本,但《法句经》特别值得注意,因为它包含423节由悉达多· Gautama(佛陀)单独说的言论。尽管篇幅较短,但它可能是以文本形式代表原始佛教思想的少数更好选择。
- 西藏度亡书(《中阴经》):随着我们逐渐深入,这本书变得越来越神秘和奇特。据说,《西藏度亡书》(《中阴经》)通常会在最近去世的人耳边念诵,作为一种引导死者穿过阴间之旅的方式。这本书被许多西方文化人物介绍给更广泛的受众,如卡尔·荣格、约翰·列侬、蒂莫西·利里,以及加斯帕·诺的2009年电影《入夜前杀个够》。这真是一场奇妙的旅行。
- 以诺书:我决定在这项工作中包括一些主流宗教中不太常见、不太被重视的方面,对于犹太教和基督教而言,《以诺书》都符合这一标准。该叙述涉及堕落的天使与人类的互动,特别是这些天使与“人类之女”的婚姻,结果生下了“巨人”。在许多非正典的犹太教文本中,这本是知名度最高的之一,可能曾被认为是《圣经》的一部分,但由于显而易见的原因最终被排除在外。值得注意的是,这个故事在《创世记》中也已被简要提及。
- 皮卡特:这是这里最不为人知的选段,可以说是一本阿拉伯手稿,包含各种占星术和魔法的思考与指导。虽然许多学者认为它也是希腊风格的,但它对安拉的召唤以及使用护身符、向日月星辰和行星祈祷的强调,使它在伊斯兰教圣书体系中占据了一个有趣的位置。
- 薄伽梵歌:又称《吉塔》或“神之歌”,《薄伽梵歌》是印度教的核心文本之一,讲述了王子阿周那和他的车夫克里希那在库鲁克什特拉战争前夕的故事。这场战争的历史性未被证实,但详细记载于《摩诃婆罗多》,印度教的中心史诗诗中。书中人物详细阐述了瑜伽和婆罗门哲学,清晰地描述了印度教的伦理和形而上学。《吉塔》因罗伯特·奥本海默在目睹核武器测试后说出的名言而在流行文化中广为人知:“现在我已成为死亡,世界的毁灭者”。
- 撒旦圣经:我决定将其包括进来,作为对基督教圣经以及其他大部分文本的反论。虽然大多数人不知道这本书的存在,但它是由撒旦教会创始人安东·拉维创作的,并于1969年出版。可以说,它更像是“无神论”的,而非通常所理解的撒旦主义,但这取决于个人的理解。对于任何人来说,这都是一本有趣的读物,它附有仪式魔法指南,但这些指南在本项目中被忽略,因为它们是用未知语言写的。(有人说这种语言实际上是“以诺文”。)
- 道德与信条:另一本鲜为人知的书,《道德与信条》或《古旧苏格兰圣职道德与信条》,曾经是或仍是“南方管辖权”下所有新成员的“圣经”。这个管辖权包括除东北部和中西部地区之外的所有美国州。这本书于1871年出版,并一直印刷到1970年代,据说曾经是容易在旧货店找到的便宜书,这是一本非常不寻常且包罗万象的书,不仅因为它仍然围绕着梅森的神秘感。在宗教方面,它是一种奇特的融合,包括希腊主义、纯粹的异教、基督教、神秘主义等。编辑:在这个项目的过程中,我们发现《道德与信条》比这里描述的要丰富得多。
- 基巴利安:这本书,由“三位启蒙者”署名(全名《基巴利安:古埃及和希腊赫尔墨斯哲学研究》),我将其选为代表新思想或新时代信仰。现在几乎每个人都听说过“吸引力法则”,它很大程度上得益于这本书。其他更古老或更“正宗”的赫尔墨斯哲学例子存在,例如《托特绿石板》或大型、广泛的《赫尔墨斯文集》,但《基巴利安》几乎是我所选的这本书中的异类,与《道德经》一样,但仍然非常有趣。
(我必须指出的是,对于那些关注这些翻译差异的读者来说,可以说,大多数这些差异其实都是微不足道的,而那些并非如此的差异对于这个项目来说同样无关紧要。在每种情况下,我都选择了最广为人知、最受尊敬且最容易获取的英文译本。)
尽管选择这么多不同的文本导致在数据清理和准备方面花费了意外的时间和精力,但我发现这个过程非常值得,因为材料的广泛性。我之前已经读过其中的大多数文本,甚至读了几本,但通过这次更好地理解了那些我之前没有花太多时间去阅读的文本,比如《Picatrix》和《薄伽梵歌》这两部作品。
获取这些原始文件中的大多数都非常容易,尤其是当我开始这个项目时,距离[internet archive]遭受网络攻击只有几天的时间。我使用的绝大多数全文文件都是通过那个很棒的网站找到的。然而,[midrash]也带来了一些困难。虽然[sefaria]是一个全面而精彩的犹太经典资源网站,但我没有找到任何.txt文件,只好使用他们提供的[api]来获取我希望的midrash文本格式。如我在上一篇文章中所描述,API是获取我所需要的文本形式的重要工具。编写完python脚本后,只花了我几分钟时间。
虽然这些文件只是普通的文本,但清理它们还是遇到了不少麻烦。删除了脚注和评论,所以我只处理原始的翻译内容。此外,许多文本文件还包括乱码(请参阅我上一篇文章)或故意用Unicode表示希伯来字符或带重音的字母,但这些问题很快就解决了,没有太大的问题。
然而,在准备这些数据时,最具挑战性的因素之一实际上是文本本身的特殊性。下面的许多可视化都是基于每个文本中的实体,即重要的专有名词。对于大多数宗教经文来说,确定什么是实体、什么不是实体并不是一个简单的过程。除了NLTK(自然语言工具包)的实体识别功能经常将句子的首字母大写部分识别为实体,这使得任何开头大写的词几乎都被视为实体之外,我们还必须记住,这些书中的几乎所有内容都是出于定义而神圣的,或充满庄严。因此,许多所谓的“实体”实际上是被赋予了特殊意义的专有名词。例如,《古兰经》中经常将“原因”和“离去”这样的词首字母大写,其意义只有在意识到这些词指的是“安拉的命令”和“安拉的许可”时才会显现,后者意味着基本的许可或允许。《薄伽梵歌》中包括“绝对智慧”和“无穷无尽的时间”这样的概念,而《藏传死者之书》则涉及“善良的天神”和“深刻的心液”。(在这些情况下,翻译者部分是这些大写的来源。)似乎自由思想特别喜欢将几乎所有概念神化,从光明和命运到善与力量等,以及其中许多概念。因此,《道德与教义》一书中包含的实体数量最多,大约有6000个,而圣经则有约3500个实体,相比之下,同样非常短的《道德经》,其中包含“凶象”和“恒常之名”这样的词,只有大约45个实体。
包含了许多我不熟悉的术语让这种实体的配对变得更加复杂,这些术语我甚至误认为是错别字或错误,包括《圣经》中的内容。(我是天主教徒,直到青春期时还读过整本《圣经》。)《圣经》中最常出现的实体有Er、Ar、Ur和Ir,尽管大多数人已经忘记了他们,这些地方和人物在《圣经》中频繁出现,因此在下面的图表中,它们的频率统计会被反复展示。对于不太熟悉的伊斯兰教等文化,专有名词如Ran、Tur、Ist和Aus,在许多人的印象中也像是“非词”。《圣经》中的Pau(巴忽之地)也被我误认为是错误或打字错误,实际上这是某个城市的名称,而非错误或打字失误。
缩小实体范围后,接下来就是选择要使用的分析方法了。因为我已经很好地掌握了 Python 的能力,我决定先用我熟悉的几个工具,即 Pandas 、 scikit-learn 、 NLTK 以及 matplotlib ,以及一些 seaborn 的可视化工具。而在所有这样的文本集合中,我们总是会用到可靠的词云图。
KJV《圣经》词汇云
《古兰经》词云
^ 道德经词汇云
接下来,我们可以参考我们的词频分布图表(参见我上一篇文章)来了解哪些词汇在一个文本中使用最为频繁。同之前一样,我过滤掉了那些常见的停用词。这些图表和词云图已经让我们大致了解了每本书中哪些概念最为突出,并为非专业人士提供了可能会感到惊讶的见解,同时也迅速概述了内容。通过这些图表,我们可以看出每本书的“主题”,每个信仰体系的重点是什么。深入挖掘后,我们还会发现这些重点之间的联系更揭示了许多东西。
^ 《凯巴略》和《密德拉西》的词频分布图
《伊诺克书》和《法句经》的词频图
这里我用的第一个新技巧,基于相同的Python库,以及NLTK库中的特定部分,是短语搭配分析。这些图表展示了每个文本中出现频率最高的词对,或称为二元词组。这种自然语言处理(NLP)技术实际上是大型语言模型(LLM)如ChatGPT的基础。LLM从二元词组开始,即句子中任意两个连续的词。这些二元词组是从数十亿文本数据中汇总的,然后评估一个词紧跟另一个词的可能性,最终使模型能够以高精度预测给定序列中的下一个词。搭配词则是出现频率高于随机情况的二元词组,因此暗示了常见的主题。对于搭配词,首先会自动移除诸如“the”、“if”、“and”和“of”之类的常见词,这些词被称为停用词,同时还会移除标点符号。这解释了为何会出现诸如“image man”和“light darkness”这样的二元词组。其他如“human race”和“good luck”这样的词组显然在原文中就是如此出现的。
《道德与法术》和Picatrix词组搭配表
《撒旦圣经词组搭配表》和《西藏度亡经理词组搭配表》
我们随后可以查看各个文本中实体自身的出现频率,正如上述所提到的。在这些传统中备受尊崇的概念和人物将有助于揭示进一步的联系。这最好用 D3.js 来做,D3.js 是一个 JavaScript 库,就像 JavaScript 一样,可以直接与网页浏览器交互,动态显示数据。这使得即时互动和灵活性变得更容易。尽管我刚开始对 D3.js 不太熟悉,但我发现它对这个项目来说非常有用。即使像我这样的 JavaScript 新手,只要对 Python 和数据可视化有一定的了解,也会使用它,因为 D3.js 可以做很多 Python 库单独使用时难以做到的事情。
D3.js 最常用的数据格式之一是 JSON,即 JavaScript 对象表示法,我正是以此为基础制作了所有的 D3.js 可视化图表。对于不太熟悉这个的人来说,JSON 数据的结构非常简单,总是由所谓的键值对组成,类似于 Python 中的字典。在实体列表中,这表现为实体的“键”和它在整个文本中出现次数的“值”。在更复杂的结构(如下面所示的)中,会形成层次结构,但键值对的原则仍然是 JSON 数据的基础。即使只有这一对键值,我们还可以进一步展示单个文本中实体之间的额外关系。
简单的各种实体数量可视化也很有趣。
正如大家可以看到,“神”在这些书中经常占据过分突出的位置。
为了查看实体之间的直接联系,我们可以使用弦图(chord diagram),这与collocation图表类似,弦图展示了哪些实体最常出现在彼此附近,这强烈表明了这些概念之间存在着深层次的联系。
^ 圣经的和弦图谱
Picatrix 和弦图
^ 藏传往生图:西藏 Book of the Dead
丘巴利安和密德拉什的和弦图示
^ 古兰经和道德经(老子)的和弦图
这些图表的脚本首先计算全文中每个实体的出现频率,然后评估高频实体之间共同出现的频率。我们可以看到,最突出的实体形成了相互关联的关系簇,揭示了通过简单的阅读可能不会立即显现的模式。例如,《圣经》中“父”、“子”、“道”和“人”这些词的深层含义在这里得到了展示,进一步阐明了“耶稣是主”这样的概念。另一方面,对于不熟悉的作品如《Picatrix》而言,和弦图不仅向初学者展示了核心概念,还展示了这些概念如何协同工作,共同塑造了叙事。这也可以解释为什么这些神圣文本非常适合使用和弦图。
我承认,我想要分析这些神圣文本的主要原因之一是我怀疑,如果这些主要的宗教作品适当地组合起来,它们会显示出惊人的视觉相似性。如下图所示,一种评估所有12个选文之间这种相似性的好方法是使用 matplotlib 和 seaborn 生成下面的余弦相似性热图。该图绘制了每本书整体文本向量表示之间的角度,也就是说,它最直接地比较了基于词汇使用模式和潜在主题重叠的言语,分配一个介于0和1之间的值,其中1表示源文本自身。
余弦相似性热力图:12部圣书
越深色的方块表示连接越紧密。不出所料,《圣经》和《以诺书》最为相似,其次是《圣经》和《密西拿》。同样高度连接的还有《薄伽梵歌》和《西藏度亡书》,分数为0.29。我们还可以看到,《西藏度亡书》和《圣经》的连接程度相同,即0.29。然而,在这三组中,相对较高的得分主要是由于风格上的相似。这一点在《圣经》和《以诺书》之间尤为突出,而《西藏度亡书》和《薄伽梵歌》尽管文化联系紧密,但基本上没有其他相似之处。实际上,两者唯一的共同点是“薄伽梵”,是印度用来尊称若干较高神灵的敬语。尽管《圣经》和《西藏度亡书》在大多数情况下关系不大,但它们的翻译以及一些基本的精神主题足够相似,以达到这样的高分。
其他由余弦相似度值提出的关联更加有效,这可以通过基于我们实体列表的图表再次展现。我们可以尝试分析一下《埃诺克书》和《圣经》。这种二分图特别直观地展示了源文本中实体间的关联。每个右侧节点如果有两个连接,意味着该实体同时出现在这两本书中。
《圣经》和《以诺书》中的共享实体的二分图(Bipartite Graph)
然后我们有也许最容易建立的联系之一,这一联系显然与现代相关,那就是《圣经》、《古兰经》和《密西纳犹太法典》(Midrash)这三大亚伯拉罕经典之间的联系。如图所示,这三大亚伯拉罕经典之间的共同元素或共同内容如下所示。
圣经、《古兰经》和《米德拉什》之间共有的元素的二分图关系
许多人忘记了犹太教、基督教和伊斯兰教源自几乎相同的文化,这些文化虽然经历了几个世纪的变迁而分离,但仍然同时存在,而且它们的许多关键人物也几乎是相同的。这也可以通过下面的网络图来展示,这也是观察这些宗教中人、地点和概念之间错综复杂关系的另一种有趣方式,尽管这些宗教似乎自一开始就在相互对立。
圣经、古兰经和米德拉什之间共享的人物网络图
更令人惊讶的是,作为20世纪乃至当前 Freemasonry 的意识形态手册,《道德与教义》与我们选择的大部分文本在内容上有着高度重合,这种重合的程度远超我最初的预期。它特别独特,确实是我们在余弦相似度热图中最暗的一列和一行。事实上,尽管《道德与教义》与《撒旦圣经》之间的余弦相似度得分更高(一些人可能错误地预期这一点),但实际上它与《基督教圣经》共享的实体要多得多。
此外,下文展示了《道德与仪规》与其他文本之间共同的实体,这些实体在图表顶部被列出。该图表仅列出了在十二个文本里至少两个文本之间共享的375个实体。我们可以清楚地看到,在这十二个仍然相对独立的作品里,《道德与仪规》本身至少包含其他十一个文本中提到的一些实体。实际上,在总共375个实体中,《道德与仪规》包含328个,而其他连接最紧密的文本《圣经》、《古兰经》和《密德拉什》分别包含209个、124个和167个。这些都是较长的选择。我考虑过像之前的两个图表那样,逐一显示每个文本与《道德与仪规》之间的连接,但我认为这张图表更引人注目,虽然有些难以处理。
十二部圣典及其相互关联的实体的二分图模型
《道德与教条》确实是一本有趣的读物。这里明确指出它涵盖了或至少涉及了世界上主要的传统宗教,这种说法很可能相当准确。对 Freemasonry 不熟悉或感兴趣并希望了解更多的人,不妨找一本看看,这类书籍仍然很容易买到。
情感分析在这个项目中几乎没有起到什么作用,这也在意料之中。我运行了一个简单的VADER情感分析脚本(见我上一篇帖子),对每个文本逐一进行了分析。但它们的中性情感比例几乎都接近0.8,而积极和消极情感的比例各为0.1,总和为1,这与程序的预期相符。总的来说,这些文本虽然不能说是超越了善恶的范畴,但它们确实平等探讨了善与恶、仁慈与恶意,远远超出了当前情感分析模型的评估范围。
像往常一样,仅仅我们在这里处理的数据就还有很多可以挖掘的地方。这些技术也可以应用于结构相似的其他文本,比如文学作品、总统演讲、个人日记,实际上任何大规模的文本都适用。正如之前提到的,这些原则被用于构建大型语言模型,比如ChatGPT,并且对于自然语言处理技术的当前发展以及未来的进步至关重要。我自己也觉得这个项目很有启发性,并且期待进一步探索这些原则。
共同学习,写下你的评论
评论加载中...
作者其他优质文章