LDA Topic Model Matlab 代码简介

来源:互联网 发布:整形网络咨询技巧 编辑:程序博客网 时间:2024/06/07 06:18

用Google搜索LDA topic模型代码似乎只有这个网址:http://psiexp.ss.uci.edu/research/programs_data/toolbox.htm

比较靠谱。师弟在用,我这里大概讲一下。主要的就是参数的意思。

主要的函数是:

GibbsSamplerLDA( WS , DS , T , N , ALPHA , BETA , SEED , OUTPUT );

参数主要有WS,DS,T,剩下的都是一些不关键的数据。

WS表示的是Word的分布,DS表示的是Document的分布

假设我们有词典里面有8000个单词。

WS是一个1*10000的向量,那么WS里面min为1,max就是8000.

同样的DS也是一个1*10000的向量,这里的min为1,max表示的就是document的数量。

WS和DS是一一对应的,假设WS(1,9)=389,DS(1,9) = 103.

表示的就是第389个单词在第103个文档里面。

T表示的最终提取的Topic的个数。N是迭代次数,剩下的参数我们选择默认的就可以。


这样输出的结果是WP,DP,Z。

WP表示的是word和topic之间的关系,我们可以说是概率分布。

DP表示的是document和topic之间的关系,或概率分布。

Z是什么我还真没分析出来,知道的同学可以告诉我。


怎么得到最好的topic分布呢。

如果你的T,也就是topic数量设为50,那么WP就是一个8000*50的矩阵。

8000就是上面说的单词,WP(i,j)表示的就是第i个单词在第j个topic里面的权重。

所以我们就可以根据这个权重来排序,从而得到每个topic里面的单词。

例如我们去WP(:,j)这一列表示的就是对于第J个topic。每个单词的权重,

按照降序排列,我们再取前10个单词,于是就得到了topic J。

具体的概率计算可以参考函数:

WriteTopics( WP , BETA , WO , 10 , 0.7 , 4 , 'topics.txt' );



0 0
原创粉丝点击