前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >词云(WordCloud)制作

词云(WordCloud)制作

作者头像
Michael阿明
发布2021-02-19 15:12:34
7750
发布2021-02-19 15:12:34
举报

以《神雕侠侣》为例,我们制作词云,看看有哪些高频词汇。

1. 导入一些包

代码语言:javascript
复制
# -*- coding:utf-8 -*-
# @Python Version: 3.7
# @Time: 2020/11/27 19:32
# @Author: Michael Ming
# @Website: https://michael.blog.csdn.net/
# @File: word_cloud.py
# @Reference: 

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

2. 文本处理

  • 去掉一些空白的字符\n, \t, ' '
  • jieba.cut分词
  • 屏蔽停用词,以及长度小于2的词
代码语言:javascript
复制
stopwords = []
with open("stopwords.txt", 'r', encoding='utf-8') as f:
    for w in f:
        stopwords.append(w.replace('\n', ''))

with open('processed_txt.txt', 'w', encoding='utf-8') as processed:
    words_list = []
    with open("../shendiaoxialv.txt", 'r', encoding='utf-8') as f:
        for line in f:
            word = jieba.cut(line.replace('\t', '').replace('\n', '').replace(' ', ''))
            for w in word:
                if w not in stopwords and len(w) > 1:
                    words_list.append(w)
    processed.write(' '.join(words_list))

3. 制作词云

代码语言:javascript
复制
# 读取清理好了以后的词
wordtxt = ""
with open('processed_txt.txt', 'r', encoding='utf-8') as f:
    wordtxt = f.read()

# 设置背景图片,也可以没有
background_pic = np.array(Image.open('background.png'))
wc = WordCloud(
    background_color='white', # 背景色
    max_words=300, # 最多词语数量
    font_path='wb.ttf', # 字体
    min_font_size=12, # 最小字号
    max_font_size=52, # 最大字号
    width=1600, # 图片宽度
    height=1200, # 图片高度
    mask=background_pic # 背景形状
)

wc.generate(wordtxt)
wc.to_file("wc.jpg")

使用以下背景图片:

生成词云:

可以看见 杨过小龙女 是最显眼的两个词语,也是小说的主角。

再换一个背景图片:

调节最小10号字,最大100号的字,生成词云:

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2020-11-27 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 导入一些包
  • 2. 文本处理
  • 3. 制作词云
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档