【问题标题】:What is estimate function in topic modeling using mallet library什么是使用槌库进行主题建模的估计函数
【发布时间】:2015-01-02 08:29:39
【问题描述】:

我是主题建模的新手,我正在尝试使用 Mallet 库,但我有一个问题。

我正在使用 LDA 的简单并行线程实现来查找某些实例的主题。我的问题是ParallelTopicModel 中的估计函数是什么?

我在API 中进行了搜索,但没有描述。我也读过this tutorial

谁能解释一下这个函数是什么?

编辑

这是我的代码示例:

 public void runModel(Sting [] str){    
    ParallelTopicModel model = new ParallelTopicModel(numTopics);
    ArrayList<Pipe> pipeList = new ArrayList<Pipe>();
    // Pipes: lowercase, tokenize, remove stopwords, map to features
    pipeList.add(new CharSequenceLowercase());
    pipeList.add(new CharSequence2TokenSequence(Pattern.compile("\\p{L}[\\p{L}\\p{P}]+\\p{L}")));
    pipeList.add(new TokenSequence2FeatureSequence());
    InstanceList instances = new InstanceList(new SerialPipes(pipeList));
    instances.addThruPipe(new StringArrayIterator(str));

     model.addInstances(instances);
     model.setNumThreads(THREADS);
     model.setOptimizeInterval(optimizeation);
     model.setBurninPeriod(burninInterval);
     model.setNumIterations(numIterations);
     // model.estimate();
 }

【问题讨论】:

  • 您的标记正则表达式有点奇怪。首先,\p{L}(小写字符)是\p{P}(可打印字符)的子集,所以[\p{L}]p{P}] 与@987654328 相同@。其次,如果您的所有字符都是可打印的,那么每个文档只会得到一个标记(它从第一个小写字母开始,到最后一个字母结束)。

标签: java lda topic-modeling mallet


【解决方案1】:

estimate() 运行 LDA,尝试根据您已经设置的数据和设置来估计主题模型。

查看the ParrallelTopicModel sourcemain() 函数,了解估计模型所需的灵感。

【讨论】:

  • 我已经根据数据和设置创建了一个模型。当我调用估计函数时,结果是 8 秒时的一些主题。当我不调用估计函数时,结果是 3 秒时的一些主题。调用估计函数有什么区别?
  • 如何“根据数据和设置创建模型”?你到底做了什么?
  • 估计函数估计主题模型。你在调用它之前得到的主题是随机的初始分配。
  • 是的,它为推理算法运行 Gibbs Sampling 方法,这需要一个初始步骤来将单词随机分配给不同的主题。之后的迭代会根据优化函数细化分配。
猜你喜欢
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 1970-01-01
  • 2018-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-09-11
相关资源
最近更新 更多