1

我正在使用 gensim 的包在语料库上实现 LSI。我的目标是找出语料库中出现频率最高的不同主题。

如果我不知道语料库中的主题数量(我估计在 5 到 20 之间),那么设置 LSI 应该搜索的主题数量的最佳方法是什么?寻找大量主题(20-30)还是少量主题(〜5)更好?

4

2 回答 2

4

来自拉迪姆本人:

这是一个很好的问题,但不幸的是没有一个好的答案。

增加维数总能提高检索准确度是不正确的。事实上,如果你使用所有维度(=训练矩阵的满秩),LSI 会为你提供与你输入的完全相同的文档,因此 LSI 将变得毫无意义。

如果您对它的数学方面感兴趣,请查看此问题:https ://github.com/piskvorky/gensim/issues/28 否则,只需将尺寸设置为几百~千,这是公认的标准。或者尝试几种不同的选择,测量准确性并选择最适合您的问题的维度。

最好的,拉迪姆

于 2014-11-10T06:29:10.023 回答
0

这就是我有时迷茫时会做的事情。由于您已经将主题范围缩小到 5-20,因此您可以对其中一些值进行黑白迭代,并查看哪个值最适合。

##Declare values for N_TOPICS
for i in lda.show_topics(topics=-N_TOPICS, topn=20, log=False, formatted=True): 
  print "TOPIC {0}: {1}\n".format(count, i) 
于 2014-11-10T06:34:11.080 回答