8.3.1 基于quanteda和topicmodels包的主题模型分析
本节以quanteda包中自带的一段关于乔·希金斯辩论的长文本为例。
首先,对文本数据进行分词,并构建文档特征矩阵,对应代码如下:

数据准备好之后,再进行LDA分析就较为简单了,只需要调用topicmodels包的LDA()函数进行主题模型分析即可,这里设置主题数k为4,对应代码如下:

我们可以通过get_terms()函数查看每个主题下的词项,参数k值为每个主题下显示的词项的个数,示例如下:

LDA主题模型能够输出文本的主题分布以及每个主题下的词项分布,分别如图8-4、图8-5所示。查看LDA主题模型返回的结果,可以发现模型的主题分布在gamma中,词项分布在beta中(beta中为每个主题的词项分布的对数参数)。

图8-4 主题分布

图8-5 词项分布
如果想要知道每个词项属于不同主题的概率,可以通过tidytext包中的tidy()函数对输出的模型进行主题提取,示例如下:


接下来,对每个主题下概率最高的5个关键词进行提取,并通过条形图的形式进行直观展示(如图8-6所示),示例如下:


图8-6 LDA主题模型输出的主题分布