【笔记】结巴分词绘制词云图

一、结巴分词的三种模式

(1)精确模式:把最有可能组成词语的词切开,没有冗余单词。

(2)全模式:把所有可能组成词语的词切开,有冗余单词。

(3)搜索引擎模式:在精确模式的基础上,对长词再次切分,适合用于搜索引擎分词。


二、正则提取数据

import numpy as np
import pandas as pd

import matplotlib.pyplot as plt
import seaborn as sns
%matplotlib inline

# 导数据
douyin = pd.read_csv('data/douyin.csv')

# 正则提取,并达到MySQL中group_concat的效果
temp = douyin['signature'].str.extractall(r'[^一-龥]*([一-龥]+)[^一-龥]*').copy()
temp = temp.reset_index().groupby('level_0').agg({0:list})[0].apply(lambda x: ','.join(x))

# 将提取出来的字符串进行分词,并剔除停用词
result0 = ','.join([','.join(jieba.lcut(statement)) for statement in temp]).split(',')
result1 = [x for x in result0 if x not in stop_words]

# 创建词频Series对象
important_words = pd.Series(result1).value_counts()[1:200]
important_words

三、绘制

# 导入绘制所需参考图像
bgimg = np.array(Image.open('data/bgimg.png'))
# 以参考图像的颜色作为词云图颜色
genclr = wordcloud.ImageColorGenerator(bgimg)

# 创建慈云图对象
wc = wordcloud.WordCloud(
                        # 指定字体路径
                        font_path='data/FZZJ-LongYTJW.TTF',
                        # 指定背景颜色
                        background_color='white',
                        # 指定最大词数
                        max_words=200,
                        # 指定最大和最小字号
                        max_font_size=300,
                        min_font_size=5,
                        # 指定随机种子
                        random_state=4,
                        # 指定词云图轮廓参考哪张图
                        mask=bgimg,
                        # 指定词云图颜色
                        color_func=genclr)
# 渲染文字
wc.generate_from_frequencies(important_words)
# 使用plt展示词云图
plt.figure(figsize=(24,24))
plt.imshow(wc)
plt.axis('off')

在这里插入图片描述

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sprite.Nym

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值