【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写的,变量命名采用数学符号,而不是很直观的描述型符号,不容易看懂。甚至在工作中,训练出结果之后,我总要对照着它的说明文件,才能反应过来每个结果文件都对应着什么。

3. “GibbsLDA++-0.2”将词表的提取和模型本身的训练放到一起了。这对于小规模的训练还可以,扫描一遍训练集就把此标题取出来、然后在内存里继续训练。不过对于稍大一点儿的规模,每次训练都抽取一遍词表是很傻的事情,而且很多问题中,训练集不见得能够涵盖词表中的所有词......总之,我把他们分开了。要有一个预处理过程(我没写)先从训练集合中抽取词表,然后和训练样本一起输入到模型当中,参与训练。

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

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


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


完。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值