我想使用Blei等人的动态主题建模。 (http://www.cs.columbia.edu/~blei/papers/BleiLafferty2006a.pdf)获得近3800件专利文件的大型语料库。有没有人在gensim包中使用DTM的经验?我确定了两种型号:
你使用哪一个,如果你同时使用两个,哪一个“更好”?换句话说,你更喜欢哪一个?
这两个包都可以正常工作,而且功能相同。您可能想要使用哪一个取决于您的用例。每个模型带来的功能差异很小,命名上的差异很小,这可能有点令人困惑,但对于大多数DTM用例,你选择的并不重要。
模型输出是否相同?
不完全是。然而,他们非常非常接近于相同(98%+) - 我相信大多数差异来自对生成过程中概率的略微不同的处理。到目前为止,我还没有遇到过小数点后第六位或第七位的差异具有任何重要意义的情况。解释模型发现的主题不仅仅是一个版本,因为某个单词的主题加载次数为0.00002
两个模型之间的巨大差异:dtmmodel
是来自blei-lab的原始C ++实现的python包装器,这意味着python将运行二进制文件,而ldaseqmodel
完全用python编写。
为什么要使用dtmmodel?
为什么要使用ldaseqmodel?
import
语句与下载二进制文件)sstats
- 与LdaMulticore
一起使用我主要使用ldaseqmodel
,但这是为了方便。但是,本机DIM支持很棒。
你该怎么办?
比如说,在一个小样本集上尝试每一个,看看模型返回的是什么。 3800文件不是一个庞大的语料库(假设专利不是每个数百页),我认为在预处理(删除停用词,图像和元数据)后,你的字典也不会太大(许多标准短语和专利中的法律术语,我假设)。选择最适合您的或具备您需要的功能。
完整分析可能需要几个小时,如果你让你的代码在一夜之间运行,那么实际上没什么区别,毕竟,你是否关心它是否在凌晨3点或凌晨5点结束?如果运行时很关键,我会假设dtmmodel
会更有用。
对于实现示例,您可能需要查看这些笔记本:ldaseqmodel和dtmmodel