我试图了解如何在mallet API中实现LDA主题模型。在ParallelTopicModel
类中,我可以看到一个名为typeTopicCounts
的2D int数组,它通过一些按位运算在buildInitialTypeTopicCounts()
方法中初始化,然后用于每个文档。我的问题是这个数组值意味着什么?只有我可以从源代码获得的信息是它被[特征索引,主题索引]索引。
答案 0 :(得分:0)
通过计算每个单词标记的主题的采样分布,主导了LDA的Gibbs采样的计算性能。主题模型的设置使得单词和主题之间的关系具有很多稀疏性。如果我们可以通过从一个单词到下一个单词尽可能多地保存计算并且只进行有意义的计算(比如不乘以零)来提高计算效率,那么我们可以获得大的加速。
每个单词类型在int
数组中都有一个typeTopicCounts
个数组。此数组中每个int
值的含义使用位移运算符编码 主题和令牌计数。计数是高位的,所以我们可以按计数对主题进行排序,而不需要#34;解包"整数。
此方法的教程中提供了幻灯片:
https://mimno.infosci.cornell.edu/slides/fast-sparse-sampling.pdf