Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/296.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 派尔戴维斯:类型为';价值观';JSON不可序列化_Python_Json_Serialization_Visualization_Topic Modeling - Fatal编程技术网

Python 派尔戴维斯:类型为';价值观';JSON不可序列化

Python 派尔戴维斯:类型为';价值观';JSON不可序列化,python,json,serialization,visualization,topic-modeling,Python,Json,Serialization,Visualization,Topic Modeling,我试图用它来显示非负矩阵分解的结果,它可以作为一个主题模型。该模型是使用。我正在做所有需要的缩放和转换,然后我以这种方式馈送: code_vis_data_mmds = pyLDAvis.prepare(topic_term_dists = nmf_frobenius_cd_X_manual.components_, doc_topic_dists = pd.DataFrame(doc_topic_dists), doc_lengths = doc_lengths, vocab = dictio

我试图用它来显示非负矩阵分解的结果,它可以作为一个主题模型。该模型是使用。我正在做所有需要的缩放和转换,然后我以这种方式馈送:

code_vis_data_mmds = pyLDAvis.prepare(topic_term_dists = nmf_frobenius_cd_X_manual.components_, doc_topic_dists = pd.DataFrame(doc_topic_dists), doc_lengths = doc_lengths, vocab = dictionary.values(), term_frequency = term_frequency, mds='mmds')
  • topic_term_dists参数将NMF中的组件作为值
  • doc_topic_将NMF模型的转换方法的结果应用于我的tf idf矩阵
  • vocab是我自己在数据集上计算的,用于构建tf idf矩阵
  • “频率”一词来源于我的计数矩阵中沿轴的总和,也是根据字典建立的
这部分代码会引发一个弃用警告,如下所示

C:\Users\VDE10\Anaconda3\lib\site packages\pyLDAvis\u prepare.py:387: 弃用警告:.ix已弃用。请使用.loc作为基于标签的 用于位置索引的索引或.iloc

除此之外,我还收到三个运行时警告:

TypeError                                 Traceback (most recent call last)
<ipython-input-48-59ece996466e> in <module>()
     44 # pyLDAvis.save_html(code_vis_data_pcoa,"LDA_vis_pcoa.html")
     45 
---> 46 pyLDAvis.display(code_vis_data_mmds)

~\Anaconda3\lib\site-packages\pyLDAvis\_display.py in display(data, local, **kwargs)
    220         kwargs['d3_url'], kwargs['ldavis_url'], kwargs['ldavis_css_url'] = write_ipynb_local_js()
    221 
--> 222     return HTML(prepared_data_to_html(data, **kwargs))
    223 
    224 def show(data, ip='127.0.0.1', port=8888, n_retries=50,

~\Anaconda3\lib\site-packages\pyLDAvis\_display.py in prepared_data_to_html(data, d3_url, ldavis_url, ldavis_css_url, template_type, visid, use_http)
    176                            d3_url=d3_url,
    177                            ldavis_url=ldavis_url,
--> 178                            vis_json=data.to_json(),
    179                            ldavis_css_url=ldavis_css_url)
    180 

~\Anaconda3\lib\site-packages\pyLDAvis\_prepare.py in to_json(self)
    415 
    416     def to_json(self):
--> 417        return json.dumps(self.to_dict(), cls=NumPyEncoder)

~\Anaconda3\lib\json\__init__.py in dumps(obj, skipkeys, ensure_ascii, check_circular, allow_nan, cls, indent, separators, default, sort_keys, **kw)
    236         check_circular=check_circular, allow_nan=allow_nan, indent=indent,
    237         separators=separators, default=default, sort_keys=sort_keys,
--> 238         **kw).encode(obj)
    239 
    240 

~\Anaconda3\lib\json\encoder.py in encode(self, o)
    197         # exceptions aren't as detailed.  The list call should be roughly
    198         # equivalent to the PySequence_Fast that ''.join() would do.
--> 199         chunks = self.iterencode(o, _one_shot=True)
    200         if not isinstance(chunks, (list, tuple)):
    201             chunks = list(chunks)

~\Anaconda3\lib\json\encoder.py in iterencode(self, o, _one_shot)
    255                 self.key_separator, self.item_separator, self.sort_keys,
    256                 self.skipkeys, _one_shot)
--> 257         return _iterencode(o, 0)
    258 
    259 def _make_iterencode(markers, _default, _encoder, _indent, _floatstr,

~\Anaconda3\lib\site-packages\pyLDAvis\utils.py in default(self, obj)
    144         if isinstance(obj, np.float64) or isinstance(obj, np.float32):
    145             return float(obj)
--> 146         return json.JSONEncoder.default(self, obj)

~\Anaconda3\lib\json\encoder.py in default(self, o)
    178         """
    179         raise TypeError("Object of type '%s' is not JSON serializable" %
--> 180                         o.__class__.__name__)
    181 
    182     def encode(self, o):

TypeError: Object of type 'ValuesView' is not JSON serializable
TypeError回溯(最近一次调用)
在()
44#pyLDAvis.save_html(代码_vis_data_pcoa,“LDA_vis_pcoa.html”)
45
--->46.显示(代码显示数据显示)
~\Anaconda3\lib\site packages\pyLDAvis\\u display.py在显示中(数据,本地,**kwargs)
220 kwargs['d3_url']、kwargs['ldavis_url']、kwargs['ldavis_css_url']=write_ipynb_local_js()
221
-->222返回HTML(准备好的数据到HTML(数据,**kwargs))
223
224 def显示(数据,ip='127.0.0.1',端口=8888,n_重试=50,
~\Anaconda3\lib\site packages\pyLDAvis\\\\\\\\\\\\\\\\\\\\\\\\\\\准备好的html格式(数据、d3\U url、ldavis\U url、ldavis\U css\U url、模板类型、visid、使用\U http)
176 d3_url=d3_url,
177 ldavis_url=ldavis_url,
-->178 vis_json=data.to_json(),
179 ldavis_css_url=ldavis_css_url)
180
~\Anaconda3\lib\site packages\pyLDAvis\\u prepare.py in to_json(self)
415
416 def至_json(自我):
-->417返回json.dumps(self.to_dict(),cls=NumPyEncoder)
转储中的~\Anaconda3\lib\json\\uuuuu init\uuuuuuuuuuuuuuuuuuuuuuuuuuuuy.py(对象、skipkeys、确保ascii、检查循环、允许nan、cls、缩进、分隔符、默认值、排序键,**kw)
236检查循环=检查循环,允许循环=允许循环,缩进=缩进,
237分隔符=分隔符,默认值=默认值,排序键=排序键,
-->238**kw).编码(obj)
239
240
编码中的~\Anaconda3\lib\json\encoder.py(self,o)
例外情况没有那么详细。列表调用应该大致相同
198#相当于“”join()所使用的PySequence#Fast。
-->199 chunks=self.iterencode(o,\u one\u shot=True)
200如果不存在(块,(列表,元组)):
201块=列表(块)
iterencode中的~\Anaconda3\lib\json\encoder.py(self,o,\u one\u shot)
255 self.key\u分隔符、self.item\u分隔符、self.sort\u键、,
256个自拍镜头(一张)
-->257返回码(o,0)
258
259定义生成代码(标记、默认、编码器、缩进、浮动、,
默认情况下~\Anaconda3\lib\site packages\pyLDAvis\utils.py(self,obj)
144如果isinstance(obj,np.float64)或isinstance(obj,np.float32):
145返回浮动(obj)
-->146返回json.JSONEncoder.default(self,obj)
默认情况下的~\Anaconda3\lib\json\encoder.py(self,o)
178         """
179 raise TypeError(“类型“%s”的对象不可JSON序列化”%
-->180度。uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
181
182 def编码(自身,o):
TypeError:类型为“ValuesView”的对象不可JSON序列化
我已经看到人们在工作中也遇到了类似的错误,但他们的解决方案与我的问题不符。 任何帮助都将不胜感激,请随时询问更多细节