ValueError: cannot compute LDA over an empty collection (no terms)
ValueError: cannot compute LDA over an empty collection (no terms)
尝试为较小规模的语料库计算 lda 时在 python 中出现此错误,但在其他情况下工作正常。
语料库的大小是 15,我尝试将主题数设置为 5,然后将其减少到 2,但它仍然给出相同的错误:ValueError: cannot compute LDA over an empty collection (no项)
在这一行出现错误:lda = models.LdaModel(corpus, num_topics=topic_number, id2word=dictionary, passes=passes)
语料库是 corpus = [dictionary.doc2bow(text) for a, id, text, s_date, e_date, qd, qd_perc in texts]
为什么不给条款?
终于想通了。小文档的问题是,如果您尝试从字典中过滤极端值,您最终可能会在语料库中得到空列表。corpus = [dictionary.doc2bow(text)]
。
所以在corpus = [dictionary.doc2bow(text)]
之前需要仔细选择dictionary.filter_extremes(no_below=2, no_above=0.1)
中的参数值
我刚刚删除了过滤器极值,lda 模型现在运行良好。虽然我会更改 filter extreme 中的参数值并在以后使用它。
尝试为较小规模的语料库计算 lda 时在 python 中出现此错误,但在其他情况下工作正常。
语料库的大小是 15,我尝试将主题数设置为 5,然后将其减少到 2,但它仍然给出相同的错误:ValueError: cannot compute LDA over an empty collection (no项)
在这一行出现错误:lda = models.LdaModel(corpus, num_topics=topic_number, id2word=dictionary, passes=passes)
语料库是 corpus = [dictionary.doc2bow(text) for a, id, text, s_date, e_date, qd, qd_perc in texts]
为什么不给条款?
终于想通了。小文档的问题是,如果您尝试从字典中过滤极端值,您最终可能会在语料库中得到空列表。corpus = [dictionary.doc2bow(text)]
。
所以在corpus = [dictionary.doc2bow(text)]
dictionary.filter_extremes(no_below=2, no_above=0.1)
中的参数值
我刚刚删除了过滤器极值,lda 模型现在运行良好。虽然我会更改 filter extreme 中的参数值并在以后使用它。