生成词云图片

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


def Product_WordClouds(text_file_path, background_picture, target_picture_path):

    """
    函数说明:
        在调用这个函数的时候,传递三个参数,就可以自动生成词云统计图片

    参数说明:
        (1)text_file_path: 这个参数代表存放文本信息的txt文档的地址
        (2)background_picture: 这个参数代表作为词云背景图片的地址
        (3)target_picture_path:这个参数代表生成的词云图片的存放地址
    """

    information = Read_text(text_file_path) #根据所给的存放信息的txt文档的地址,获得文字信息
    words_list = jieba.lcut(information)  #利用jieba库,对信息进行分割
    #print(words_list)  #可以将分割信息打印出来

    background_img = Image.open(background_picture)# 读取背景图片
    mask_img = np.array(background_img)
    Cloud = wordcloud.WordCloud(
        mask = mask_img,    #数据填充
        background_color="snow",  #设定背景颜色
        font_path="C:\Windows\Fonts\STHUPO.ttf",  #指定生成的词云图片中的文字所采用的字体
        min_font_size=5,   #图片中最小的字体
        max_font_size=60,  #图片中最大的字体
        )

    words_list = Remove_redundancy_words(words_list) #对于分割得到的列表进行筛选
    Cloud.generate(",".join(words_list))
    Cloud.to_file(target_picture_path)  # 生成词云图片


def Remove_redundancy_words(words_list,abandon_words_list=None):

    """
    函数说明:
        这个函数接收待处理的词汇列表,还有一个可选择的冗余词汇列表,处理后返回新的列表,这个函数会删除掉原来列表中长度为一和
        用户指定要删除的词汇。目的是处理文本信息,去除 的 地 和 这样的无意义词汇。
    参数说明:
        (1)words_list:待处理的词汇列表
        (2)abandon_words_list:这个是可以选择的,如果调用函数的时候不传递这个参数,则函数只是剔除列表中长度为一的词汇。如果传递参数列表了,则会将
           这个列表中出现的词汇在原始列表中删除。
    """

    for word in words_list[:]:#删除无意义词汇的循环
        if abandon_words_list != None:#判断是否有用户输入一些特定的词汇
            if len(word) == 1 or word in abandon_words_list:#判定是否满足删除条件
                words_list.remove(word) #在元列表中删除满足条件的词汇
        else:
            if len(word) == 1:
                words_list.remove(word)
    return words_list  #返回处理之后的列表


def Read_text(filepath):

    """
        函数说明:传递给函数一个存放文字信息的txt文档地址,返回这个文档的字符信息
        参数说明:
            (1)filepath:txt文档的地址
    """

    f = open(filepath,encoding='UTF-8')#按照utf-8的编码形式获取文档中的信息
    texts = f.read()
    return texts #返回文档中的文字信息


text_file_path = './十四五规划.txt'  #设定存储信息的txt文档地址
source_img_path = './地图.PNG' #设定背景图片的地址
target_img_path = './cloud_trash.jpg' #设定生成词云图片的目标地址
Product_WordClouds(text_file_path, source_img_path, target_img_path) #调用函数,生成词云图片

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值