我在将pdf中的文本向量化后试图创建wordcloud,并且出现以下错误: 无法将float NaN转换为整数
这是其中的一部分代码
from wordcloud import WordCloud as wc
DoW = dict(zip(b,a))
zg = wc(max_font_size=12)
p=wc.generate_from_frequencies(zg, frequencies = DoW)
from matplotlib import pyplot as plt
plt.figure(figsize = (50,50))
plt.imshow(p)
在列表中将list(range(12)替换为DoW = dict(zip(b,a))可解决此问题,但我看不出原始变量中的数据有什么问题
a和b是从我的数据集中切出的,
a:array([1,0,0,0,0,0,0,0,1,0,0,0],dtype = int64)
b:[“减轻”, 'mm', '移动', '模型', “模块化” '湿气', '监控', '更多', '最', '移动', '运动', '很多']
完整错误:
p=wc.generate_from_frequencies(zg, frequencies = DoW)
C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py:464: RuntimeWarning: invalid value encountered in double_scalars
font_size = int(round((rs * (freq / float(last_freq))
Traceback (most recent call last):
File "<ipython-input-120-a3e0214149fa>", line 1, in <module>
p=wc.generate_from_frequencies(zg, frequencies = DoW)
File "C:\ProgramData\Anaconda3\lib\site-packages\wordcloud\wordcloud.py", line 465, in generate_from_frequencies
+ (1 - rs)) * font_size))
ValueError: cannot convert float NaN to integer
使用python 3,wordcloud版本1.5.0
编辑: 我知道将a重置为输出的值会将错误更改为:浮点数除以零,我怀疑这可能是因为每个术语应至少出现一次。但是,这不能解决我的原始错误(将数据切片,并且我怀疑是否有未使用的术语,因为变量是从以下切片:vectorizer.fit_transform(cleanParagraphs).toarray()和vectorizer.get_feature_names()