词云没有正确显示单词的频率

word cloud does not show the frequency of the words correctly

我已经在词云中绘制了我的文本数据。 这是我的数据框

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 次,但它们在词云中的大小并未显示这一点。即使是同样大小的字,大小也有很大的差别!

例如:

例如看看这个数据框中的“耳鸣”和“排尿困难”,它们的频率都是3,耳鸣很大但是排尿困难你会发现它非常小,所以很难。

谢谢:)

好吧,我通过搜索 alooot 弄明白了。我最终使用 generate_from_frequencies(text) 而不是仅使用生成。 但是仍然在频率相同的情况下,它不会给所有的人相同的大小。

如果你看文档,他们也提到了排名或顺序(这是我真的无法理解的东西,他们最好把它作为一个选项。例如,如果算法看到相同的频率是什么应该是方法 1. 基于顺序 2. 什么都不做并给出相同的大小)。

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

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