读写程序:请参考调试代码import sys import wordcloud import matplotlib.pyplot as plt import chardet 文本文件内容可以自己找一个文本文件,不要是中文的 filenamear"E: \python2021-2\2021\第8计 输入输出\chat20212-1.txt” #更改为自己要动问的文木文件的路径和名称 print (filename) f=open (filename, 'r', encoding- "utf8") txt=f. read() #content是从文木文件中谈取出来的内容转换成字符串 def generate wordcloud (txt): w = wordcloud. WordCloud( 这个位置要找一附jpg的图片,必须存在的 background_color='black', mask=plt.imread(r'E:lpython2021-2\20211第8讲 输入输出\back.jpg"),# 背最图所在文件路径,必须存在 height=2eee,# 所要生成词云图片的尺寸 width=2400) w.generate(txt) W.to file(r"E: \python2021-2\2021\第8计 输入输出 \wordcloud20212-3.png")# 生成词云图片路径 generate_ wordcloud(txt)生成云图,参考背景图备选如下: 目的:1、学会pip下载第3方库;2;文件读写访问,了解文件路径 3;文本文件自己拟定,最好找一篇短文(英文)。 扩展:利用jieba分词包,完成中文词云生成图
时间: 2023-06-24 11:08:34 浏览: 48
这段代码有一些问题,比如:
1. 第3行的文件路径需要使用反斜杠(\)而非空格,否则会报错;
2. 第4行的编码格式名称应该是 "utf-8" 而非 "utf8";
3. 第7行的函数名应该是 generate_wordcloud 而非 generate wordcloud;
4. 第10行的 mask 参数应该是一个 numpy 数组而非一个字符串路径,需要使用 plt.imread() 函数读取图片并转换为数组;
5. 第14行的函数调用应该是 generate_wordcloud(txt) 而非 generate_ wordcloud(txt)。
另外,如果要使用 jieba 分词包生成中文词云,需要先在命令行中使用 pip 安装 jieba 包,然后在代码中导入并使用 jieba 进行分词。
以下是修正后的代码示例:
```python
import sys
import jieba
import wordcloud
import matplotlib.pyplot as plt
import chardet
import numpy as np
filename = r"E:\python2021-2\2021\第8计 输入输出\chat20212-1.txt"
print(filename)
with open(filename, 'r', encoding="utf-8") as f:
txt = f.read()
def generate_wordcloud(txt):
mask = plt.imread(r'E:\python2021-2\2021\第8计 输入输出\back.jpg')
w = wordcloud.WordCloud(
background_color='black',
mask=mask,
height=2000,
width=2400
)
if sys.getdefaultencoding() != 'utf-8':
txt = txt.encode(sys.getdefaultencoding(), 'ignore').decode('utf-8')
words = jieba.lcut(txt)
w.generate(' '.join(words))
w.to_file(r"E:\python2021-2\2021\第8计 输入输出\wordcloud20212-3.png")
generate_wordcloud(txt)
```
注意,以上代码中的 jieba 分词包需要通过以下命令进行安装:
```
pip install jieba
```