我试图用pyldavis在python中直观地描绘我的主题。但是我无法查看图表。是我们必须在浏览器中查看图形,还是在执行时弹出它。以下是我的代码
import pyLDAvis
import pyLDAvis.gensim as gensimvis
print('Pyldavis ....')
vis_data = gensimvis.prepare(ldamodel, doc_term_matrix, dictionary)
pyLDAvis.display(vis_data)
程序在执行上述命令时持续处于执行模式。我应该在哪里查看我的图表?或者它将存储在哪里?它是否只与Ipython笔记本集成?请指导我完成此操作。 P.S我的python版本是3.5。
答案 0 :(得分:2)
这不起作用:
pyLDAvis.display(vis_data)
这将为您工作:
pyLDAvis.show(vis_data)
答案 1 :(得分:1)
我现在面临同样的问题。 编辑: 我的脚本如下所示:
第一部分:
import pyLDAvis
import pyLDAvis.sklearn
print('start script')
tf_vectorizer = CountVectorizer(strip_accents = 'unicode',stop_words = 'english',lowercase = True,token_pattern = r'\b[a-zA-Z]{3,}\b',max_df = 0.5,min_df = 10)
dtm_tf = tf_vectorizer.fit_transform(docs_raw)
lda_tf = LatentDirichletAllocation(n_topics=20, learning_method='online')
print('fit')
lda_tf.fit(dtm_tf)
第二部分:
print('prepare')
vis_data = pyLDAvis.sklearn.prepare(lda_tf, dtm_tf, tf_vectorizer)
print('display')
pyLDAvis.display(vis_data)
问题在于“vis_data =(...)”。如果我运行脚本,它将打印'prepare'并继续运行,而不打印任何其他内容(因此它永远不会到达“打印”行( '显示器'))。
有趣的是,当我只运行整个脚本时,它会卡在那一行上,但当我运行第一部分时,进入我的控制台并执行纯粹的单行“vis_data = pyLDAvis.sklearn.prepare(lda_tf, dtm_tf,tf_vectorizer)“这是在几秒钟内完成的。
至于图表,我将其保存为html(“简单”)并使用html文件查看图表。
答案 2 :(得分:0)
我遇到了同样的问题(我使用PyCharm作为IDE)问题是pyLDAvize是为Ipython开发的(参见文档,https://media.readthedocs.org/pdf/pyldavis/latest/pyldavis.pdf,第3页)。 我的修复/解决方法:
原因是(很可能)pyLDAviz期望持续的用户交互(包括用户启动的“退出”)。但是,我宁愿从智能IDE转储数据并将其读入jupyter,而不是jupyter笔记本中的开发/代码。这非常像回到emacs之前的时间。
根据经验,这种方法适用于其他绘图计划
答案 3 :(得分:-1)
如果您收到模块错误 pyLDA.gensim
,请改用此错误:
import pyLdAvis.gensim_models
由于新版本更新,您收到错误消息。