import jieba import numpy from PIL import Image import csv from wordcloud import WordCloud try: with open("douban.csv","r",encoding="utf-8") as file: data=csv.reader(file) for row in data: print(data) # 空字符串,装入所有评论 str="" # 循环读取数据[用户名,时间,地点,星级,内容] for i in data: # print(i[4]) str+=i[4] # print(str) # 切割词语 cutWord ="===".join(jieba.cut(str)) print(cutWord) # 读取图像模型 bgImg=numpy.array(Image.open("haixing.jpeg")) # 绘制词云 cloud=WordCloud( # 文字路径,本地文字路径 font_path="C:\Windows\Fonts\simsun.ttc", background_color="white", mask=bgImg ).generate(cutWord) cloud.to_file("词云.png") print("词云绘制成功") except Exception as e: print(e)这代码能绘制出词云
时间: 2024-04-28 12:19:20 浏览: 124
这段代码可以将豆瓣电影评论数据进行词云绘制。具体实现过程为:首先使用csv模块读取数据文件douban.csv中的评论数据,然后将所有评论内容合并到一个字符串中,并使用jieba模块进行分词处理,再将分词结果作为参数传入WordCloud类中,同时指定背景图像和文字字体等参数,最后调用to_file方法将词云图像保存到本地文件中。
相关问题
import jieba import numpy from PIL import Image import csv from wordcloud import WordCloud with open('liur.csv', 'r', encoding='utf-8') as f: reader = csv.reader(f) data =[] for row in reader: try: data.append(row[1]) except IndexError: pass text = ''.join(row) words = jieba.lcut(text) print(words) bgImg=numpy.array(Image.open("nanhai.jpg")) cloud=WordCloud( font_path="C:\Windows\Fonts\simsun.ttc", background_color="white", mask=bgImg ).generate(text) cloud.to_file("词云.png") print("词云绘制成功")
在你的代码中,使用了 `row` 变量来拼接文本,这个变量应该写在 `for` 循环的内部,以保证能够正确拼接文本。同时,在使用 `WordCloud` 类生成词云时,也需要将变量名 `text` 传递给 `generate()` 方法,以保证能够正确生成词频。下面是修改后的代码:
```python
import jieba
import numpy
from PIL import Image
import csv
from wordcloud import WordCloud
with open('liur.csv', 'r', encoding='utf-8') as f:
reader = csv.reader(f)
data = []
for row in reader:
try:
data.append(row[1])
except IndexError:
pass
text = ''.join(data)
words = jieba.lcut(text)
print(words)
bgImg = numpy.array(Image.open("nanhai.jpg"))
cloud = WordCloud(
font_path="C:\Windows\Fonts\simsun.ttc",
background_color="white",
mask=bgImg
).generate(text)
cloud.to_file("词云.png")
print("词云绘制成功")
```
这样,你应该能够成功生成词云了。
import jieba import numpy import numpy as np from PIL import Image from wordcloud import WordCloud, STOPWORDS import matplotlib.pyplot as plt with open("comments.txt","r",encoding="utf-8") as f: comments = f.read() words = jieba.cut(comments) stopwords = set(STOPWORDS) stopwords.add('腾讯') stopwords.add('游戏') filtered_words = [] for word in words: if word not in stopwords: filtered_words.append(word) mask = np.array(Image.open("mask.png")) cloud = WordCloud( font_path="C:\Windows\Fonts\simsun.ttc", background_color="white", mask=mask ).generate(" ".join(filtered_words)) cloud.to_file("词云.png") print("词云绘制成功")这个代码怎么运行错误
这段代码的错误可能是缩进不正确。正确的代码应该是这样的:
```
import jieba
import numpy
import numpy as np
from PIL import Image
from wordcloud import WordCloud, STOPWORDS
import matplotlib.pyplot as plt
with open("comments.txt","r",encoding="utf-8") as f:
comments = f.read()
words = jieba.cut(comments)
stopwords = set(STOPWORDS)
stopwords.add('腾讯')
stopwords.add('游戏')
filtered_words = []
for word in words:
if word not in stopwords:
filtered_words.append(word)
mask = np.array(Image.open("mask.png"))
cloud = WordCloud(
font_path="C:\Windows\Fonts\simsun.ttc",
background_color="white",
mask=mask
).generate(" ".join(filtered_words))
cloud.to_file("词云.png")
print("词云绘制成功")
```
请检查一下你的代码是否与这段代码一致。
阅读全文