Python 如何定义最佳主题数(k)?

Python 如何定义最佳主题数(k)?,python,python-3.x,gensim,Python,Python 3.x,Gensim,我想知道,这是最好的主题编号(k)为LDA提供给gensim,我已经找到了StackOverflow的答案。然而,我得到了下面提到的一个错误 下面是一个链接,指向我找到的最佳主题数量的推荐方法 当我尝试执行该代码时,出现以下错误: -> 1145 if num_topics < 0 or num_topics >= self.num_topics: 1146 num_topics = self.num_topics 1147

我想知道,这是最好的主题编号(k)为LDA提供给gensim,我已经找到了StackOverflow的答案。然而,我得到了下面提到的一个错误

下面是一个链接,指向我找到的最佳主题数量的推荐方法

当我尝试执行该代码时,出现以下错误:

-> 1145         if num_topics < 0 or num_topics >= self.num_topics:
   1146             num_topics = self.num_topics
   1147             chosen_topics = range(num_topics)

TypeError: '<' not supported between instances of 'list' and 'int'
->1145如果num\u topics<0或num\u topics>=self.num\u topics:
1146 num_topics=self.num_topics
1147选择的主题=范围(数量主题)
TypeError:“此行:

shown_topics = LDA_models[i].show_topics(num_topics=num_topics
应该是:

shown_topics = LDA_models[i].show_topics(num_topics=i
可以说,这是因为变量命名错误。可以通过将
num_topics=list(范围(16)[1:])
和后续循环替换为:

max_topics = 15
for num_topics in range(1, max_topics+1):
    # use num_topics instead of i in the loop

这将消除可能出现的混淆

你能告诉我他是如何计算连贯性的吗?因为我已经按照您的建议修复了第一部分,但是在运行一致性代码时仍然有错误。非常感谢。我没有计算连贯性,我只是指出问题中的问题。从我个人的经验来看,优化这样的主题数量没有多大意义。目标函数往往非常平坦,因此选择对训练数据中的不规则性非常敏感。合理的手动选择通常表现得更好
max_topics = 15
for num_topics in range(1, max_topics+1):
    # use num_topics instead of i in the loop