将CSV文件做词云和图片词云,分别保存为图片。
时间: 2023-09-23 07:03:53 浏览: 78
携程游记爬取+词云分析
CSV 文件的处理步骤和文本文件类似,只需要在读取文件时指定分隔符和编码方式即可。下面是一个简单的示例代码,假设 CSV 文件中有一列名为 `comment`,保存了用户的评论信息:
```python
import csv
import jieba
from wordcloud import WordCloud
import matplotlib.pyplot as plt
# 读取 CSV 文件并进行分词
comments = []
with open('data.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
comments.append(row['comment'])
words = jieba.cut(' '.join(comments))
# 生成词云
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white').generate(' '.join(words))
# 保存为图片
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.savefig('wordcloud.png')
```
在上面的代码中,我们首先使用 `csv.DictReader` 函数读取 CSV 文件,并提取出评论信息。然后,我们使用 `jieba.cut` 函数对所有评论进行分词,并使用 `WordCloud` 类生成词云图。最后,我们使用 `pyplot.savefig` 函数将词云保存为图片。
如果你想生成图片词云,可以使用以下代码:
```python
import csv
import jieba
from wordcloud import WordCloud, ImageColorGenerator
import matplotlib.pyplot as plt
from PIL import Image
# 读取 CSV 文件并进行分词
comments = []
with open('data.csv', newline='', encoding='utf-8') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
comments.append(row['comment'])
words = jieba.cut(' '.join(comments))
# 生成词云
mask = np.array(Image.open('mask.png'))
wordcloud = WordCloud(font_path='msyh.ttc', background_color='white', mask=mask).generate(' '.join(words))
image_colors = ImageColorGenerator(mask)
# 保存为图片
plt.imshow(wordcloud.recolor(color_func=image_colors), interpolation='bilinear')
plt.axis('off')
plt.savefig('image_wordcloud.png')
```
在这个代码中,我们使用了与前面类似的方法生成图片词云。不同之处在于,我们使用 `csv.DictReader` 函数读取 CSV 文件,并提取出评论信息。
注意,这里需要将字体文件 `msyh.ttc` 和图片文件 `mask.png` 放在当前目录下。同时,你需要将 `data.csv` 替换为你自己的 CSV 文件名。
阅读全文