书接上回,我们在之前的三篇文章中,分别讲解了LDA的基本原理,LDA的Python实现以及LDA主题个数的选择和模型的可视化。在今天这篇文章中,我们来一起看看不同的LDA实现方法和以及目前LDA在学术界的现状(可能不是最新的技术,因为我也是学渣,哈哈哈哈哈)。
LDA作为2003年提出的技术,在现在看来,肯定存在一些问题的。传统的LDA模型中,使用词袋模型对文本建模,这种建模方式没有考虑到单词之间顺序的影响。‘我喜欢你’,‘你喜欢我’,这两句话在词袋模型中的表示是完全相同的,显然这是不合理的。词袋模型也只是考虑了词频的影响。但是,在实际情况中,‘自然语言处理’的频数一般很低,但是‘你’,‘我’,‘他’的频数很高,所以,使用词袋模型建模就会存在一些不合理的情况。那么在0202年,我们的科学家都想出了哪些解决办法呢?除了常规的LDA主题模型,还没有其他的模型生成方法呢?
使用Mallet和TF-IDF训练LDA模型
我们会使用两种不同的方式来实现LDA,分别是Mallet以及TF-IDF。我们会先使用Mallet实现LDA,后面会使用TF-IDF来实现LDA模型。
简单介绍下,Mallet是用于统计自然语言处理,文本分类,聚类,主题建模,信息提取,和其他的用于文本的机器学习应用的Java包。 别看听起来吓人,其实在Python面前众生平等。也还是一句话的事。就是下面这行代码了。gensim.models.wrappers.LdaMallet(mallet_path, corpus, 4, dictionary)
这里解释下m