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的主要内容,如果未能解决你的问题,请参考以下文章