利用wordcloud生成词云,字体微软雅黑
时间: 2023-06-17 12:06:24 浏览: 310
好的,首先需要安装 wordcloud 和 matplotlib 库。可以使用以下命令进行安装:
```
pip install wordcloud matplotlib
```
接着,可以使用下面的代码生成词云:
```python
from wordcloud import WordCloud
import matplotlib.pyplot as plt
text = '这里是一段文本,可以是一篇文章或者一段话'
wordcloud = WordCloud(font_path='msyh.ttf', background_color='white').generate(text)
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis('off')
plt.show()
```
其中,`font_path` 参数指定了字体文件的路径,可以使用微软雅黑字体文件的路径替换 `'msyh.ttf'`。`background_color` 参数指定了词云的背景色,这里设置为白色。
运行代码后,会弹出一个窗口展示生成的词云。
相关问题
使用Python对《西游记》进行分词、停用词过滤和词频统计,并利用wordCloud绘制词云,并对形状和颜色进行修改,背景格式设为孙悟空的形状。
好的,这是一个关于Python自然语言处理的问题,我会尽力回答你。
首先,我们需要安装相关的Python库,包括jieba、wordcloud、PIL等。可以使用以下命令进行安装:
```
pip install jieba
pip install wordcloud
pip install Pillow
```
接着,我们需要获取《西游记》的文本数据。这里我使用了网络上的一份TXT文件,可以使用以下代码进行下载:
```python
import urllib.request
url = 'https://raw.githubusercontent.com/ArcticZhao/ChineseNLP/master/data/xiyouji.txt'
urllib.request.urlretrieve(url, 'xiyouji.txt')
```
然后,我们可以使用jieba对文本进行分词,并过滤掉停用词。停用词是指在自然语言中频繁出现,但是对文本意义影响不大的词语,例如“的”、“了”、“是”等。可以使用以下代码进行分词和过滤:
```python
import jieba
import jieba.analyse
# 加载停用词
stopwords = []
with open('stopwords.txt', encoding='utf-8') as f:
for line in f:
stopwords.append(line.strip())
# 读取文本
with open('xiyouji.txt', mode='r', encoding='utf-8') as f:
text = f.read()
# 分词
words = jieba.cut(text)
# 过滤停用词
filtered_words = []
for word in words:
if word not in stopwords and word != '\n':
filtered_words.append(word)
```
接着,我们可以使用Python的collections库对词频进行统计,并将结果保存到一个字典中:
```python
from collections import Counter
# 统计词频
word_counts = Counter(filtered_words)
# 转化为字典
word_counts_dict = dict(word_counts)
```
最后,我们可以使用wordcloud库绘制词云。这里我选择了孙悟空的形状作为背景,并将词云的颜色设置为红色。可以使用以下代码进行绘制:
```python
from wordcloud import WordCloud
from PIL import Image
import numpy as np
# 加载背景图片
mask = np.array(Image.open('sunwukong.jpg'))
# 配置词云
wordcloud = WordCloud(
font_path='msyh.ttc', # 字体设置为微软雅黑
background_color='white', # 背景颜色设置为白色
mask=mask, # 设置背景图片
colormap='Reds', # 颜色设置为红色
max_words=200, # 最多显示前200个高频词
max_font_size=100, # 最大字体为100
width=800, # 词云图宽度
height=800, # 词云图高度
)
# 生成词云
wordcloud.generate_from_frequencies(word_counts_dict)
# 显示词云
image = wordcloud.to_image()
image.show()
```
这样,我们就完成了对《西游记》的分词、停用词过滤、词频统计和词云绘制。
用python来写一个代码,利用wordcloud库生成词云,分析 http://www.npc.gov.cn/npc/kgfb/202303/670e9366e2614093a734809a04b4ad93.shtml
好的,以下是使用 Python 和 wordcloud 库生成词云的代码:
```python
import requests
from bs4 import BeautifulSoup
from wordcloud import WordCloud
import jieba
# 获取网页内容
url = 'http://www.npc.gov.cn/npc/kgfb/202303/670e9366e2614093a734809a04b4ad93.shtml'
response = requests.get(url)
html = response.content
# 解析网页内容
soup = BeautifulSoup(html, 'html.parser')
text = soup.get_text()
# 利用 jieba 分词
words = jieba.cut(text)
# 拼接分词结果
result = ' '.join(words)
# 生成词云
wordcloud = WordCloud(background_color='white', font_path='msyh.ttc', width=800, height=600).generate(result)
wordcloud.to_file('wordcloud.png')
```
这个代码首先使用 requests 库获取指定网页的内容,然后使用 BeautifulSoup 库解析网页内容,提取出文本。接着使用 jieba 库对文本进行分词,并将分词结果拼接成一个字符串。最后使用 wordcloud 库生成词云,并将结果保存到本地文件 wordcloud.png 中。在生成词云时,我们指定了词云的背景色为白色,使用了微软雅黑字体,并设置了词云的宽度和高度。你可以根据需要修改这些参数。
阅读全文