[补遗]零基础小白使用LDA模型

 

一.输入解读:


-est -alpha 0.5 -beta 0.1 -ntopics 70 -niters 2000 -savestep 1000 -twords 15 -dfile 2.nohtml.nospace.seg.cn.nospace

这是我用LDA训练模型时使用的参数,以下为各参数的解读。

 


-est


表示
进行模型估计;另外还有两个可选的为-estc继续估计;还有一个-inf为利用训练好的模型来估计新文档。




-alpha 0.5 -beta 0.1 


这个两个参数涉及了很多看了就头大的公式,直观上比较好理解的引用梁斌penny的说法其中α,大家可以调大调小了试试看,调大了的结果是每个文档接近同一个topic,即让p(wi|topici)发挥的作用小,这样p(di|topici)发挥的作用就大。其中的β,调大的结果是让p(di|topici)发挥的作用变下,而让p(wi|topici)发挥的作用变大,体现在每个topic更集中在几个词汇上面,或者而每个词汇都尽可能的百分百概率转移到一个topic上。


就我个人而言,因为不知道怎么用。所以一直都是选用的0.50.1这两个。


GibbsLDA++的文档中说明了alpha默认使用topic数目除以100.




-ntopics


主题数。一开始比较让我费解的一个问题是这个主题数指的是输入的每一个文档的主题数目还是所有文档组成的整个语料库的主题数目。后来经过王利锋Fandy耐心指导,有了粗浅的认识。这里的主题数目是指整个输入的语料库的主题数,而后对少量文档进行inf的时候,尽管也会按照那么多的主题数进行推断。但是在输出文件.theta会有一个主题文档的分布,我们可以看到这是一个稀疏矩阵,有很多近似于0的数据。只有非零的那几个才是inf的文档的真实主题。因此我们大概可以推测说LDA模型即是用尽可能多训练数据产生尽可能多的主题,如果能够覆盖世界上所有主题,那么inf的结果是最接近真实的那个。所以训练的数据越大越好。

继续阅读[补遗]零基础小白使用LDA模型