词云没有正确显示词频

sar*_*iii 6 python visualization word-cloud pandas

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

vocab   sumCI
aid      3
tinnitu  3
sudden   3
squamou  3
saphen   3
problem  3
prednison 3
pain    2
dysuria 3
cancer  2
Run Code Online (Sandbox Code Playgroud)

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

aid aid aid tinnitu tinnitu tinnitu sudden sudden sudden squamou squamou squamou
Run Code Online (Sandbox Code Playgroud)

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

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)
Run Code Online (Sandbox Code Playgroud)

然后结果是这样的:

如您所见,大多数单词会重复 2 或 3 次,但它们在词云中的大小并未显示这一点。即使是同样大小的单词,大小也有很大的不同! 在此处输入图片说明

例如:

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

谢谢 :)

sar*_*iii 6

好吧,我通过搜索找到了答案。我最终使用generate_from_frequencies(text)而不是仅使用生成。但即使频率相同,它也不会为所有这些提供相同的大小。

如果你看一下他们也提到的关于排名或顺序的文档(这是我真的无法理解的事情,他们最好将其作为一个选项。例如,如果算法看到相同的频率,应该采用什么方法1 . 基于订单 2. 不执行任何操作并给出相同的大小)。

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

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