查看原文
其他

独家课程 | 文本挖掘(二)

王涛 零壹Lab 2022-10-08


编者语:

本文系王涛老师“数字史学”课程教材《历史学家的新技艺》系列第五篇。本系列旨在为对数字人文感兴趣的人文学者和年轻学子提供数字人文研究入门指南,以助大家进入这片新天地。

初次阅读本系列,了解往期课程请点击:


独家课程丨如何做一个数字历史学家

独家课程丨历史研究的新素材

独家课程丨社会网络分析

独家课程丨文本挖掘(一)




课程介绍

文史研究的主要材料是文本。相对于其他数据类型,文本由于非结构化的特质,文史学者要使用计算思维对它们进行分析颇具难度。不过,自然语言处理技术发展日新月异,让我们看到了对文本进行精细化分析的可能性。在文史研究领域,如果解决了数字化的问题,那么我们就需要思考,在热闹非凡的数字人文范畴,有哪些工具和原理能够帮助人文学者解读文本。在先前的教程中,我们介绍了最简单的遥读方法。但是,如果大家以为NLP(自然语言处理)就只会统计词频这些能耐,就大错特错了。


在本次教程中,我们会介绍一些更“高级的”文本挖掘方法,包括主题模型、词向量等。本节内容涉及的方法相对复杂,有一些算法只能通过编程代码实现(主要使用python)。但我又不愿意像一些教程那样展示源代码,毕竟这里不是编程课,也会让很多人文学者知难而退。我强调应用,同时会把源代码开放供大家下载,感兴趣的读者只需要做一些简单的修改就能在自己的电脑里使用。需要强调的是,本教程使用的代码,参考了部分开源代码,我根据需要进行了必要修改。


主题模型

1.原理


手头有近700份文献,字符数在3000万左右,我们用什么方法在最短的时间内了解文献的整体面貌,并对文献内容进行分类整理?传统的方法是让不同的人同时阅读,做读书笔记,然后分享阅读成果,最终整合成一份读书报告。这种合作阅读(collaborative reading)的方式,通常被学者们用来处理庞杂的文献资料。它能够提升搜集信息的效率,但也具有明显的劣势:它基于多人协作,处理信息的标准因人而异,让内容整合的客观性大打折扣。


更重要的是,这种传统的方式是一种直接的(direct reading)、近距离的(close reading)的阅读,处理信息的容量非常有限。正如有学者提出的那样,“你怎么处理100万册的图书?”在信息爆炸的网络时代,更有大量有效信息淹没在无关文献的海洋,人力的局限性在这里暴露无余。专注机器学习与自然语言处理的专家,设计出“主题模型”的算法,能够在无须人工参与的前提下发现和归纳文本的主题内容。这种统计模型工具用机器阅读的形式兑现了远距离阅读的理念,为解决文献增量超出人类理解极限的状况找到了出路。


主题模型的工作原理立足于人类的写作习惯。作者在创作文本时,都会预设若干主题。为了凸显某个主题,作者会在遣词造句时从自己的词库中调用相关联的词汇,在主题模型的术语中,这些具有相关性的词汇被称为“词群”(bag of words)。举个例子,歌德在构思《少年维特之烦恼》(Die Leiden des jungen Werthers)时,会设计不同主题,并用不同的文字展现出来。作为一部爱情小说,“爱情”(Liebe)一定是首要主题,但歌德也不会排斥对其他主题进行描述,否则小说的可读性会降低,对社会的描述也会非常扁平化。因此“自然”(Natur),“艺术”(Kunst)以及“社会”(Gesellschaft)等,也是可能的主题内容。为了描绘这些主题,歌德在写作中会调动相应的词群,例如,在描绘维特令人心碎的爱情时,一定会出现高频率地出现“Liebe”(爱情)、“Hertz”(心)等,也会有“umarmen”(拥抱)、“küssen”(吻)等,或者频率较低的“ewig”(永恒)、“morgen”(明天)等词汇。其他主题也有类似的词群以及频率。基于这样的创作习惯,如果我们反其道而行之,通过统计词群,就能够把握与之对应的主题,进而了解整部文献的内容。


《少年维特之烦恼》词群统计


基于上述原理,布雷(David Blei),吴恩达和乔丹(Michael Jordan)于2003年提出了“隐含狄利克雷分布”(Latent Dirichlet allocation,简称LDA),成为主题模型最常用的算法。LDA通过特定公式计算词汇出现的频率,并将相互关联的词汇作为结果输出。这种模型是一种无监督学习的算法,具有刚性的客观性,即事先不需要研究者对文献内容有任何了解,也不需要进行人工标注、设置关键词等主观处理,而完全由电脑程序自动完成对文献主题的归纳。主题模型试图用数学框架来解释文档内容,这种做法看似同人文学科的习惯并不兼容。但是,LDA输出的结果是一组有意义的词群,而非纯粹的统计数据,人文学者能够使用这些词汇进行定性分析,证实或者证伪一些猜测,将定量统计的客观与定性描述的开放充分结合起来,所以这个方法在人文学科领域极具应用的前景,特别是对动辄数以万计的文献来说,主题模型的计算能力十分诱人。


实现LDA的算法有许多途径,Python下的Gensim软件包有进行主题模型的运算模块,调用起来非常方便。计算机专家迈克卡伦(Andrew McCallum)为不懂编程的研究者写出软件MALLET,让归纳整理文献主题变成简单的命令录入,开始被人文学者广泛使用;后来,纽曼(David Newman)和同事用JAVA开发出具有图像界面的主题模型工具套件(Topic Modeling Tools,TMT),使用者甚至不需要了解繁琐的命令符,进一步降低了应用门槛,让主题模型成为人人能够上手的工具。TMT和MALLET两款软件的算法相似,而TMT更容易使用,我们在这里将演示TMT的用法。该软件可以在百度网盘下载获得。


2.TMT的用法


TMT是免安装软件,但要确保电脑已经安装好了JAVA的系统工作平台。JAVA的系统准备非常简单,直接去JAVA的主页下载一个软件包,点击安装就可以了。


准备工作就绪后,我们可以直接点开TMT,应该会看到如下的界面:


图1:TMT的工作界面


此工作界面让我们认识到,要用TMT进行主题模型演算,只需要通过[Select Input File or Dir]导入文本,并选择[Select Output Dir]确定输出结果的存放位置。另外,[Number of topics]也是我们可以自定义的参数,即“主题的数目”。不过,“主题数”是一个很难确定的参数,我们后面会讲到为什么困难。在一般的操作中,我们通常预设几个不同的值,然后点击[Learn Topics],就完成了工作流程,剩下的计算工作,就交给电脑来做。


当然,要让主题模型的结果更合理,有一些参数需要因地制宜进行调整,我们点击[Advanced]进入这个界面:


图2:TMT的参数设置


在这里,我们可以决定是否剔除“停用词”。


·[No. of iterations],我们可以将它理解为算法重复运算的次数,这跟文本的大小、主题数等都有关联。根据TMT开发者提供的指南,如果主题数小于100的话,将这个参数设置为200比较合理;主题数大于500的话,将数值设为1000;


·[No. of topic words printed],我们已经知道,在主题模型的算法中,每个主题用“词群”来表达。词群由若干词汇构成,就是这个参数表达的含义,默认是10,可以在10-20之间变动;


·[Topic proportion threshold],低于某个阈值的词不会被纳入算法,默认值是5%。如果文献比较短,可以将这个值调高。


我们在本案中使用的样本文献来自数字人文领域著名的Humanist讨论组(Humanist Discussion Group)的电子邮件,跨度从2008到2012,总计3565封。在将文本导入TMT之前,需要对文本进行清洗,主要目的是消除文本中的标点符号,将大写字母转化为小写,并对名词或者动词进行异形转化。因为在TMT的算法中,Computer、computer以及computers将被视作三个不同的词汇;标点符号的存在,也会影响结果的合理性。处理好的文本在百度网盘下载。


由于文本内容不多,大部分参数保持默认值即可。根据工作流启动TMT,我们会看到类似这样的界面:


图3:主题模型结果


此图的出现表明TMT在正常工作。经过一段时间的等待后,我们应该可以在指定的文件夹里看到导出的结果,它们由output_csv和output_html两组文件夹,以及一个压缩文件组成。压缩文件我们不必理会,主要关心两个文件夹里出现的文件。


两个文件夹的数据其实一样,只是使用了两个不同的文件格式,csv文件用Excel打开,html文件用浏览器可以打开。


csv文件夹有三个电子表格文件:

·DocsinTopics.csv,主题与文档对应的情况,也就是某个主题可以在哪些文档中找到;

·Topics_Words.csv,主题模型演算结果的核心内容,主题词群的结果;

·TopicsinDocs.csv,依然是主题与文档对应的情况,但反映的是每个文档包含哪些主题,以及每个主题的比例。


html文件夹里的文件,形成了更友好的观察主题与文档关系的文件:


·all_topics.html,最核心的文件,它反映的是主题词群的情况,跟Topics_Words.csv的结果一致,但它自动生成了许多超级链接,当我们点击某一个主题时,它会自动链接到与这个主题相关联的文档;再去点击具体的文档时,它又回跳到该文档含有的主题,以及相应主题所占的百分比。


基于上面的结果,我们已经可以对电子邮件的总体面貌有一个大致把握。实际上,使用TopicModelingTool进行主题模型的演算,其过程本身相当简单。但仅仅是这个结果,并不能满足人文研究的需求,还有一些具体问题需要关注,并对结果进行合理解读。


3.主题模型相关问题 


a.主题数的确定


不论是MALLET还是TMT,都没有一个合理的机制帮我们确定文献的主题数目(number of topics,topic K)。在TMT的官方指南中,只有非常模糊的说明,如果文献的数量在1000以内,那么topic K在10-20之间;文献数量在10000以上,topic K=20-60;文献数量超过100000,topic K=50-200.


这样的标准太笼统。在实际的操作中,研究者只能根据演算结果进行推测。主题数太多的话,会出现某些主题集中于几个特定的文献,影响我们对整个文献的内容把握;如果主题数太少,对文献整体的内容就会缺失。判断的标准主要根据词群的分布:如果两个词群的主题词构成中,有大量重复单词,或者同义词,则意味着主题词的分布存在重叠的情况,说明topic K赋值过大。反之,如果topic K赋值过小,则词群所描绘的主题过于通用,甚至还会遗漏具有特色的主题。这样的方式主观性很强,而且试错的成本极高。


实际上,计算专家提出过一些算法尝试解决这个问题。我们在这里介绍两种算法。使用的数据集仍然是3500多封电子邮件。


第一种算法基于“词为中心的稳定性分析”(term-centric stability analysis)。这个算法将计算给定主题数的稳定性参数,我们通过观察稳定性的变化来分析主题数的合理区间。


图4:测算最优主题数


在上述折线图中,主题数在20后,稳定性的变化趋向缓和,可以理解为相对优化的主题数。


另一种算法隐藏在Gensim软件包中。我们知道Gensim内置了主题模型的算法,其中有一个CoherenceModel类,能够帮助我们判断主题模型是否合理。CoherenceModel包含了两个指标U_Mass Coherence和C_V coherence,两个指标都是数值越大,主题模型的效果越好。我改编了代码,首先基于Gensim处理文本,建构主题模型,然后以主题数为变量,分别用两个指标对主题模型进行评估,将不同结果用折线图表示出来,以此讨论主题数最优的状态。


图5:基于C_V coherence


图6:基于U_Mass Coherence


两种指标都显示,当主题数在20前后开始迅速衰减,所以我们可以将合理的主题数设置在20.


当然,不论用哪种算法,最优主题数只是一个理论上的数值。在实际的研究中,我们是否采用这个数字,完全基于我们解读文献的需求。在很多情况下,不同学者为了研究目的会使用超过理想值或者少于理想值的主题数,来实现对文献的多元认知。比较可行的方式在于,我们将最优主题数作为参考,再进行人工测算,以便更加贴合实际需求。


b.主题词的权重


如果用Gensim的软件包来实现LDA的算法,那么导出的主题模型典型结果通常是如下的形态:


[0.661*conference+ 0.076*paper + 0.002*submission,

0.16*computer + 0.050*game + 0.037*program,

0.293*digital + 0.11*book + 0.03*text]


每行都是一个主题,由不同权重的主题词构成。主题词看上去还能够说明问题,但是前面作为权重的数字,会让人文学者难以理解。


其实,我们可以使用可视化的方法,将繁琐的统计数据转变为更容易解读的有效信息,从而帮助我们快速理解主题模型的结果。我们向大家介绍一款叫作ConText的软件,它其实是一个集成了若干文本挖掘工具的小软件,其中就包括进行主题模型的计算。该软件可以在百度网盘获取。


通过[Text Analysis]→[Visualization]的路径,我们可以找到可视化主题模型结果的入口:


图7:ConText工作界面


只需要三个步骤,就能够完成可视化图片的制作:导入数据、设置参数、点击[run]。最终的结果是一组可以互动的网页文件。每个卡片就是一个主题,用字体和颜色的不同来表示主题词的权重。


图8:主题词的权重


当然,不同主题在整幅文献中的权重也是有差别的,我们能够从卡片颜色的深浅看出这层隐藏的信息。其中最显著的一个特色在于,主题权重越大,其普遍性越强。换句话说,重要的主题致力于描绘整个文献的普遍特征,而权重小的主题可以暴露文献中的特异性。比如,在邮件的主题云中,黄色主题由直接与“数字”“人文”等相关的词汇构成,这跟该数据集的来源密切相关。而在权重很小的主题中,出现的词汇就数字人文关系不太紧密,是非常独特的内容。这是ConText为了研究者更好理解主题模型结果而提供的一项额外服务。


不过,从美观的角度来看,ConText的可视化结果比较粗糙。网络上还有另外一个针对主题模型进行可视化处理的工作平台,名为Lexos,其网址为:http://lexos.wheatoncollege.edu/upload。它可以得出跟ConText类似的结果,但效果更加美观大方。不过,因为这是一个网络平台,受网络环境的影响较大。另外,它要对主题模型进行可视化处理所使用的数据,必须基于MALLET的结果,要相对复杂一些。


在这里,我演示一个用Lexos平台解析奥古斯丁书信的案例。书信的文本为拉丁语,特别提及这个例子,也是为了说明,在LDA的算法环境中,其分析对象是字符本身,至于字符是中文、英文甚至拉丁语,对LDA的公式而言都是等价的。这一方面说明了LDA算法的通用性,另一方面也旨在证明,所谓的“遥读”并没有进入文字蕴含的本身,而只有统计语言学层面的量化认知。


图9:奥古斯丁书信的主题词云


在图中,我们看到了每个主题下不同主题词的构成状况,而且不同词存在不同的权重。在主题20的词群中,诸如dico(说)、scribo(写)、volo(希望)等词汇显著地呈现了文献的书信体特质,它们拥有极高的频率,这对于书信这种问题而言是理所当然的结果。在主题16的词群中,诸如ecclesia(教会)、pecco(罪)、sacramentum(圣礼)、baptismum(洗礼)等词汇大量出现,跟奥古斯丁利用书信行使主教管理权的事实紧密相关。


c.综合的可视化


我们还可以用一种更加综合的可视化方式,让主题模型的解读变得更加容易。同样地,这个算法需要使用Python环境下的软件包pyLDAvis,并能够得出图10的可视化动态网页,可以进行交互分析。

图表中,我们看到了几层关系:首先,每个圆圈代表一个独立的主题,当鼠标点击圆圈的时候,图表的右侧会显示组成该主题的词。比如,图表中体现了主题5的内容,从词群的分布可以看出,该主题与研究生培养相关,涉及到了申请、学位、奖学金等事宜。圆圈的距离,体现了不同主题之间的关联度。其次,右侧主题词用红色线条长短表达主题词的权重,让研究者了解到每个词在主题中的状态。


图10:使用pyLDAvis


如果我们用鼠标去点击具体的主题词,会发现左侧的圆圈发生了改变。它所呈现的是该词在哪些主题中不同权重。比如当我们选择“salary”这个词之后,


图11:交互图


许多主题从左侧消失了,而主题5变得更加突出,说明该词在主题5的权重极大,而在其他主题中无足轻重。

值得注意的是,用pyLDAvis的方式做出的结果呈现,也能够帮助我们推算文献集的主题数目。左侧的圆圈代表了不同的主题,圆圈之间的距离是每个主题之间的相似度。由此我们可以大致了解,有些主题相距甚远,比如主题25与主题14,表明它们极其独立;而有些主题,比如主题5、主题15与主题11,彼此相对靠近,说明它们之间有很大的相似度。所以,从主题数目的设置上,或许需要排除这些重叠的主题,减少主题的数目,以保证文献集主题的合理分布。


d.时间轴


对于文史研究的课题而言,由于需要处理的文献通常有时间的维度,所以除了用主题模型分析文献的整体面貌之外,我们还希望从纵向的角度,去描绘主题随着时间演变情况。要实现这个目标,我们可以将文献按照年代分类,分别进行主题模型的提取,然后汇总起来就可以看到主题演变在时间轴上的呈现。但是,这个方法破坏了文献的整体性,会影响主题在文献全局层面的分布。


更合理的办法,或许是给每个文献打上年代的标签,然后在LDA的运算过程中加入时间的属性,并在结果导出的时候标示在坐标轴上。要实现这个功能,我们需要另外一个Python的软件包:Tom_lib。比较麻烦的问题在于,在Tom_lib中我们不能直接调用纯文本的格式来进行主题建模和时间轴分析,而需要将待处理的文本转换为Excel表格,并且设置一些必要的字段,其中包括日期、标题、以及文本内容等。我们依然以Humanist的邮件组为例,处理好的文本可以在百度网盘下载。


我们随机选取了主题13,它包含的比较重要的词群由digital,department,scholarship,study,dh等,显然跟数字人文的教学紧密相关。然后,我们可以看到下面这张图:


图12:主题的历时性


这个主题呈现逐年增多的趋势,跟数字人文领域愈来愈重视教学以及人才培养的发展思路非常一致。


通过多种可视化的方式,我们能够对主题模型的结果进行更有意义的解读。主题模型作为一种文本挖掘的算法具有很强的通用性,具有丰富的应用场景。如果要对海量的原始文本进行聚类处理,它是值得考虑的一种方法。然而从本质上看,任何可视化的方法都需要结合研究项目的具体需求,而不能为了单纯追求可视化结果的绚丽而毫无目的地使用可视化方案,否则就会因辞害义,在研究工作的流程上出现本末倒置的状况。从算法本身来看,主题模型的算法的缺点跟其优点一样突出,比如它对词汇的处理比较粗糙,一词多义,上下文语境等情况,都无法被纳入考量的范畴。


这个时候,我们或许需要引进另外一种表示文本的方式:word2vec。



Word2vec


1.原理 


word2vec是Google公司开发的词向量工具包,自2013年发布出来之后即刻就获得了广泛应用。


要理解word2vec,我们需要首先讨论一个新的概念:语言表示。


我们之前就已经提到过,文本属于非结构化的数据。如果要对文本进行统计或者从文本中提取特征,对于计算机而言都是非常困难的事情。因此,计算专家找到了一种文本向量化的表示方式(Vector Representation of the Text)来实现文本的结构化,以方便后续对文本进行数学操作。顾名思义,向量表示就是基于某种规则将文字用数字进行表达。一种最容易理解的向量就是离散表示(也称独热表示,one-hot Representation),通过统计文档中每个单词的频率来实现。比如下面三个极简的文档:


文档1:He buys a computer.

文档2:He likes iPad.

文档3:She likes computer and likes iPad.


我们先将三个文档中出现的所有不重复词生成一个词典:


[a, and, buys, computer, he, iPad, likes, she]


于是,在词典的基础上,根据词频数据,原始文本可以转化为:


文档1:[1, 0, 1, 1, 1, 0, 0, 0]

文档2:[0, 0, 0, 0, 1, 1, 1, 0]

文档3:[0, 1, 0, 1, 0, 1, 2, 1]


这种离散表示就像一个购物袋,兜住了文本的所有特征词,所以它获得了一个形象的称谓:词袋模型(Bag-of-Words)。


离散表达简单直观,但问题也很明显。在真实的文本中,词袋模型的维度通常非常大,因为零值很多,随着文本的规模越来越大,会带来所谓“维度灾难”。同时,离散的表达方式没有关照词与词之间的语义关系,将词进行了粗暴的原子化处理,出现所谓“词汇鸿沟”。为了克服离散表示的缺陷,学者们提出了词的分布式表示(Distributed Representation)。


实际上,早在1954年就有学者提出了“分布假说”,其核心要点认为,上下文相似的词,其语义也具有相似性。后来这个假说发展成为语言学中的“距离相似性”原理;简言之,我们要去理解一个词的含义,就要去了解它周围词的含义,所谓观其伴而知其意。在英语考试中进行阅读理解的时候,有时我们遇到了不认识的单词,英语老师是不是经常提醒我们可以根据上下文语境推测词的意思?


word2vec的原理正是基于这个假设:相关的词汇一般都会在相同的文档里同时出现。例如,backpack(背包)、school(学校)、notebook(笔记本)和teacher(教师)一般都会一起出现。而student(学生)、tiger(老虎)、apple(苹果)一般都不会同时出现。跟离散分布最大的不同在于,word2vec强调词的空间概念,通过引入“距离”的各种算法,如余弦相似性等,来刻画词与词之间的语义关系。


随着神经网络算法有了进一步改善,词向量技术得到了发展,任务应用场景也不断扩展,如情感分析、实体命名等。很多文献中都会提到word2vec在机器翻译中的运用,分别给英语和西班牙语建立词向量空间,我们就能够轻易发现在空间中相对位置差不多的两个词,其含义能够进行互译,从而实现机器翻译的功能。


2. 应用


词空间向量的表示方式非常诱人。但对于人文学者而言,它有什么作用呢?我们在前面告诉大家用词频统计的方式遥读文献,简单而又直接。但是,词频(Term Frequency,TF)虽然有效,也存在弊端。我们提及许多学者不信任数字人文的方法,指出在《白鲸记》的文本中出现1700次“白鲸”毫无意义。这样的指责并非没有道理,因为在一部名为“白鲸”的小说中,“白鲸”这个概念的频次遥遥领先,是自然而然的事情,它作为《白鲸记》的关键词,或者说文本特征并不具有代表性。正如许多教程中会举到的例子,在《中国的蜜蜂养殖》中把“中国”作为关键词也不合格一样。


因此,专家们又引入了另外一个概念,逆文档频率(Inverse Document Frequency,IDF),并用算法将它与词频结合起来,形成TF-IDF,作为描绘文本特征的重要参数。实践证明,用这个参数提取的关键词,要比单纯的词频统计合理得多。对于人文学者的具体实践而言,TF-IDF既是对文本特征进行探索的一种方式,也是对文本进行预处理的准备工作,留待后续用其他算法进行分析。


由于TF-IDF与词汇在文档的分布相关联,我们可以用它来计算文本的相似度,也就是余弦相似性,而这恰好就是词向量空间的一种应用。许多搜索引擎就在后台使用了这种算法,先计算目标文本中相应检索词的TF-IDF值,返回一个得分列表,排在前列的就被认为是最相关的目标文本。如果是研究者想在众多文献中寻找与研究相关最深的文本,也可以用余弦相似性。在Python的工具包sklearn中就有计算TF-IDF以及进行余弦相似性的实现。这里为大家准备了代码,用它可以计算文档的TF-IDF值,并导出一个Excel的排序列表。


除此之外,我们用word2vec对文本进行训练后,还可以完成更多的语义分析。当然,网路上有很多训练好的词向量语料资源可供免费下载,但是这些语料都是基于现代语言,跟历史文本还有不同,所以我建议大家对自己的文本进行单独训练。这里是使用Gensim模块训练文本的源代码。


拿到训练好的词向量文件后,我们至少可以做两件事:


首先,可以找出相似的词。这种方法跟主题模型比较类似,但由于原理不同,它们的结果也没有可比性。比如,我们想了解“humanist”这个词的关联词:


图13:基于w2v的主题聚类


结果看上去不错,它将Willard McCarty列出来了。McCarty是数字人文领域早期的开拓者,2013年度布撒奖获得者。更重要的是,他本身就是Humanist邮件组的资深编辑成员,自1987年就服务于这个数字人文的学术共同体。基于这样的事实,McCarty同humanist的密切关系就不是令人意外的预测。


其次,我们可以通过几个关键词给定一种语境,然后让word2vec去预测其他相关词。比如,我们想看看ucl、history以及dh这三个词构成的语境,会有什么样的延展意义:


图14:基于w2v的预测


我们看到了许多与教育相关的词汇,这或许跟UCL在数字人文领域的成就密切相关,它有非常完备的数字人文教学体系和培养方案。


3. 可视化


既然word2vec反映的是词与词之间的空间关系,我们就会想,能不能用一种直观的方式把词空间向量的结果呈现出来。


我们从word2vec的原理知道,词空间向量是一种多维的数据结构,如果要将它们呈现在平面图形上,就需要进行降维处理。在这里,我们使用tSNE的算法,将词空间向量的维度降低至2维,从而对结果进行可视化呈现。


由于Humanist邮件组的数量大,我们随机选取100个单词来展现它们向量的状态。


图15词空间向量可视化


值得注意的是,我们在这里用tSNE降维进行的词空间向量可视化,可以通过鼠标来对背景进行缩放,从而将紧密聚集在一起的词放大,了解更多细节。


总体来看,不论是主题模型还是word2vec都是基于统计语言学的算法。它们都有各自的优劣,人文学者要使用相关的工具和可视化结果,仍然需要在合理的范围内进行解读。当然,从技术的层面说,如果将来有方式将两种算法的优势合并起来,或许会有更令人惊喜的发现。



参考书目

Matthew J. Lavin, "Analyzing Documents with TF-IDF," The Programming Historian 8 (2019),https://programminghistorian.org/en/lessons/analyzing-documents-with-tfidf.

http://miriamposner.com/blog/very-basic-strategies-for-interpreting-results-from-the-topic-modeling-tool/


郑捷:《NLP汉语自然语言处理原理与实践》,北京:电子工业出版社,2017年。


王涛,文本分析的新工具:以主题模型的可视化为例,《云南大学学报》2018年第6期,第75-79页。


高长宽,“word2vec的训练、使用和可视化”, Social Listening与文本挖掘,2019-06-23。






研究案例


王小红等,人文知识发现的计算机实现:对“汉典古籍”主题建模的实证分析,《自然辩证法通讯》2018年第4期,第50-58页。


王涛,18世纪德语历史文献的数据挖掘:以主题模型为例,《学海》2017年第1期,第206-216页。



资源下载



相关软件与数据百度网盘下载链接:

https://pan.baidu.com/s/1JeCf7dhn7hmzmkbJ19UOdQ  密码:h1dt







END


主编 / 陈静、徐力恒

责编 / 任苗青

美编 / 任苗青





您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存