豆瓣top250-词云案例

运行效果:

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

项目结构

在这里插入图片描述

import jieba
from matplotlib import pyplot as plt
from wordcloud import WordCloud
from PIL import Image
import numpy as np
import sqlite3


def get_text():
    """
    获取简介文本
    :return:获取的字符串 
    """
    con = sqlite3.connect("E:\PYcharm\learn_flask\movie.db")
    cur = con.cursor()

    string = ""
    sql = "select info from movie_top"
    data = cur.execute(sql)

    for item in data:  # 把查询到的数据转换成字符串,防止游标关闭数据没有加载完
        string = string + item[0]

    con.commit()
    cur.close()
    con.close()
    return string


def cut_text(text):
    """
    通过jieba.cut()把文章拆分为词
    :param text:  简介文本
    :return: 词条字符串
    """
    cut = jieba.cut(text)  # 使用jieba模板,把文本拆分为词
    string = ' '.join(cut)

    return string


def draw(string):

    img = Image.open(r'./tree.jpg')  # 打开遮挡图片
    img_arr = np.array(img)  # 利用numpy,返回一个数组
    #  创建一个词云对象
    wc = WordCloud(
        background_color='white',
        mask=img_arr,
        font_path='msyh.ttc'  # 字体
    )
    wc.generate_from_text(string)  # 使用词条生成词云

    fig = plt.figure("豆瓣Top250")   # 创建一个画布
    plt.imshow(wc) 
    plt.axis('off')

    plt.show()

if __name__ == "__main__":

    text = get_text()  # 从数据库中读取文本
    string = cut_text(text)  # 把文本拆分为词条
    draw(string)  # 构建词云


注意选择遮挡图片时背景选用纯白色

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值