本小节我们介绍一款用于主题建模的开源工具,并通过具体实例说明了如何使用该工具对一组文献集实施主题分析。斯坦福大学研发的主题模型工具包(Stanford Topic Modeling Toolbox,TMT)是一款基于Java的主题模型工具(http://nlp.stanford.edu/software/tmt/tmt-0.4/),它是斯坦福自然语言处理软件的一部分。TMT的当前版本是0.4版,适用于想对自己的数据集做主题建模的非技术人员使用。TMT能接受tsv和csv文件,并能很好地兼容电子表格程序(如微软的Excel)。尽管TMT可以支持运行包括LDA、labelled LDA以及PLDA在内的多种主题模型,但是它不支持Author-Topic模型或者Author-Conference-topic模型。Mallet(http://mallet.cs.umass.edu/)提供运行LDA、Pachinoko LDA和hierarchical LDA模型的工具包。在David Blei的主页(http://www.cs.princeton.edu/~blei/topicmodeling.html)有各种LDA模型的代码。
运行TMT之前,需要安装以下支持软件:
(1)通用的文本编辑器,如NotePad,用于创建TMT处理脚本;
(2)Java 6SE,或者更高版本的Java。
在TMT软件的运行平台环境完善后,用户可以从TMT(http://nlp.stanford.edu/software/tmt/tmt-0.4/tmt-0.4.0.jar)主页下载TMT的执行文件。双击文件打开工具箱或者在命令行运行java-jar tmt-0.4.0.jar(见图11.2)就能看到TMT简洁的用户界面。
图11.2 TMT的欢迎页面
在用户界面上有一个选项可以用来命名一个CSV文件或者TSV文件。为了演示如何基于TMT的主题模型分析科研文献数据集,我们在Web of Science上下载了1990—2013年发表在Journal of the American Society for Information Science and Technology(JASIST)上的2534条文献记录。这个数据集是可以开放获取的,其获取地址是http://informatics.yonsei.ac.kr/stanford_metrics/jasist_2012.txt。
图11.3是用Microsoft Excel打开的JASIST输入数据。在TMT的用户界面点击文件菜单栏,选择“Open script...”,把数据集加载到TMT里。
如果数据集成功加载,如图11.4所示,在下面能看到这样一条信息:“Success:CSVFile(“JASIST-oa-subset.csv”)contains 2534 records”。
首先,准备输入数据。前面提到,可以从CSV文件输入数据集。数据集一旦加载到TMT里,TMT自带的Scala脚本将来自文件的一列文本转换成单词序列。为达到这一目的,必须运行TMT自带的脚本程序;运行前,要求对脚本有基本的理解。图11.5是脚本的一部分。
图11.3 TMT所使用的JASIST输入数据
图11.4 加载示例数据集后的执行结果
第12行的程序代码显示,TMT被告知使用第1列中的值作为记录的ID,它是文件中每条记录的唯一标识符。如果你的记录ID在其他列,那么把第12行的“1”改成相应的列号。
识别了ID后,必须执行tokenizatin(见图11.5第14~19行)。SimpleEnglishTokenizer类(见图11.5第15行)用来去掉单词结尾的标点符号,然后用空白字符分隔输入文本。CaseFolder(见图11.5第16行)用来把每个单词的大写字母换成小写字母。接下来,WordsAndNumbersOnlyFilter(见图11.5第17行)用来去掉那些只有标点符号的单词以及全部字符既非字母又非数字的单词。最后,MinimumLengthFilter(见图11.5第18行)用来去掉那些少于3个字符的词条。
定义了标记符号(见图11.5第14~19行)后,就用它在CSV文件中相关的列提取文本。如果你的文本数据都在一列里,例如图11.5第4列,第21~29行就是处理这一过程的编码:source~>Column(3,4)~>TokenizeWith(tokenizer)。之后,第25~29的功能就是只保留有意义的单词。上述代码用于删除那些在少于4篇文献中出现的词条(见图11.5第26行),并列出了文献集中30个最常用的单词(见图11.5第27行)。DocumentMinimum LengthFilter类(5)用来删除长度短于5的文献。
图11.5 将文本转换成单词序列的Scala代码片段
接下来,需要设置相应的参数训练LDA模型(第37~47行)。
第一步,如K-means聚类算法一样,需要预先设定主题的数量。在图11.6的代码截图中,除了主题的数量,为了建立主题模型,用于平滑词条和主题的LDA模型的参数需要预先设定。第35行、第36行的LDAModelParams构造器用来设定这些参数:TermSmoothing设为0.01,TopicSmoothing设为0.01。第二步,训练模型,拟合文献。TMT支持多种用于大多数主题模型的推理技术,包含使用Collapsed Gibbs Sampler(Griffiths,Steyvers,2004)或者Collapsed Variational Bayes Approximation达到LDA目标(Asuncion et al.,2009)。上述例子(见图11.6)中使用了Collapsed Variational Bayes Approximation(见图11.6第44行)。
图11.6 学习主题模型代码的片段
为了学习主题模型,可使用TMT用户图形界面运行脚本“example-2-lda-learn.scala”。主题模型在训练时输出状态信息,把生成的模型写入当前目录下的文件夹,本例中,文件夹命名为“lda-59ea15c7-30-75faccf7”,如图11.7所示。根据数据集的大小,此过程可能需要几分钟。
成功完成对主题模型的学习后,模型输出名为“lda-59ea15c7-30-75faccf7”的文件夹。如图11.8所示,文件夹包含用于分析学习过程以及可经过读取硬盘将模型加载回来的文件:description.txt,document-topic-distributions.csv.gz,tokenizer.txt,summary.txt,termindex.txt和topic-term-distributions.csv.gz。Description.txt文件用于描述保存在文件夹中的模型,而document-topic-distributions.csv.gz是一个包含数据集里每个文献的主题分布的CSV文件。Tokenizer.txt文件包含用于标记文本的标记器。Summary.txt是有关主题模型的总结,附有各个主题的前20个热点词条。Termindex.txt将文献集合中的词条与ID号对应起来,topictermdistributions.csv.gz含有每一个主题的各个词条的概率。
(www.daowen.com)
图11.7 运行学习主题脚本后的输出信息
图11.8 学习主题模型的输出文件夹
接下来的一段代码用于分隔主题模型的结果(见图11.9)。图11.9的一段代码来自“example-4-lda-slice.scala”脚本。此段代码包含的技术有助于检验每个数据片段是如何使用主题的,数据片段是指与一个或多个元数据项(如年、作者、期刊)相关的数据的子集。如前所述,从硬盘里将模型重新加载(见图11.9第26~30行)。在本章所使用的数据样本中,可从第2列找到每篇文献发表年所属的时间段,时间片段是用于拆分数据集的分类变量。图11.9中第32~37行的代码用于加载训练过程中生成的每篇文献的主题分布。从第42~58行可以看出每段数据中主题的使用情况。第49行的代码QueryTopicUsage用于打印与各个主题相关的文献及单词数量。此外,第57行生成各组中与每个主题最相关的单词。generatedsliced-top-terms.csv文件用来判断主题在各个子组里的使用是否一致。
图11.9 主题模型输出结果分区的代码片段
X轴表示时间段,以计数值为值,以主题为图例。脚本“example-4-lda-slice.scala”生成的3个CSV文件(document-topicdistributions.csv,JASIST-oasubset-sliced-top-terms.csv和JASIST-oasubset-sliced-usage.csv),将其直接输入到Microsoft Excel表格里,对主题模型的结果进行可视化以便于理解,绘制及操控主题模型的输出结果。文件JASIST-oa-subset-sliced-usage.csv的第1列是主题ID,第2列是“年”,第3列是每个数据片段里与各主题相关的文献总数,第4列是每个数据片段里与各主题相关的单词总数。
图11.10给出了几个有趣的结果。第一,有几个主题表现出持续增长的研究趋势(主题1、3、4、7、8和9),这些主题为信息源、信息计量学、信息网络、信息科学以及信息结构。第二,主题“信息检索”的研究曲线呈波动模式(即1995—1999年处于下降期,2000—2004年处于增长期,之后又进入下降期)。用户研究(主题2)曲线在1995—1999年和2000—2004年处于增长期,之后略有下降。信息计量学(主题3)曲线及信息网络(主题4)曲线走向类似。随着互联网时代的到来,信息计量学及信息网络成了JASIS(T)期刊研究的流行话题。数字图书馆(主题5)曲线直到2004年都处于增长期,随后开始下滑。
图11.10 分区结果图
表11.2列出了10个主题中每个主题的前20个主题词条。这些主题词条由TMT生成并保存在summary.txt文件中。
从主题模型的结果可以看出JASIS(T)的主要主题。另外,结果表明,过去20年主题“信息计量学”在JASIS(T)上占统治地位。
在将TMT运用到文献计量学研究时,主要存在以下几点局限性,首先,尚不清楚TMT使用哪些停用词表。在TMT提供的Scala脚本中,TermDynamicStopListFilter(30)选项用于设置停用词表,该命令用于删除最常见的30个词条。然而,TMT并不清楚这30个词条是什么以及如何更换它们。其次,TMT在进行大规模数据的过滤时有些力不从心。如果想要从上百万条记录中生成主题模型,需要把TMT扩展到MapReduce平台上。最后,Scala里的TMT前端开发,无法像Java中的后端开发一样提供丰富的功能。☞
表11.2 10个主题各自的20个主题词条
续表
续表
总结
最近主题模型在文本挖掘中的应用剧增,主要用于分析大量的非结构化文本数据。在众多主题模型算法中,LDA是最受欢迎的主题模型方法。LDA及其变型,如Hierarchical LDA和Labelled LDA应用于许多研究领域,如物理学、计算机科学、信息科学、教育学及生命科学。为了帮助文献计量学研究者使用LDA解决问题,本章对主题模型技术做了梳理,并一步一步地教读者利用相关数据集进行文献计量学研究。
我们讨论了如何使用TMT(斯坦福大学主题模型工具)将主题模型技术应用于现实世界的研究问题。Stanford TMT可用于以下几方面:(1)读取及修改Microsoft Excel的数据;(2)使用输入数据训练主题模型;(3)通过几步简单的操作选择参数(如主题数量);(4)生成CSV格式的输出文件以跟踪单词在不同主题不同时间的使用情况。
LDA模型可应用于主要数据格式为文本的任何学科领域。然而,LDA也面临着一些挑战。首先,目前存在的多种方式都可以标记主题(Mei,Shen,Zhai,2007),通常使用排名靠前且在各主题下出现概率较高的关键词标记主题。但是这些标签有时候不知所云,甚至有时候是矛盾的。由于LDA使用软聚类方法并且一个关键词可以在多个主题内出现,因此有些主题的标签是非常相似的。如何自动地给每个主题分配有意义的标签仍然是一个挑战。由于LDA是一种非监督的概率模型,并且生成的潜在主题的语义并不是都具有意义,因此LDA的评估也是一个挑战(Chang,Gerrish,Wang,Boyd-Graber,Blei,2009)。LDA假设每个文件可以描述成一组潜在主题,该主题是单词的多项式分布。Chang等(2009)发现获得较好perplexity值的模型,往往生成不易解释的潜在主题的数量也较少。使用Amazon Mechanical Turk之后,Chang等发现人们重视主题的语义连贯性,因此他们推荐将人的判断加入到模型匹配过程,作为增加主题意义的一种方式。
在本章中,我们使用Stanford TMT验证主题模型技术是如何有助于文献计量学研究的。如前所述,Stanford TMT有如下特点:①读取Microsoft Excel的CSV表格的数据;②使用LDA模型方法对文本数据集作总结;③设置训练LDA模型的参数,例如主题数量,每个主题的高频单词的数量,过滤最常见的单词,选择包含文本数据集的列;④拆分LDA主题模型的输出值,并将其转换成Microsoft-Excel兼容的输出格式,用Microsoft-Excel兼容格式的输出结果追踪跨主题、跨类别时单词的使用情况。在本章案例分析中,我们收集了1990—2013年收录在Web of Science数据库中JASIST发表的2534条记录作为数据源。借助主题模型工具,我们发现了隐藏的主题模式(该模式通过统计规则遍布于文献集合),并将该模式应用于文献计量学分析。在未来,我们会针对如何将引文网络和主题模型相结合进行探索研究,这将有助于识别被引文献与施引文献间的主题相似性。
【注释】
[1]M.Song,Department of Library and Information Science,Yonsei University,Seoul,South Korea,E-mail:min.song@yonsei.ac.kr;Y.Ding,Department of Information and Library Science,School of Informatics and Computing,Indiana University,Bloomington,IN,USA,E-mail:dingying@indiana.edu.
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。