python 词云图 WordCloud

文章目录

  • 一、结果预示
  • 二、制作过程
    • 2.1 图片准备
    • 2.2 数据准备
    • 2.3 数据处理
  • 三、绘制词云图
  • 四、完整代码

一、结果预示

python 词云图 WordCloud_第1张图片

二、制作过程

2.1 图片准备

  • 准备一张背景白色的图片
    python 词云图 WordCloud_第2张图片

2.2 数据准备

  • 本文例子:近期关于新冠疫情新闻标题关键字分析
  • 数据获取路径:从AKShare 获取新冠疫情实时资讯新闻播报,AKShare -> 事件数据 -> COVID-19-网易 -> 实时资讯新闻播报
import akshare as ak
covid_19_163_df = ak.covid_19_163(indicator="实时资讯新闻播报")

python 词云图 WordCloud_第3张图片

2.3 数据处理

  • 获取标题中文文字
import re

title = "".join(covid_19_163_df.title.tolist())      # 获取标题文字
text = "".join(re.findall('[\u4e00-\u9fa5]', title)) #匹配中文

python 词云图 WordCloud_第4张图片

  • jieba 分词处理:含去掉自定义词语、新增自定义词语
import jieba

drop_words = ['你','不'] # 去掉的词语
for word in drop_words:
    jieba.del_word(word)

jieba.add_word('社会面') # 添加自定义词语

seg_list = ",".join(jieba.cut(text,cut_all=False,HMM=True)) # 精确模式,HMM参数设置为True,可以识别新词,即词典中不存在的词。
# seg_list = ",".join(jieba.cut(text,cut_all=True,HMM=True)) # 全模式
# seg_list = ",".join(jieba.cut_for_search(text, HMM=True)) # 搜索引擎模式

python 词云图 WordCloud_第5张图片

三、绘制词云图

import numpy as np
from wordcloud import WordCloud
from PIL import Image

mask = np.array(Image.open("小鸟.png"))  # 读取背景图片

# 绘制词云图
wordcloud = WordCloud(
    font_path="C:\\Windows\\Fonts\\simsun.ttc", # 字体路径, simsun
    background_color="black",                   # 背景颜色,"black"或"white"
    width = 800,
    height = 600,
    max_words = 100,    # 显示最多的词数量
    max_font_size = 80, # 显示的最大的字体大小
    mask = mask,
    collocations=False # 是否包括两个词的搭配
).generate(seg_list)

# 生成词云图文件
wordcloud.to_file('词云图_小鸟.png')

python 词云图 WordCloud_第6张图片

四、完整代码

import re
import jieba
import numpy as np
from wordcloud import WordCloud
from PIL import Image

import akshare as ak

covid_19_163_df = ak.covid_19_163(indicator="实时资讯新闻播报")

title = "".join(covid_19_163_df.title.tolist())      # 获取标题文字
text = "".join(re.findall('[\u4e00-\u9fa5]', title)) #匹配中文

drop_words = ['你','不'] # 去掉的词语
for word in drop_words:
    jieba.del_word(word)

jieba.add_word('社会面') # 添加自定义词语

seg_list = ",".join(jieba.cut(text,cut_all=False,HMM=True)) # 精确模式,HMM参数设置为True,可以识别新词,即词典中不存在的词。
# seg_list = ",".join(jieba.cut(text,cut_all=True,HMM=True)) # 全模式
# seg_list = ",".join(jieba.cut_for_search(text, HMM=True)) # 搜索引擎模式

mask = np.array(Image.open("小鸟.png"))  # 读取背景图片

# 绘制词云图
wordcloud = WordCloud(
    font_path="C:\\Windows\\Fonts\\simsun.ttc", # 字体路径, simsun
    background_color="black",                   # 背景颜色,"black"或"white"
    width = 800,
    height = 600,
    max_words = 100,    # 显示最多的词数量
    max_font_size = 80, # 显示的最大的字体大小
    mask = mask,
    collocations=False # 是否包括两个词的搭配
).generate(seg_list)

# 生成词云图文件
wordcloud.to_file('词云图_小鸟.png')

你可能感兴趣的:(python,开发语言,数据分析)