【问题标题】:Python: word count from WordCloudPython:来自 WordCloud 的字数统计
【发布时间】:2026-01-14 23:15:03
【问题描述】:

我在正文上使用 WordCloud,我想查看云中每个单词的实际计数。我可以使用 .words_ 查看加权频率,但我想知道是否有一种简单的方法可以查看实际计数?

# Generate a word cloud image
wordcloud = WordCloud(background_color="white").generate(text)
wordfreq = wordcloud.words_

编辑:我希望能够从 WordCloud 中查看字数(而不是我自己从文本中查找字数)的原因是因为 WordCloud 在其分析中包括短语(搭配)以及单个单词。因此,例如,将出现“水资源”的计数,以及“水资源”中未出现的“水”一词的计数。 WordCloud 似乎还将以复数形式出现的单词实例添加到作为单数的单词的计数中(例如,在“water resource”的计数中计算“water resources”)。

【问题讨论】:

  • 最简单的方法是提供频率并将它们添加到单词中,然后您需要构建一个元组列表,每个元组包含一个单词(以频率作为字符串后缀)及其频率,然后拨打WordCloud.generate_from_frequencies(freqs)
  • 你的意思是一个词会在生成的云中重复几次?
  • 每个词只有一个频率。将该频率添加到显示之前的单词不会改变其频率。
  • WordCloud 没有任何神奇之处。它只是计算您自己文本中的单词并从中得出频率。如果你想知道那些频率,你不需要先做一个词云;你可以马上数一数。
  • WordCloud 似乎除了计算文本中的单词之外确实做了一些事情。它包括短语(搭配),并且似乎还将以复数形式出现的单词实例添加到作为单数的单词的计数中(例如,在“水资源”的计数中计算“水资源”)。我可以自己编写代码来执行此操作,但我想知道是否有一种简单的方法可以仅使用 WordCloud 来查看这些计数。

标签: python word-cloud


【解决方案1】:

只需使用WordCloud().process_text(text):

>>> WordCloud().process_text('penn penn penn penn penn state state state state uni uni uni college college university states vice president vice president vice president vice president vice president vice president vice president')
{'penn': 5, 'state': 5, 'uni': 3, 'college': 2, 'university': 1, 'vice president': 7}

请注意,它将“州”合并到“州”计数中,并将“副总统”计为二元组。

【讨论】:

  • 我在数据框中有文本,如何在 bar char 中获取词云计数