请按照如下要求,依次绘制对应的词云图: 1. 根据文件“Who Moved My Cheese.txt”的内容,用词频为参数的方法绘制英文词云,设置背景色为白色,不显示坐标轴。 2. 根据文件“Who Moved My Cheese.txt”的内容,用文本为参数的方法绘制英文词云,设置背景色为白色,不显示坐标轴。观察两种方法绘制结果,分析其原因,了解stopwords参数的意义及stopwords文件的内容,思考用词频方法时,怎样处理才能得到与文本方法相近的结果? 3. 中文词之间无分隔,所以中文词云的制作略麻烦,需要提前对文本进行分词处理。jieba是目前应用较广泛的一个中文分词库,可以导入jieba利用它进行分词再绘制词云。
时间: 2024-02-20 21:57:11 浏览: 15
1. 绘制英文词云,使用词频为参数的方法,代码如下:
```python
import wordcloud
import numpy as np
from PIL import Image
# 读取文本内容
with open('Who Moved My Cheese.txt') as f:
text = f.read()
# 设置屏蔽词
stopwords = set(wordcloud.STOPWORDS)
stopwords.add('Cheese')
# 设置词云图形状
mask = np.array(Image.open('cloud.png'))
# 生成词云
wc = wordcloud.WordCloud(background_color='white', mask=mask, stopwords=stopwords)
wc.generate_from_frequencies(wc.process_text(text))
# 保存词云图
wc.to_file('wordcloud.png')
```
要注意的是,需要先安装wordcloud库和PIL库。
2. 绘制英文词云,使用文本为参数的方法,代码如下:
```python
import wordcloud
import numpy as np
from PIL import Image
# 读取文本内容
with open('Who Moved My Cheese.txt') as f:
text = f.read()
# 设置屏蔽词
stopwords = set(wordcloud.STOPWORDS)
stopwords.add('Cheese')
# 设置词云图形状
mask = np.array(Image.open('cloud.png'))
# 生成词云
wc = wordcloud.WordCloud(background_color='white', mask=mask, stopwords=stopwords)
wc.generate(text)
# 保存词云图
wc.to_file('wordcloud.png')
```
通过比较两种方法的结果,可以发现使用文本为参数的方法更加注重单词的位置和顺序,而使用词频为参数的方法更加注重单词出现的频率。因此,在使用词频方法时,需要注意处理好分词和去除停用词,以得到与文本方法相近的结果。
3. 绘制中文词云,需要使用中文分词库jieba进行分词处理,代码如下:
```python
import wordcloud
import numpy as np
from PIL import Image
import jieba
# 读取文本内容
with open('chinese.txt', encoding='utf-8') as f:
text = f.read()
# 对文本进行分词处理
seg_list = jieba.cut(text, cut_all=False)
seg_text = ' '.join(seg_list)
# 设置屏蔽词
stopwords = set(wordcloud.STOPWORDS)
stopwords.add('的')
stopwords.add('了')
stopwords.add('是')
# 设置词云图形状
mask = np.array(Image.open('cloud.png'))
# 生成词云
wc = wordcloud.WordCloud(font_path='msyh.ttc', background_color='white', mask=mask, stopwords=stopwords)
wc.generate(seg_text)
# 保存词云图
wc.to_file('wordcloud.png')
```
要注意的是,需要先安装jieba库和中文字体库msyh.ttc。在分词处理时,需要考虑中文的特殊性,例如词与词之间没有空格,需要使用空格进行分隔。在设置停用词时,需要考虑中文的常用词汇,例如“的”、“了”、“是”等。