这段时间对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的更多相关文章

  1. LDA主题模型三连击-入门/理论/代码

    目录 概况 为什么需要 LDA是什么 LDA的应用 gensim应用 数学原理 预备知识 抽取模型 样本生成 代码编写 本文将从三个方面介绍LDA主题模型--整体概况.数学推导.动手实现. 关于LDA ...

  2. LDA的Python实现源码

    #-*- coding:utf-8 -*- import logging import logging.config import ConfigParser import numpy as np im ...

  3. LDA( Latent Dirichlet Allocation)主题模型 学习报告

    1     问题描述 LDA由Blei, David M..Ng, Andrew Y..Jordan于2003年提出,是一种主题模型,它可以将文档集中每篇文档的主题以概率分布的形式给出,从而通过分析一 ...

  4. 关于LDA的几何表示——MATLAB实现

    承接这个PCA的练习,还有一个关于LDA的几何表示. 题目如下: 代码实现LDA如下:LDA.m clear clc % 生成training sample MU1 = [6 10]'; MU2 = ...

  5. Gensim LDA主题模型实验

    本文利用gensim进行LDA主题模型实验,第一部分是基于前文的wiki语料,第二部分是基于Sogou新闻语料. 1. 基于wiki语料的LDA实验 上一文得到了wiki纯文本已分词语料 wiki.z ...

  6. [综] Latent Dirichlet Allocation(LDA)主题模型算法

    多项分布 http://szjc.math168.com/book/ebookdetail.aspx?cateid=1&&sectionid=983 二项分布和多项分布 http:// ...

  7. LDA(文档主题模型)

    LSA latent semantic analysis 映射词-文档到一个低维隐语义空间 比较词和文档在低纬空间的相似性 topic 是 Vocab 上的概率分布(符合多项式分布) 文档到主题的一个 ...

  8. LDA 资料整理

    LDA 中文名叫 隐含狄利克雷分布 有一个讲的数学八卦的pdf,如下: http://pan.baidu.com/s/1bnX6Pgb Latent Dirichlet Allocation(LDA) ...

  9. 线性判别分析算法(LDA)

    1. 问题 之前我们讨论的PCA.ICA也好,对样本数据来言,可以是没有类别标签y的.回想我们做回归时,如果特征太多,那么会产生不相关特征引入.过度拟合等问题.我们可以使用PCA来降维,但PCA没有将 ...

随机推荐

  1. 【刷题笔记】LeetCode 606. Construct String from Binary Tree

    题意 给一棵二叉树,把它转化为字符串返回.转化字符串的要求如下: 1.  null 直接转化为  () ;(这个要求其实有点误导人~) 2. 子节点用 () 包裹起来:(这是我自己根据例子添加的要求) ...

  2. 编写高质量的Makefile

    源地址 :http://blog.csdn.net/maopig/article/details/6801749 一.前言 回想自己的第一个Makefile,是这个样子的 CODE hello:hel ...

  3. SparkSQL 与 Spark Core的关系

    不多说,直接上干货! SparkSQL 与 Spark Core的关系 Spark SQL构建在Spark Core之上,专门用来处理结构化数据(不仅仅是SQL). Spark SQL在Spark C ...

  4. vue中使用Ueditor编辑器 -- 1

    一.   下载包: 从Ueditor的官网下载1.4.3.3jsp版本的Ueditor编辑器,官网地址为:http://ueditor.baidu.com/website/download.html ...

  5. JS中innerHTML/outerHTML和innerText/outerText以及value 的区别与使用

    value value:value是表单元素特有的属性,输入输出的是字符串 如下面的例子,获取到的是他们的value值 <input type="text" id=" ...

  6. Typescript 模拟实现 多继承

    class Animal{ eat():void{ alert("animal eat"); } } class Mamal extends Animal{ breathe() : ...

  7. iOS11访问相册权限变更问题

    手机升到iOS 11后  发现之前正常的图片保存功能无法正常使用  会闪退 经测试发现应该是权限没有开启的原因  但是NSPhotoLibraryUsageDescription已经写入plist   ...

  8. Eclipse中使用GIT更新项目

    GIT更新项目: 右击项目——Team——Pull:

  9. Django配置MariaDB数据库

    Django中配置MariaDB数据库.配置文件如下: DATABASES = { 'default': { 'ENGINE': 'django.db.backends.mysql', 'NAME': ...

  10. webpack初识(biaoyansu)

    1.是什么和为什么 在浏览器中的js之间如果需要相互依赖 src=a.js src=b.js src=c.js src=d.js 需要暴露出全局变量,而暴露出的这个全局变量是非常不安全的, 随着Nod ...