R语言心理学与管理学文本分析入门指南--第三期:主题模型

学术   2024-08-21 11:00   北京  



在第一期和第二期中,我们系统介绍了关于文本分析的概念和相关的基础知识以及文本预处理相关知识。

心理学与管理学文本分析入门指南

R语言心理学与管理学文本分析入门指南--第二期:文本的预处理

本期的推文中,我们将着重主题模型这种文本建模方法。



















Part 1 什么是主题模型



主题模型是一种自然语言处理技术,用于从大量文本中提取隐藏的主题或概念。它能帮助我们理解文本的主要内容、分类文档或发现文档之间的关系。假设我们有一堆新闻文章,想知道这些文章主要谈论哪些话题,主题模型就是能够帮助我们自动发现这些话题的方法。每个话题由一组常见词组成,而每篇文章则由多个话题以不同的比例混合而成。

潜在狄利克雷分配(LDA) (Blei et al., 2003) 是最常用的主题模型。LDA可以看作是一种概率模型,它假设每篇文章由几个主题组成,每个主题由一组词组成。我们可以通过下面找个直观的例子来理解LDA模型:想象我们有一篮子不同颜色的球,每种颜色代表一个主题。每篇文章就是从这些篮子中随机挑选一些球,这些球的颜色组合代表了这篇文章的主题分布。每个主题篮子里又有不同颜色的球,每种颜色代表一个词,从一个主题篮子里随机挑选球,得到的就是文章中的词。

LDA模型的具体步骤包括准备工作、初始化和迭代更新。首先,我们有许多文档,每个文档是一个词的列表。然后,随机给每个词分配一个主题。接下来,通过不断调整每个词的主题分配,直到模型收敛,迭代更新的原则是根据其他词的主题分配和文档的主题分布来调整。最终,我们得到的结果是每篇文章的主题分布以及每个主题的词汇分布。

需要注意的是,这里的“每篇文章的主题分布”的意思是每篇文章由若干主题按一定的概率组成的。换句话说,每篇文章都可以表示为多个主题的混合,每个主题在该文章中出现的概率不同。这意味着每篇文章不是完全属于某一个单一的主题,而是包含多个主题的内容,每个主题的贡献有大有小。相应的,每个主题是由若干词汇按一定的概率组成的。具体来说,每个主题都有一个词汇分布,表示该主题中每个词出现的概率。这些概率反映了哪些词在该主题中具有代表性。



















Part 2 常用的主题模型有哪些类型



除了LDA之外,常用的主题模型还包括如下类别:

关联主题模型(Correlation Topic Model, CTM):Blei和Lafferty(2007)提出,它是LDA的扩展模型。CTM考虑了主题之间的关联性,通过引入共现关系来改善主题模型的表现。CTM假设主题之间存在某种相关性,这些相关性可以通过共现词语的统计来捕捉。CTM的主要特点是能够识别具有高度相关性的主题集群,适用于分析复杂文档集中的主题关系。

动态主题模型(Dynamic Topic Model, DTM):Blei和Lafferty(2006)提出,它扩展了LDA,通过时间维度捕捉主题的演变。DTM假设主题在不同时间段的分布会发生变化,从而能够分析随时间变化的文档集,揭示主题的动态变化过程。DTM的主要特点是能够捕捉主题的时间演变,适用于分析时间序列文本数据,如新闻报道和社交媒体数据。

结构化主题模型(Structural Topic Model, STM):Roberts et al.(2014)提出,它允许结合文档元数据(如时间、作者等)来分析主题的变化和影响因素。STM在LDA的基础上引入了元数据,通过将元数据作为协变量来影响主题的分布,从而更精确地捕捉主题与元数据之间的关系。STM的主要特点是能够处理复杂的文档集合和结构化信息,适用于需要结合元数据的高级文本分析。

词对主题模型(Biterm Topic Model, BTM):Yan等(2013)提出,专门针对短文本设计。BTM通过捕捉文本中的词对(biterm)来建立词汇共现关系,从而更有效地提取主题。与传统主题模型相比,BTM在处理短文本时表现更好,因为它能够利用词对共现信息来弥补短文本中词汇量不足的问题。BTM的主要特点是能够在短文本中有效地提取主题,适用于社交媒体分析、新闻标题分析等应用场景。

总之,这些主题模型各有特点,适用于不同类型的文本数据和研究需求。LDA和CTM适用于一般文本分析,DTM适合时间序列文本数据,STM能处理带有元数据的复杂文档,而BTM则专为短文本设计,适用于社交媒体和新闻标题等短文本分析。



















Part 3 在实现主题模型的过程中,需要注意哪些问题



在实现主题模型的过程中,有几个关键问题需要注意,以确保模型结果的有效性和可解释性。这些问题包括主题个数的选择、主题的命名和主题模型结果的解读。

首先,主题个数的选择是一个至关重要的步骤在潜在狄利克雷分配(LDA)等主题模型中,主题个数K通常需要在模型训练之前预先设定。选择过多的主题可能导致模型过拟合,生成许多冗余且难以解释的主题;选择过少的主题则可能导致模型欠拟合,无法充分捕捉文档集中的多样性(Griffiths & Steyvers, 2004)。为了确定最优的主题数量,可以采用交叉验证方法,通过在训练集和验证集上测试模型表现来选择最佳的K值。此外,信息准则如赤池信息量准则(AIC)和贝叶斯信息准则(BIC)也常被用来衡量模型的优劣,这些准则考虑了模型的复杂度和拟合度,提供了一个平衡这两者的方法。除了这些统计方法,领域专家的知识也非常关键。专家可以通过对初步结果的审查,判断主题的合理性和代表性,从而辅助确定合理的主题数量(Blei et al., 2003)。

其次,主题的命名是模型结果可解释性的重要组成部分。在模型训练完成后,每个主题会生成一组高频词汇。这些词汇代表了该主题的核心内容,主题的命名过程涉及根据这些高频词汇的语义关系为主题赋予一个简洁且具描述性的名称。命名不当的主题可能导致结果难以理解和应用(Chang, et al., 2009)。为了提高命名的准确性,可以结合人工审查和自动化工具,如词云和高频词汇可视化。人工审查允许研究者结合领域知识和上下文信息,更准确地捕捉主题的核心含义。自动化工具如词云可以直观展示主题中的高频词汇,帮助快速识别主题的主要内容。结合这两种方法,可以有效地命名主题,提高模型结果的解释性和实用性。

最后,主题模型结果的解读是实现主题模型的重要步骤。解读结果时,研究者需要关注每篇文档的主题分布和每个主题的词汇分布。文档的主题分布显示了文档由哪些主题组成及其权重,这有助于理解文档的主要内容和主题结构(Blei & Lafferty, 2007)。例如,一篇文档可能主要由“心理健康”和“社会互动”两个主题组成,通过观察这些主题的权重,可以了解文档的主要讨论内容。主题的词汇分布则展示了每个主题中的核心词汇,帮助研究者理解该主题的具体含义。例如,某个主题可能包含“焦虑”、“抑郁”、“治疗”等高频词汇,通过这些词汇可以推断该主题与心理健康相关。然而,解读结果时应注意模型的局限性,如词汇歧义和主题之间的重叠(Steyvers & Griffiths, 2007)。词汇歧义指的是同一个词在不同上下文中可能有不同的含义,这可能导致模型误判。主题之间的重叠则指的是不同主题可能共享一些高频词汇,这可能使得区分这些主题变得困难。结合定性分析和领域知识,可以更全面地理解和应用主题模型的结果。

在实际应用中,研究者还需要注意数据预处理和模型评估。数据预处理包括去除停用词、标点符号和低频词汇,以减少噪音数据对模型的影响。模型评估则包括使用困惑度(Perplexity)等指标衡量模型的性能。困惑度是一种常用的评估指标,反映了模型对新数据的预测能力,困惑度值越低,模型的预测能力越强。此外,研究者还可以通过定性分析,如对模型结果进行人工审查,进一步验证模型的合理性和准确性。

总之,主题个数的选择、主题的命名和主题模型结果的解读是实现主题模型过程中需要特别关注的三个关键问题。通过慎重处理这些问题,可以提高模型的准确性和解释性,从而更有效地利用主题模型进行文本分析。结合定性和定量方法,研究者可以全面理解文本数据中的主题结构,揭示隐藏的信息和模式。



















Part 4 主题模型能用来回答哪些心理学和管理学的研究问题



主题模型的核心优势在于其能够从大量的文本数据中自动提取出主要的主题和模式,这在管理学和心理学研究中都具有重要意义。应用主题模型能够在在心理学和管理学研究中回答许多类型的研究问题。它能够帮助研究人员和决策者从复杂的数据中获取有价值的洞察,提高研究的效率和效果。

在心理学中研究中,主题模型方法可用于回答心理健康与情感分析,社会认知与态度分析等主题的研究问题。

(1)主题模型可应用于心理健康与情感分析相关的研究中,用于情感状态的识别。例如,主题模型可用于分析患者的言语或文本记录(如日记、社交媒体帖子),以识别潜在的情感状态或心理健康问题。主题模型也可以应用于心理治疗中的话题变化。在心理治疗中,主题模型可以用于分析会谈记录,识别不同阶段的主题变化,从而帮助理解患者的治疗过程及效果。Coppersmith等(2014)通过分析Twitter数据,使用自然语言处理和主题模型技术来识别与心理健康相关的信号。作者证明了从社交媒体中提取的主题可以有效地识别心理健康状况,如抑郁和焦虑。Atkins等(2014)的研究进一步展示了主题模型在分析心理治疗对话中的应用。该研究使用了基于文本分类和主题建模的自动化方法,来评估动机性访谈的治疗过程。通过对大量治疗会话的分析,研究揭示了患者与治疗师互动中的话题变化,以及这些变化如何影响治疗效果。研究表明,主题模型能够在大规模数据集上有效地捕捉到话题的变化,这种能力可以帮助识别治疗过程中需要更多关注的话题,从而提高治疗的有效性

(2)主题模型也可应用于社会认知与态度分析研究。利用主题模型,研究人员可以对态度与意见进行建模,分析群体或个体在不同情境中的态度变化,例如对社会议题、政治观点等的态度分布。研究人员也可以开展群体动力研究,通过分析群体讨论中的主题分布,研究群体如何形成共识,或是如何在不同议题上出现分歧。Roberts等(2016)的研究探讨了如何通过主题模型来建模和分析人们的态度和意见,尤其是在处理大规模文本数据时的应用。他们使用潜在狄利克雷分布(LDA)等主题模型方法对大量的政治文本进行了分析,旨在捕捉和解释公众的态度和意见。研究表明,主题模型能够识别和区分文本中表达的不同态度和意见,为政治学家和社会科学家提供了分析公众情绪的有效工具。通过对意见和态度的主题建模,研究者能够更好地理解公众在特定议题上的立场以及这些立场随时间或事件变化的动态过程

在管理学研究中,主题模型可以应用于组织行为,市场分析和消费者行为,以及战略管理与竞争分析等主题的研究。

(1)在组织行为研究中,主题模型可用于组织文化和领导风格的分析。主题模型可以通过分析公司内部的通讯记录、报告或员工反馈,识别和理解组织文化的核心主题。这有助于管理层了解组织中的主流价值观、潜在冲突以及文化演变。主题模型也可以应用于对领导风格的分析。通过对领导者公开演讲、公司声明等文本的主题分析,可以揭示领导风格和决策模式,帮助理解领导对组织的影响。Schmiedel等(2019)基于在线平台Glassdoor上428492条财富500强公司的评论(员工可以在该平台上评估组织)展示了结构主题模型如何允许归纳识别对员工重要的主题并量化它们与员工对组织文化的看法的关系。Liu等(2022)使用结构主题模型分析了152家跨国公司的192封 CEO公开信来探讨企业领导者应如何应对COVID-19。结果表明,在这些信函中,CEO通过理解当前的危机情况并表达他们在应对挑战方面的自我效能和响应效能来表现出组织韧性。

(2)在市场分析与消费者行为研究中,通过主题模型可以识别消费者需求与趋势。通过分析客户评论、社交媒体讨论、产品反馈等,主题模型可以识别出市场上的热点问题和新兴需求,从而帮助企业调整产品和营销策略。主题模型同时还可以用于品牌形象与声誉管理研究。利用主题模型可以分析社交媒体、新闻报道中的品牌相关内容,识别出公众对品牌的主要看法及其演变趋势,帮助管理品牌形象。Tirunillai和Tellis(2014)基于在线聊天内容使用潜在狄利克雷分布(LDA)分析在线消费者评论,以识别市场趋势和品牌声誉。这项研究表明了主题模型在大规模市场数据分析中的有效性,并能够提供针对品牌管理的策略建议。

(3)在战略管理与竞争分析中,通过主题模型可以识别行业动态与竞争格局。通过分析行业报告、竞争对手的公开文件和新闻报道,主题模型可以帮助企业了解行业内的主要趋势和竞争格局,制定更具针对性的战略。主题模型还可以应用于创新管理与知识挖掘。在专利文献、学术文章和内部研发记录中应用主题模型,可以识别出技术创新的关键领域和未来发展方向,指导企业的研发投资和创新战略。Kapla和Vakili(2015)利用主题模型分析了专利文献,揭示了创新的关键领域和趋势。通过识别行业中的重要主题,研究者能够提供对战略管理的深刻见解,指导企业的创新战略




















Part 5 在R语言中有哪些包能实现主题模型



R语言中有多个包可以实现主题模型(Topic Modeling)。主题建模的核心是基于文档集合和一些给定的超参数(例如主题数量)对两个潜在变量(主题文档分布和主题术语分布)进行统计推断。如今R用户可以通过外部包从10多种主题模型变体中进行选择。表1提供了主题模型分析不同阶段可用的R包的汇总。


来源:Wiedemann(2022)


目前为止,ldatopicmodels都提供了主题模型在R中的实现,textmineR和text2vec中包含了两个较新的实现,它们都包含LDA算法在R中的高速实现。mallet包提供了一个快速、并行化的Java实现的包装器。与前面提到的包相比,mallettextmineR的优势在于可以自动和异步优化控制主题文档分布的LDA模型的alpha超参数。每个主题的异步alpha参数可以产生更稳定、更易于解释的主题。stm通过将文档作者或时间等协变量纳入建模过程来扩展基本模型(即结构主题模型STM)。通过使用谱聚类对主题进行默认初始化以及使用变分推理算法确定潜在变量,stm还可产生确定性建模结果,这对于LDA的可靠性问题而言是一个主要优势。rollingLDA包提供了一个有趣的选项来捕捉主题随时间的变化,该包绘制了后续时间段内主题词分布的变化。为了在探索性、归纳性研究之外使用主题建模,seededLDAkeyATM包提供了种子主题建模方法。这些模型变体允许将术语列表作为初始主题种子纳入,以指导推理过程,使其适合预定义的类别。特别是keyATM提供了非常成熟和快速的不同种子模型变体的实现,这些变体易于使用和评估。



下文将介绍三个常用的主题模型R包topicmodels, stmtextmineR的基本使用方法。


1. topicmodels

topicmodels是R中用于实现主题模型的最流行的包之一。它提供了多个主题模型算法,包括潜在狄利克雷分布(LDA)和潜在语义分析(LSA)。在topicmodels中使用LDA函数可以进行丰富的参数控制,允许调整模型的各个方面。读者可以使用以下代码安装和使用此包实现基本的主题模型。


# 安装包install.packages("topicmodels")

# 加载包library(topicmodels)

# 示例数据集data("AssociatedPress", package = "topicmodels")

# 训练LDA模型lda_model <- LDA(AssociatedPress, k = 5, control = list(seed = 1234))

# 查看结果terms(lda_model, 10)topics(lda_model, 5)


2. stm

另一个非常流行的主题模型的R包为stm,专门用于结构化主题模型(Structural Topic Models,STM)。这一方法允许将文档元数据与主题模型结合起来。stm包支持结构化主题模型,通过结合文档的上下文信息进行主题建模,并提供了预处理、模型训练和结果分析的一整套工具,还可以分析文档元数据对主题分布的影响。读者可以使用stm包中的stm函数实现主题模型分析。



# 安装包install.packages("stm")

# 加载包library(stm)

# 示例数据集data("gadarian", package = "stm")

# 预处理数据processed <- textProcessor(gadarian$open.ended.response, metadata = gadarian)

# 准备文档-词项矩阵out <- prepDocuments(processed$documents, processed$vocab, processed$meta)

# 训练STM模型stm_model <- stm(out$documents, out$vocab, K = 5, max.em.its = 75, data = out$meta, init.type = "Spectral")

# 查看结果labelTopics(stm_model, 4)


3. textmineR

textmineR包支持多种文本挖掘任务,同样也包括主题模型。此包提供了从文本数据创建文档-词项矩阵的功能,同时支持多种主题模型算法,还提供了丰富的可视化和分析工具。读者可以使用textmineR包中的FitLdaModel函数实现主题模型分析。



# 安装包install.packages("textmineR")

# 加载包library(textmineR)

# 示例数据集data("nih_sample")

# 创建文档-词项矩阵dtm <- CreateDtm(nih_sample$ABSTRACT_TEXT, doc_names = nih_sample$APPLICATION_ID, ngram_window = c(1, 1))

# 训练LDA模型lda_model <- FitLdaModel(dtm, k = 5, iterations = 200, burnin = 175)

# 查看结果lda_model$top_termslda_model$theta


正如前文所提到的,在主题模型构建之外,模型的评估和解读也是主题模型分析中的需要着重注意的问题。由于主题建模一方面受预处理步骤、模型本身的选择、主题数量和其他超参数的影响,另一方面受推理过程中随机过程的变化的影响,因此建模结果往往会因不同的参数设置和重复运行而有所不同。因此,始终需要仔细评估模型结果,并相应地优化建模参数。ldatuningtextmineRtext2vecstm包根据会若干评估标准(例如主题语义连贯性)为最佳主题数量提出建议,从而为研究人员提供支持。ldatuning包提供了多种评估指标,如Griffiths(2004)、CaoJuan(2009)、Arun(2010)、Deveaud(2014),可用于帮助选择LDA模型中的最佳主题数量。此包简单易用,能够快速得到最佳主题数量的建议。ldaPrototype可以处理主题模型推理的不确定性。为了避免随机结果的无效解释,它会从一系列重复推理中找到与所有其他模型距离最小的模型。然后可以将此模型解释为集合的代表性模型。在通过一些先前的方法确定最佳参数后,建议在模型选择过程的最后一步确定一个代表性模型作为最终模型。

在模型的可视化和解读方面,R也提供了一系列标准化验证程序和结果可视化访问的软件包支持。LDAvis是一个广泛采用的软件包,它通过2D 投影可视化主题的相似性,并通过交互式浏览器界面可视化每个主题的热门术语的份额和排他性。KeyATMSTM提供了几个绘图函数来创建其特定模型的可视化表示,这些模型结合了协变量或时间演变。对于应用于带有时间戳的文档集合的LDA模型,tosca提供了各种现成的图表,可以可视化主题随时间的变化。对于带有地理标记的Twitter数据,Twitmo提供了在地图上可视化某些主题的推文的功能。

总之,R提供了广泛的成熟软件包来执行主题建模研究的每个步骤。这些软件包易于使用,只需几行代码即可实现过去几年在文献中发表的复杂主题模型。




















参考文献



Blei, D. M., Ng, A. Y., & Jordan, M. I. (2003). Latent Dirichlet Allocation. Journal of Machine Learning Research, 3, 993-1022.
Blei, D. M., & Lafferty, J. D. (2007). A correlated topic model of Science. Annals of Applied Statistics, 1(1), 17-35.
Blei, D. M., & Lafferty, J. D. (2006). Dynamic Topic Models. Proceedings of the 23rd International Conference on Machine Learning, 113-120.
Chang, J., Gerrish, S., Wang, C., Boyd-Graber, J. L., & Blei, D. M. (2009). Reading Tea Leaves: How Humans Interpret Topic Models. Advances in Neural Information Processing Systems, 22, 288-296.
Coppersmith, G., Dredze, M., & Harman, C. (2014). Quantifying mental health signals in Twitter. Proceedings of the Workshop on Computational Linguistics and Clinical Psychology: From Linguistic Signal to Clinical Reality, 51-60.
Griffiths, T. L., & Steyvers, M. (2004). Finding scientific topics. Proceedings of the National Academy of Sciences, 101(Suppl 1), 5228-5235.
Grün, B., & Hornik, K. (2011). Topicmodels: an R package for fitting topic models. Journal of Statistical Software, 40(13), 1–30. http://www.jstatsoft.org/v40/i13/ [13.07.2022].
Jones, T., Doane, W., & Attbom, M. (2021). textmineR: Functions for text mining and topic modeling. Version 3.0. 5.
Kaplan, S., & Vakili, K. (2015). The double-edged sword of recombination in breakthrough innovation. Strategic Management Journal, 36(10), 1435-1457.
Liu, J., Hong, C., & Yook, B. (2022). CEO as “Chief Crisis Officer” under COVID-19: A Content Analysis of CEO Open Letters Using Structural Topic Modeling. International Journal of Strategic Communication, 16(3), 444–468.
Roberts, M. E., Stewart, B. M., & Tingley, D. (2014). Structural Topic Models for Open-Ended Survey Responses. American Journal of Political Science, 58(4), 1064-1082.
Roberts, M. E., Stewart, B. M., & Tingley, D. (2016). Navigating the local modes of big data. Computational Social Science, 51(91), 1-40.
Schmiedel, T., Müller, O., & vom Brocke, J. (2019). Topic Modeling as a Strategy of Inquiry in Organizational Research: A Tutorial With an Application Example on Organizational Culture. Organizational Research Methods, 22(4), 941-968. https://doi-org.vu-nl.idm.oclc.org/10.1177/1094428118773858
Steyvers, M., & Griffiths, T. (2007). Probabilistic topic models. In T. Landauer, D. McNamara, S. Dennis, & W. Kintsch (Eds.), Handbook of Latent Semantic Analysis. Mahwah, NJ: Lawrence Erlbaum Associates.
Wiedemann, G. (2022). The world of topic modeling in R. M&K Medien & Kommunikationswissenschaft, 70(3), 286-291.
Yan, X., Guo, J., Lan, Y., & Cheng, X. (2013). A Biterm Topic Model for Short Texts. Proceedings of the 22nd International Conference on World Wide Web, 1445-1456.


作者:Alex,大橙子

排版:代新宇





夏季工作坊|英文写作·配对数据·R语言·元分析·贝叶斯·日记法·Mplus·机器学习

(部分课程已停报,报名请联系邮箱:hpa201904@163.com)


重磅 | 20万字英文学术写作文库笔记正式发布

(赞赏90元,公众号后台发送支付截图+接收邮箱即可)



荷兰心理统计联盟
心理学与管理学研究者的共享学习平台:分享统计方法、软件操作、研究经验、写作发表,及就业求职资料!
 最新文章