• python 生成18年写过的博客词云


    文章链接:https://mp.weixin.qq.com/s/NmJjTEADV6zKdT--2DXq9Q

    回看18年,最有成就的就是有了自己的 博客网站,坚持记录,写文章,累计写了36篇了,从一开始的难以下手,到现在成为一种习惯,虽然每次写都会一字一句斟酌,但是每次看到产出,内心还是开心的,享受这样的过程。

    这篇文章就是用python 生成自己写的博客词云,平常写的博客都是markdown 格式的,直接把文件传到后台,前端用js去解析文件显示的,所以我这里处理数据就不需要去爬虫网站,直接读文件处理的。

    关于生成词云图的,在另外两篇文章中也有介绍过:
    python itchat 爬取微信好友信息,生成词云

    python爬虫学习:爬虫QQ说说并生成词云图

    markdown文件处理,遍历文件夹,匹配md 后缀的文件,读文件,这里的root 是文件夹的绝对路径。

    import os
    total = ""
    file_list = os.listdir(root)
    for file in file_list:
        //处理md文件
        if os.path.splitext(file)[1] == ".md":
            path = os.path.join(root,file)
            text = open(path, encoding='utf-8').read()
            //最终得到的字符串
            total = total + "
    " + text
    

    得到所有的文本之后,使用结巴分词 pip3 install jieba,处理成单个的词语。

    import jieba
    wordlist = jieba.cut(total, cut_all=True)
    wl = " ".join(wordlist)
    

    因为平常写的文章里有很多的代码,这里可以正则只留下中文,然后再处理中文字符。

    import re
    rec = re.compile("[^u4E00-u9FA5]")
    total = rec.sub("", total)
    wordlist = jieba.cut(total, cut_all=True)
    wl = " ".join(wordlist)
    

    最后就是生成词云,采用WordCloud的库

    wc = WordCloud(
        # 设置背景颜色
        background_color="white",
        # 设置最大显示的词云数
        max_words=1000,
        # 这种字体都在电脑字体中,window在C:WindowsFonts下,mac下的是/System/Library/Fonts/PingFang.ttc 字体
        font_path='C:\Windows\Fonts\STFANGSO.ttf',
        height=2000,
        width=2000,
        # 设置字体最大值
        max_font_size=250,
        # 设置有多少种随机生成状态,即有多少种配色方案
        random_state=30,
    )
    myword = wc.generate(wl)  # 生成词云
    # 展示词云图
    plt.imshow(myword)
    plt.axis("off")
    wc.to_file('blog.png')  # 保存图片
    plt.ion()
    plt.pause(5)
    plt.close()  # 图片显示5s,之后关闭
    

    最终的结果显示图,除去代码之后,看这些词,不少还是跟android相关的,也是平常经常会提到的词汇。

    欢迎关注我的个人博客:https://www.manjiexiang.cn/

    更多精彩欢迎关注微信号:春风十里不如认识你
    一起学习,一起进步,欢迎上车,有问题随时联系,一起解决!!!

  • 相关阅读:
    NOP(4) default
    NOP(三) ASP.NET Application Life Cycle
    About the IoC
    开园庆祝!
    js 添加/删除数组开头/结尾元素
    JavaScript String.prototype.slice()
    JavaScript Array.prototype.splice()方法的使用
    js Map
    js Set
    Bruteforce Algorithm [HDU 3221]
  • 原文地址:https://www.cnblogs.com/taixiang/p/10262415.html
Copyright © 2020-2023  润新知