我有一份包含九份文件的文件术语矩阵:
我正在运行以下代码:
import pyLDAvis.gensim
topicData = pyLDAvis.gensim.prepare(ldamodel, docTermMatrix, dictionary)
pyLDAvis.display(topicData)
执行pyLDAvis.display函数时出现以下错误:
TypeError:类型'复杂'的对象不是JSON可序列化的
有人可以在这里指导吗?可能是什么原因?
答案 0 :(得分:1)
我有同样的问题。遵循user3411846引用的GH问题后,我找到了另一个更简单的解决方案。
复数来自坐标计算并指定有效的“ mds”。
https://github.com/bmabey/pyLDAvis/issues/69#issuecomment-311337191
所以您的代码应该是
topicData = pyLDAvis.gensim.prepare(ldamodel, docTermMatrix, dictionary, mds='mmds')
mds的其他选项在这里:https://pyldavis.readthedocs.io/en/latest/modules/API.html#pyLDAvis.prepare
答案 1 :(得分:0)
将此行代码添加到pyLDAvis pyLDAvis/utils.py
if np.iscomplexobj(obj):
return abs(obj)
GitHub GitHub Issue
中报告了此错误