6

我试图检查 BOW 语料库与 LDA[BOW 语料库] 的内容(由在该语料库上训练的 LDA 模型转换,例如 35 个主题)我发现以下输出:

DOC 1 : [(1522, 1), (2028, 1), (2082, 1), (6202, 1)]  
LDA 1 : [(29, 0.80571428571428572)]  
DOC 2 : [(1522, 1), (5364, 1), (6202, 1), (6661, 1), (6983, 1)]  
LDA 2 : [(29, 0.83809523809523812)]  
DOC 3 : [(3079, 1), (3395, 1), (4874, 1)]  
LDA 3 : [(34, 0.75714285714285712)]  
DOC 4 : [(1482, 1), (2806, 1), (3988, 1)]  
LDA 4 : [(22, 0.50714288283121989), (32, 0.25714283145449457)]  
DOC 5 : [(440, 1), (533, 1), (1264, 1), (2433, 1), (3012, 1), (3902, 1), (4037, 1), (4502, 1), (5027, 1), (5723, 1)]  
LDA 5 : [(12, 0.075870715371114297), (30, 0.088821329943986921), (31, 0.75219107156801579)]  
DOC 6 : [(705, 1), (3156, 1), (3284, 1), (3555, 1), (3920, 1), (4306, 1), (4581, 1), (4900, 1), (5224, 1), (6156, 1)]  
LDA 6 : [(6, 0.63896110435842401), (20, 0.18441557445724915), (28, 0.09350643806744402)]  
DOC 7 : [(470, 1), (1434, 1), (1741, 1), (3654, 1), (4261, 1)]  
LDA 7 : [(5, 0.17142855723258577), (13, 0.17142856888458904), (19, 0.50476192150187316)]  
DOC 8 : [(2227, 1), (2290, 1), (2549, 1), (5102, 1), (7651, 1)]  
LDA 8 : [(12, 0.16776844589094803), (19, 0.13980868559963203), (22, 0.1728575716782704), (28, 0.37194624921210206)]  

其中,DOC N 是来自 BOW 语料库的文档 LDA N 是该 LDA 模型对 DOC N 的转换

我将每个转换后的文档“LDA N”的输出理解为文档 N 所属的主题是否正确?通过这种理解,我可以看到像 4、5、6、7 和 8 这样的文档属于多个主题,例如 DOC 8 以各自的概率属于主题 12、19、22 和 28。

您能否解释一下 LDA N 的输出并纠正我对这个输出的理解,特别是因为在另一个线程HERE中 - Gensim 的创建者自己提到了一个文档属于一个主题?

4

1 回答 1

6

您对LDAfrom输出的理解gensim是正确的。您需要记住的是,它LDA[corpus]只会输出超过某个阈值(在初始化模型时设置)的主题。

这个document belongs to ONE topic问题是你需要自己做出决定的。LDA 为您提供给它的每个文档的主题分布*。然后,您需要决定具有(例如)50% 主题的文档是否足以使该文档属于所述主题。

(*) 再次你必须记住,它LDA[corpus]只会显示那些超过阈值的,而不是整个分布。您也可以使用访问整个发行版

theta, _ = lda.inference(corpus)
theta /= theta.sum(axis=1)[:, None]
于 2016-06-08T16:46:59.857 回答