【问题标题】:word cloud does not show the frequency of the words correctly词云没有正确显示词的频率
【发布时间】:2019-07-01 03:45:57
【问题描述】:

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

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

例如:

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

谢谢:)

【问题讨论】:

  • 虽然您可能不喜欢不一定与错误相同的输出。你有没有证据证明它是“错误的”?
  • @barny 谢谢你的回答。从数据帧的计数和词云的输出中可以清楚地看出,它不一定显示计数!。但在文件中提到,越大的词频率越大。例如看这个数据框中的“tinnitu”和“dysuria”,它们的频率都是3,耳鸣很大,但排尿困难你会发现它几乎没有,因为它很小。
  • 所以查看WordCloud的源代码,向作者提出问题,检查代码,......

标签: python pandas visualization word-cloud


【解决方案1】:

好吧,我通过搜索发现了它。我最终使用了generate_from_frequencies(text),而不是只使用生成。 但是在频率相同的情况下,它并不会给所有这些都赋予相同的大小。

如果您查看他们还提到的有关排名或顺序的文档(这是我真的无法理解的事情,他们最好将其作为一个选项。例如,如果算法看到相同的频率应该是什么方法 1. 基于顺序 2. 什么都不做并给出相同的大小)。

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

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

【讨论】:

    猜你喜欢
    • 2018-06-07
    • 1970-01-01
    • 2019-07-29
    • 2020-11-01
    • 2017-04-02
    • 2015-05-17
    • 1970-01-01
    • 2018-03-30
    • 1970-01-01
    相关资源
    最近更新 更多