历史学家的新技艺:遥读作为史料的电子邮件
点击次数:2018-03-25 16:38:21【打印】【关闭】
读过这个系列文章前传的读者,应该对“历史学家的新技艺”多了几分认知,也大致了解到用数字手段处理电子邮件的趣味。但是,对历史学者而言,前传中使用的方法还停留在邮件的外围,虽然新奇有趣,但流于表面,还隐约有一点炫技的成份。电子邮件的文本蕴藏着更为丰富的内容,不对它们进行解读,而把精力用在最表层的统计上,无疑是浪费了手中的一把好牌。
进入邮件的内部
10年的电子邮件,已经构成了一个小型的数据集。10076封电邮,虽然都已经由笔者阅读和书写,但要概括这个电邮数据集的内容,并不是一件容易的事情。传统的方法是把电子邮件当作史料一样去阅读、整理、分类,在细读中不断提取重要信息。虽然每封电邮并非长篇大论,但成千上万封邮件叠加起来,需要花费的时间也不是一个小数目。笔者大致换算了一下,所有邮件正文内容字数超过了300万,如果用A4纸打印的话,需要2100余张。Chauvin并不是什么名师大家,这样的耗时耗力是否值当?既想把握文献的内容,又不想太花心思,这样两全其美的事情到底有没有呢?有!这也正是历史学家需要掌握的新技艺之提高版。
帮助研究者获得爬梳史料的捷径,恰好是“遥读”(distance reading)最擅长的地方。古人所云,“观其大略而达至豁然贯通”,似乎提前预知了数字人文技法的高效率。对于我们的电邮数据集,遥读的方法正合“观其大略”的诉求。我们就把这场实验做得更加深入一些,看能否挖掘出更有趣味的结果来。
最简易的一种方式,就是老少咸宜的词频统计。当然,可以供我们进行内容挖掘的对象,其实包含两种类型的文本:邮件的主题以及邮件内容。词频统计的方法对应这两种文本,可能有不一样的适用度。主题本身就具概括性,所以词频统计时逢对手,或许能有精细的结果;邮件内容要庞杂一些,输出的结果可能要粗枝大叶。我们这样猜测,实际结果又如何呢?
词频统计
我们确实能够读到细微的差别。左图高频词“回复”的存在,一眼就让人看出了电邮标题的特质;而右图中的“老师”,应该是邮件开头的称谓。标题的词频在一定程度上说明了大致的内容,比如跟会议通知、信用卡、网上购物等相关;内容词频所涉及的词汇反而过于宽泛,无法重建有效信息。当然,即便是左图的词频也不能透露邮件内容的更多细节。
由此观之,词频统计固然有其价值,但这种方法挖掘出来的信息极其有限。如果想了解电邮数据集讨论了哪些主题,主题有没有时间轴层面的变化等,还需要用其他的方式来解决。我们想到了主题模型的算法,它绝对是投机取巧、了解文献大略的“懒人”方法。
主题模型的基本原理还是基于词频统计,因为不论是说话还是写文章,我们为了说明某个主题,一定会频繁调用跟这个主题密切相关的词汇。主题模型的算法比初级统计高明的地方在于,它能够精准将相关词汇聚合起来,让导出的高频词看上去能够讲诉一个内涵故事。
这个工具的好处是不需要研究者深度参与。换句话说,笔者可以无脑地将电邮数据集丢给算法,它就能够兢兢业业地吐出一些词群出来。接下来只需要浏览数十个关键词,就能够大致推算整幅数据集的“大观”了。听上去是不是很美好?
当然,理想很丰满,现实太骨感。主题模型的算法虽然是无监督的学习,但它并不智能,尤其需要我们对数据集文本提前进行预处理:它只“读得懂”某种结构化的数据,而对一个历史学者而言,要把毫无章法的电邮数据集进行结构化整理,是令人吐血的工作。不过,数据清洗的各种准备,是懂数据分析的历史学者必然要经历的涅槃之路,因为只有这样,柳暗花明的豁然贯通之感才格外真切。
我们略去一把辛酸泪的数据清洗过程,直接跳到结局吧。十年的电邮数据集,在主题模型的眼中,可以简至只需用300字来表达。最初,300万字被精简成下面的样子(部分结果;为了保护隐私,将结果中出现的人名隐去):
每一行都可以被理解成一个主题,其格式分别代表主题编号、在数据集中的比率以及词群。词群不是简单的高频词叠加,虽然不免也有一些不相干的词乱入,但总体来看聚集起来的还是能够讲故事的相关联实体。看到不同的词群,许多往事立马就涌上心头。比如主题7,看到了北大历史系许多熟悉的名字,反映了笔者在北大读书期间的生活经历。关键词表明了大部分内容都跟学生工作相关,没错,“发件王”H就名列其中。在南海研究中心担任秘书的经历,体现在了主题6之中。曾经做辅导员的经历也被挖掘出来了,“辅导员”就是要跟不同学生打交道,与学生们的互动也就相当频繁,主题10还有诸如“申请表”等关键词,透露着学生工作的事务性。
主题模型精准提取主题的能力有时候令人惊讶。主题2分明是一个学生在国外(加拿大)发来的问候;而主题29则是笔者开设的《基督教文明史》、《德意志精神与文化》等课程,与学生们的课程交流。这两个主题在邮件集中属于小众内容,居然也被算法提取出来了。
文本聚类的算法为我们深入理解庞杂的电邮数据集提供了一种指引。有效信息当然不止步于每个主题的10个关键词。实际上,算法还提供了更加丰富的细节,不过它们往往以数据矩阵的方式存在,让我们历史学者一看就感觉头大。比如,它们可能是这样的:
或者是这样的:
我们需要换一种更加直观的方式来观察数据的细节。实际上,这些数据能够更清晰地描绘Chauvin用电子邮件编织起来的“书信空间”,并且彰显其独有的属性。比如,那位“发件王”H,TA究竟在发什么?屈尊第二的G,又有哪些不同?WH2与WH12在跟Chauvin交流什么?R用德语跟Chauvin在讨论什么问题?
每个主题用10个词来表达,是笔者的人为设定。实情是,算法给出了远远多于10个关键词的主题矩阵,而且每个词具有不同的权重。我们可以效法文字云,做出主题的词云来,每个主题的细节更加丰富了。于是,仍然以主题7为例,我们看到了诸如“报告会”、“研究生院”、“组织部”等词,北京大学的生活经历就变得愈加立体了。我们也看到广告邮件的顽强存在感,主题33表明Chauvin是“当当网”的忠实客户,但他不过是在他们家买了一些书,却被推送了许多不相关的商品。主题13则显示Chauvin是12306在线购买火车票的重度依赖者。
主题词云
如前传所述,R代表了Chauvin的书信空间中的另外一个群体——外国人。他们之间用英文或者德语交流,虽然总数不到1000封,但仍然值得我们用技术手段来解析它们。这里的潜台词是,对于电脑而言,不论是中文还是西文,在算法的眼中都是字符,量化统计的方法让电脑摇身一变成为“精通”数国文字的语言达人。算法既然如此神奇,那我们想从更多元化的角度来剖析电邮数据集的状态。比如,尽管主题分门别类,但在整个数据集中的权重都一样吗?每一个邮件同主题的对应关系如何?
这些问题都可以用升级版的主题模型算法得到实现。我们用西文的邮件作为分析对象。
首先,不同主题在整个电邮数据集的权重可以用主题云的形式呈现出来。
主题云
基本上,与Chauvin有电邮往复的外国友人,都分别被拟合到不同的主题之下,而R是当之无愧的最佳笔友;另一个比较重要的国际友人是哈佛大学历史系的教授。比较有趣的是,ahediting与armstronghiton的存在,主要是由于两家论文翻译公司的广告邮件,算法把他们放置在同一个主题下,也算臭味相投。当然,这张主题云只显示了最关键的5个单词,是为了可视化的效果牺牲了主题内容的完整性。但我们依然可以把更多的主题词调动出来,甚至用语义网络的思路来剖析一下邮件的细节。当笔者和R在交换电邮的时候,我们在谈论什么呢?
语义网呈现
前传中提到过R是一位德国友人,通信内容也围绕着如何在南京开启职业生涯。从语义网分析的结果,我们看到了各种约定,特别是有关“保险”(Krankenversicherung)的讨论似乎彰显了德国人的独有特质。
作为历史学者,我们同样关注时间。电子邮件实际上也是生活经历的记录方式,如果Chauvin与通信伙伴就某个问题进行了持续性的邮件交换,那么主题在时间轴层面的演进就非常重要,这个过程能否被直观地展示出来?我们仍然以与哈佛大学教授的电邮为例:
主题的时间演变
该主题乃是笔者与哈佛教授的学术联系。毫不避讳地说,笔者与哈佛教授的邮件往来有很强的功利性,很大程度上是为了获得赴哈佛大学的访学机会,经过了多年的套近乎之后,笔者终于在2015年成行,之后的邮件通信果然就少了很多。这个主题在时间轴的演变,将这种目的性很强的通信联系暴露了出来,我都为自己不近人情的做法汗颜。
最后的小结
诚如在前传中所言,本文实质上是游戏之作,目的是测试一下用技术手段处理电子史料的可能性。从最基本的量化统计,到邮件文本的解读,都属于历史研究在实战中不同层次的需求。我们惊喜地看到,数字人文的方法在不同维度上都能找到大施拳脚的空间。当然,我们也必须诚恳地意识到,技术手段介入历史问题研究,在帮助研究者提高工作效率的同时,也不能忘记研究者的主体意识,即历史研究要立足于解决问题,而不是单纯地呈现数据之美妙。
笔者对Chauvin电子邮件数据集尝试的各种技术工具,属于自然语言处理领域最成熟的技术,潜台词就是,它们可能并不是最先进的算法。对于人文学者而言,哪怕是未来的历史学家,拥有了比我们这代人更广阔的数字人文的环境,要去追赶技术进步的步伐,或许也是艰巨的挑战。面向未来的历史研究,需要跟数据分析科学家深度合作,为具体的历史问题量身定做算法,而不是亦步亦趋的效仿。所以,历史学家真正以不变应万变的新技艺,其实是开放的心态和数据思维的提升;惟有如此,哪怕在不远的将来人工智能技术进步一日千里,历史学者的思维优势也能够立于不败之地。
(本文的写作,依然要感谢南京大学软件学院刘嘉、郭建朋的技术支持!)