如何查看和保存Python生成的词云

How to view and save the WordCloud generated in Python

我正在尝试从 .csv 文件在 Python 中生成 WordCloud

这是我的 .csv 文件的样子:

title,views
universe,45678
earth,34366
smtp,4567987

这就是我创建 WordCloud 所做的工作:

import csv
import matplotlib.pyplot as pPlot
from wordcloud import WordCloud, STOPWORDS

reader = csv.reader(open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', newline = '\n', encoding = 'utf-8'))

for k, v in reader:
    d[k] = float(v)

wordcloud = WordCloud().generate_from_frequencies(d)

如果我打印 WordCloud,我得到一个对象 id

有人可以建议如何将其保存为图像以及如何在 Python 上查看吗?

首先,您的代码中存在一些错误:

1. .csv文件必须放在list中才能读取:

with open('C:/Users/Sushma/Downloads/wordcloud.csv', 'r', encoding = 'utf8', newline = '\r\n') as file:
    reader = csv.reader(file, skipinitialspace = False, delimiter = ',', quoting = csv.QUOTE_NONE)
    data = list(reader)

2. 在此之后,必须创建一个 dictionary,其中包含 int 格式的键和值,以便稍后我们可以创建WordCloud:

word_freq = {}
for k, v in data[1:]:
   word_freq[k] = int(v)

现在,您需要创建一个 variable 来接收 text 与其 frequency 之间的乘积:

text = ' '.join([(k + ' ') * v for k, v in word_freq.items()])

然后,您将创建 WordCloud 来接收此变量 text:

wordcloud = WordCloud(width = 1600,
                      height = 800,
                      background_color = 'white',
                      collocations = False,
                      repeat = True).generate_from_text(text)

plt.figure(figsize=(10,5))
plt.imshow(wordcloud, interpolation = "bilinear")
plt.axis('off')

现在您可以简单地保存生成的 WordCloud:

plt.savefig(f'wordcloud.png',
            dpi = 300)

绘制(可视化)只需使用:

plt.show()

最终结果:

Final result