Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 无法查看图表_Python 3.x_Lda_Topic Modeling - Fatal编程技术网

Python 3.x 无法查看图表

Python 3.x 无法查看图表,python-3.x,lda,topic-modeling,Python 3.x,Lda,Topic Modeling,我试图用pyldavis用python可视化地描述我的主题。但是,我无法查看图表。是我们必须在浏览器中查看图形,还是执行时会弹出图形。下面是我的代码 import pyLDAvis import pyLDAvis.gensim as gensimvis print('Pyldavis ....') vis_data = gensimvis.prepare(ldamodel, doc_term_matrix, dictionary) pyLDAvis.display(vis_data) 执行上述

我试图用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笔记本集成?请指导我完成此操作。
我的python版本是3.5。

我现在面临同样的问题。 编辑: 我的脚本如下所示:

第一部分:

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”,然后继续运行,而不打印任何其他内容(因此它永远不会到达“print('display')行)

有趣的是,当我只运行整个脚本时,它会卡在那一行上,但当我运行第一部分时,到我的控制台执行纯单行“vis_data=pyLDAvis.sklearn.prepare(lda_tf,dtm_tf,tf_vectorier)”时,它会在几秒钟内执行


至于图形,我将其保存为html(“simple”)并使用html文件查看图形。

我遇到了相同的问题(我使用PyCharm作为IDE)。问题是pyLDAvize是为Ipython开发的(参见文档,第3页)。 我的解决方案:

  • 对lda_tf、dtm_tf、tf_矢量器(例如,pyLDAviz_dict)进行dict,并将dict转储到文件(例如mydata_pyLDAviz.pkl)
  • 将pkl文件读入笔记本(我确实从pyLDAviz那里得到了一些折旧信息,但这对最终结果没有影响)
  • 在笔记本上玩派尔达维兹
  • 如果您对该视图满意,请将其转储到html中
原因是(很有可能)pyLDAviz期望持续的用户交互(包括用户发起的“退出”)。然而,我宁愿从智能IDE转储数据并将其读入jupyter,而不是在jupyter笔记本中开发/编码。这很像回到emacs时代之前

根据经验,此方法对于其他绘图程序非常有效

这不起作用:

pyLDAvis.display(可视数据)

这将对您有用:


pyLDAvis.show(可视数据)

如果收到模块错误
pyLDA.gensim
,请尝试此错误:

import pyLdAvis.gensim_models

由于新版本的更新,您会收到错误。

很抱歉,我编辑了这篇文章,希望它现在更清晰?我想是的…;-)