vlambda博客
学习文章列表

图灵机|主题建模有什么用?













栏目介绍





没多久2020年就要过去一半了。经历过这几个月,不消说,人间要迎来巨变了。零壹Lab特别开辟新栏目“图灵机”,由零壹Lab的成员或读者提出疑问,再邀请相关专家和思索者提供切中肯綮的回答。一问一答,图灵机不会代替你思考,却能见机锋,能见妙趣。请在留言评论区留下你的问题和感想,图灵机期待为你激荡脑力!从零到一,这是开荒的时代。

                                                                                                                       ——徐力恒










图灵机|主题建模有什么用?
图灵机|主题建模有什么用?

提问者:孙绍丹



开始提问题了,⽼师们好,我最近⼀直在看国外主题建模的⽂献,想问下国内外可以开放的数字⼈⽂资源库可供主题建模来⽤的?或者可以⽤作其他的⽂本分析(尝试了CBDB和ctext )以及如何做proposal的可⾏性分析?(真的要交叉学科专家来头脑⻛暴吗?)


⽼师,我再追述下上⾯提的问题哈。王涛⽼师是历史系教授,上次清华数字⼈⽂创刊仪式上王涛⽼师讲了“从个案研究到平台建设”报告,内容涵盖⼝述者的情感变化轨迹。我现在也有⼀篇正在做的论⽂关于⽂学作品中⼈物的情感轨迹。我想问的是:在写这类论⽂的时候是否需要在⼯具或程序运作后(可能会有⼀些可视化图表)深度解读⼈⽂领域的⼀些知识,因为我是图情学科,所以就是学科之间的‘分界线’该如何把握?我们学科在数字⼈⽂上的贡献好像更偏重⽅法论⼀些,所以我在论述的时候可能缺乏对⼈⽂领域知识的多维认知。

回答者:王涛

图灵机|主题建模有什么用?

主题建模或者主题模型,本质上是自然语言处理技术框架下的一种统计方法,用来发现文档中的主题。在一些应用场景,它可以帮助我们对海量文本进行分类。主题模型的工作原理立足于人的思考习惯。比如,写作者在创作文本时,会预设若干主题。为了凸显某个主题,作者会在遣词造句时调用相关联的词语,在主题模型的术语中,这些具有相关性的词语被称为“词群”(bag of words)。举个例子,歌德在构思《少年维特之烦恼》时,会设计不同主题,并用不同的文字进行刻画。作为一部爱情小说,“爱情”一定是核心内容,但歌德也不会排斥对其他主题的描述,否则小说的可读性会降低,对社会的描述也会非常扁平化。因此“自然”、“艺术”或者“社会”等,也是可能的主题。为了描绘这些主题,歌德在写作中会使用相应的词群,如在描绘维特令人心碎的爱情时,一定会高频率地出现“爱情”、“心”等,也会有“拥抱”、“吻”等词语。其他主题也有类似的词群以及频率。基于这样的逻辑,如果我们用统计模型计算词群,就能够把握相应的主题,或者对文本的内容进行分类。


布雷、吴恩达等人于2003年提出了“隐含狄利克雷分布”(Latent Dirichlet Allocation,简称LDA),成为主题模型最常用的算法,后来也出现了基于LDA的改进算法。很多软件,工具包,编程语言都能够实现主题模型,在Python环境下常用的软件包是gensim。针对LDA算法的结果不易解读的问题,还有很多工具包可以实现对主题模型结果的可视化,方便使用者进行探索:pyLDAvis是比较常用的可视化软件包;另一款可视化软件包TOM_lib也独具特色。


了解到这些背景知识后,再来看提出的问题,我们就知道主题模型的方法具有通用性,只要文本的数量足够多,就可以尝试。当然,对中文的文本,特别是cText这样古汉语进行主题模型分析,需要首先完成比较复杂的中文分词的预处理过程,这个结果的好坏,会影响最终主题模型的可读性。有学者对典籍进行过主题模型的研究,可以找王小红等人于2018年在《自然辩证法通讯》上发表的《人文知识发现的计算机实现:对“汉典古籍”主题建模的实证分析》一文来学习。CBDB是一种关系型数据库,海量文本不是它的重点,所以主题模型不是发挥其价值的好选择。


我在2019年清华大学的报告中提到的文本分析平台,还在筹备上线的过程中。不过,不论在研究文学作品时使用情感分析,还是其他NLP的算法,在结果没有被合理解释之前,不过是统计数字或者漂亮的可视化图表而已。要做数字人文的研究,实际上存在不同的推进维度,可以偏重方法论,比如将主题模型的算法不断完善;也可以思考如何将主题模型的算法落实到具体研究。当你发现自己不太理解人文学科的思维模式时,你可以去找一个文学研究者聊一聊,问问TA有什么样的研究需求;你甚至可以诱导TA某个算法非常有趣,能帮助人文学者做研究,然后让TA去发现统计数字背后的学理逻辑。这不是“分界线”的问题,而是我们作为研究者找准定位的问题。这个问题其实是一个灵魂拷问,什么是好的数字人文研究?对这个宏大问题思考,在2019年《澳门理工学报》有一组文章做过相关讨论,可以找来读读。

提问者:孙绍丹


王老师,您好,很荣幸可以借着“零壹”平台请教您相关问题。您回应的内容相当精彩,很受用,还想要在此基础上向您请教下有关国外主题建模的应用情况。

 

MALLET这个包在国外DH主题建模的案例应用中很广泛,有一些培训课程,我试用了下,对中文的支持不是很友好,您在研究中尝试过此库的使用吗?

 

另外国外很多DH学者探讨过人文领域的主题建模问题,Journal of Digital Humanities期刊专门一期在论述这个问题,不过时间略微早些,在2012年。“Mining the Dispatch”项目也是使用MALLET进行主题建模,探索里士满内战的社会和政治生活。“TOPIC MODELING MARTHA BALLARD’S DIARY”项目也同样使用了MALLET主题建模。当然还有一些其他的项目,不过这些项目的开展时间也在2010年左右,国外在这个问题的探讨上似乎更早一些,国内这样的探讨并不多见,(当然,您的两篇LDA文章都拜读过,很有启发。)您认为国外早期的这些DH主题建模项目的尝试,对国内的研究有哪些启示,或者说我们是否可以从中借鉴一些研究范式?

回答者:王涛

图灵机|主题建模有什么用?

MALLET是一个很好用的软件包,对于没有编程基础的研究者而言,是非常好展开主题模型研究的选择。不过,由于MALLET开发得比较早,而且主要是面向西文文本,所以对中文的支持不是特别好。不过,或许可以尝试把已经做好中文分词的文本导入MALLET,说不定能够得到不错的结果。这只是我个人的想象,没有实践过,不敢保证有效性。由于我自己的研究是德国历史,所以在刚刚开始接触数字人文的时候,用过MALLET。但是,MALLET比较大的问题是,导出的结果没有进行可视化,解读起来比较费时间。后来,我在学会编程后,就转而使用pyLDAvis这样的软件包了。


国外在主题模型方面的研究比较早,特别是在人文学科领域,有很多应用的实践案例,涉及了许多学科领域,不同的文本。但这样的研究同质化的倾向非常明显,基本的套路是用主题模型的方式远读海量的文本,然后对输出的结果做一番解释。从传统人文研究的角度,其实价值不是特别明显。这是我们后续的研究需要避免的。


据我所知,有一些涉及主题模型的研究,在讨论非常细节的话题,比如提高算法的准确度,讨论主题模型参数K(主题的个数)的最优解等。这些研究有非常显著的技术导向,但也是非常重要的。


我认识一位在德国维尔茨堡大学攻读博士的留学生。他叫杜可立,他的博士研究课题就是主题模型,讨论非常多的细节问题,比如主题模型中算法中各个参数的最优值等。他的研究,应该代表了主题模型在数字人文领域的最新成果。

END

主编 / 徐力恒 陈静

责编 / 马戎千

美编 / 马戎千