LDA动手实现LDA

Posted liguangsunls

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LDA动手实现LDA相关的知识,希望对你有一定的参考价值。

这段时间对LDA比較感兴趣,尝试在工作中使用它。平时做想法的高速验证,都用的是“GibbsLDA++-0.2”,一个c实现版本号的LDA。

这两天用c++ stl自己写了一个单机版的LDA,初衷例如以下:

1. “GibbsLDA++-0.2”虽说号称是最popular的LDA工具包。只是依旧有明显的bug,參考“【LDA】修正 GibbsLDA++-0.2 中的两个内存问题”。

2. “GibbsLDA++-0.2”基本上使用纯c写的。变量命名採用数学符号。而不是非常直观的描写叙述型符号,不easy看懂。甚至在工作中。训练出结果之后,我总要对比着它的说明文件,才干反应过来每一个结果文件都相应着什么。

3. “GibbsLDA++-0.2”将词表的提取和模型本身的训练放到一起了。这对于小规模的训练还可以,扫描一遍训练集就把此标题取出来、然后在内存里继续训练。只是对于稍大一点儿的规模。每次训练都抽取一遍词表是非常傻的事情,并且非常多问题中,训练集不见得可以涵盖词表中的全部词......总之。我把他们分开了。

要有一个预处理过程(我没写)先从训练集合中抽取词表,然后和训练样本一起输入到模型其中,參与训练。

4. “GibbsLDA++-0.2”的无关代码太多了,如:解析命令行的代码、等等。实际上,比起命令行这样的方式。我更愿意直接使用源码。

5. 最重要一点原因,事实上我是手痒痒了。


代码放到git上面了:https://github.com/henryxiao1997/LDACplus/


完。

以上是关于LDA动手实现LDA的主要内容,如果未能解决你的问题,请参考以下文章

LDA(线性判别分析)的正确实现是啥?

使用 PyMC 实现潜在狄利克雷分配 (LDA)

动手实践用LDA模型计算两篇英文文档相似度

使用 gensim 了解 LDA 实现

python 实现lda

LDA 主题模型性能 - scikit-learn 的主题一致性实现