词云无法正确显示词频

时间:2019-02-07 04:34:42

标签: python pandas visualization word-cloud

我已将文字数据绘制在词云中。 这是我拥有的数据框

vocab   sumCI
aid      3
tinnitu  3
sudden   3
squamou  3
saphen   3
problem  3
prednison 3
pain    2
dysuria 3
cancer  2

然后我将其转换为这样的字符串(实际上,我已经复制了每个单词在数据框中出现的次数,然后馈入该函数):

aid aid aid tinnitu tinnitu tinnitu sudden sudden sudden squamou squamou squamou

然后我使用以下代码来可视化文本数据:

def generate_wordcloud(text): # optionally add: stopwords=STOPWORDS and change the arg below
    wordcloud = WordCloud(
                          background_color="white",
                          width=1200, height=1000,
                          relative_scaling = 1.0,
                          collocations=False
                          ).generate(text)
    plt.imshow(wordcloud)
    plt.axis("off")
    plt.show()

cidf=cidf.loc[cidf.index.repeat(cidf['sumCI'])].reset_index(drop=True)
strCI = ' '.join(cidf['vocab'])
print(strCI)
generate_wordcloud(strCI)

然后结果是这样的:

如您所见,大多数单词都重复了2到3次,但单词云中的大小却没有显示出来。即使是相同大小的单词,大小也有很大差异! enter image description here

例如:

例如,在此数据框中查看“ tinnitu”和“排尿困难”,它们的频率均为3,tinnitu很大,但是排尿困难,因为它很小,所以很难。

谢谢:)

1 个答案:

答案 0 :(得分:0)

好吧,我通过搜索alooot找到了答案。我最终使用了generate_from_frequencies(text)而不是只使用了generate。 但是,即使在频率相同的情况下,也不会为所有频率提供相同的大小。

如果您查看他们还提到的有关排名或顺序的文档(这是我真的不明白的事情,那么他们最好将其作为一种选择。例如,如果算法看到的频率相同,应该采用什么频率方法1.基于订单2.不执行任何操作并给出相同的大小)。

根据我的研究和输出,当它看到相同的频率并且还基于它拥有的空间时,它可能会改变大小,这不是很好。

我的说法仅基于我的实验和阅读文档。