5.3 LDA主题模型
主题模型尝试解答下面两个基本问题:
- 如何确定一个词语是否属于特定主题;
- 文档中一个主题出现的频率。
一种称为Gibbs sampler的LDA主题建模比其他模型更快,在处理大型语料库时非常有用。吉布斯抽样是一种马尔可夫链蒙特卡罗(MCMC)算法。虽然复杂,但它近似分布,然后关联马尔科夫链样本,并用于统计推断技术。实际上,主题建模算法就是这样做的,通过抽样来推断单词的分布,从而推断文档中的主题。抽样会降低准确度但增加模型中采样迭代的次数会趋于稳定的结果。
主题建模的R包,包括topicmodels、irlba和textmineR。
案例:使用来自《卫报》的文章作为语料库,进行一些主题建模,以创建主题模型的交互式可视化和表示文章的极性、主题和大小的树形图。具体步骤:
- 问题定义和具体目标。《卫报》如何对有关巴基斯坦的文章进行优先排序?
- 确定需要收集的文本。这个语料库是使用报纸的API从GuardianR包中收集的,包含卫报2015年11月14日至2015年12月1日期间所有提到巴基斯坦的文章。
- 文本的组织。按时间顺序组织文章,使用常见的和新的字符操作函数进行文本清洗。
- 特征提取。lda包提供了一个名为lexalize的新函数,用于捕获文档级信息。(与DTM和TDM对比)
- 分析。创建一个主题模型,动态可视化,创建一个树形图。
- 见解或建议。根据观察到的主题对文章进行分组。
library(tm)
library(qdap)
library(lda)
library(GuardianR)
library(pbapply)
library(LDAvis)
library(treemap)
library(car)
options(stringsAsFactors = F)
#Step2.读取数据
text<-read.csv("E:/Rdata/text_mining-master/Guardian_articles_11_14_2015_12_1_2015.csv"