python3微信好友个性签名生成云图

本文介绍如何使用Python从微信好友的个性签名中提取文本,并利用jieba分词及WordCloud生成个性化词云图。文章提供了完整的代码实现,包括安装所需库、获取个性签名、处理文本、生成词云图等步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 安装

    pip3 install wordcloud

    如果报错

    下载对应的whl文件https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud

     进入whl所在的目录

    用pip3 命令安装 例:pip3 install xxxxxxxxx.whl

    pip3 install Pillow

    pip3 install jieba

    pip3 install itchat

2. 获取微信好友的个性签名

TList = []
def get_signature():
    friends = itchat.get_friends(update=True)[0:]
    for friend in friends:
        signature = friend["Signature"].strip()
        signature = re.sub("<span.*>", "", signature)
        signature = re.sub(" ", "", signature)
        signature = re.sub("emoji ", "", signature)
        TList.append(signature)

3. 生成云图片

    首先要将想要生成云图片形状的模板图片放在当前目录下

def cloud_pic():
    raw_signature_string = ''.join(TList)
    text = jieba.cut(raw_signature_string, cut_all=True)
    wl_space_split = ' '.join(text)

    d = os.path.dirname(os.path.abspath(__file__))

    alice_coloring = np.array(Image.open(os.path.join(d, "dm.jpg"))) #原图

    my_wordcloud = WordCloud(background_color="white", #背景色
            max_words=2000,    #字数上限
            mask=alice_coloring, #形状
            max_font_size=50,#字体大小
            random_state=150, #随机数量
            font_path='C:/Windows/Fonts/simhei.ttf').generate(wl_space_split) #中文字体
    image_color = ImageColorGenerator(alice_coloring)
    plt.imshow(my_wordcloud.recolor(color_func=image_color))
    plt.imshow(my_wordcloud)
    plt.axis("off")
    plt.show()

PS:如果要生成中文云词,则要用中文字体,否则生成的是矩形框

4. 结果

   

原图生成图

5. 完整代码

import itchat
import re
import jieba
import matplotlib.pyplot as plt
import PIL.Image as Image
import numpy as np
import os
from wordcloud import WordCloud,ImageColorGenerator

TList = []
def get_signature():
    friends = itchat.get_friends(update=True)[0:]
    for friend in friends:
        signature = friend["Signature"].strip()
        signature = re.sub("<span.*>", "", signature)
        signature = re.sub(" ", "", signature)
        signature = re.sub("emoji ", "", signature)
        TList.append(signature)

def cloud_pic():
    raw_signature_string = ''.join(TList)
    text = jieba.cut(raw_signature_string, cut_all=True)
    wl_space_split = ' '.join(text)

    d = os.path.dirname(os.path.abspath(__file__))

    alice_coloring = np.array(Image.open(os.path.join(d, "dm.jpg"))) #原图

    my_wordcloud = WordCloud(background_color="white", #背景色
            max_words=2000,    #字数上限
            mask=alice_coloring, #形状
            max_font_size=50,#字体大小
            random_state=150, #随机数量
            font_path='C:/Windows/Fonts/simhei.ttf').generate(wl_space_split) #中文字体
    image_color = ImageColorGenerator(alice_coloring)
    plt.imshow(my_wordcloud.recolor(color_func=image_color))
    plt.imshow(my_wordcloud)
    plt.axis("off")
    plt.show()

def main():
    itchat.login()
    get_signature()
    cloud_pic()
    itchat.logout()

if __name__ == '__main__':
    main()




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值