• 词云制作


    【领域文章来源】:

    通过百度查找余光中的《寻李白》,复制粘贴内容,在本地自己创建txt文件。

    【程序编写基本思路】

    通过jieba库和wordcloud库制作词云图片。调用目标txt内容,通过jieba的分词功能来产生词组;再用wordcloud库展示词云。

    【源代码】:

    import jieba
    from wordcloud import WordCloud
    
    excludes={'高力士','靴子','而今','太太','','','自从','那年'}
    f=open('寻李白.txt','r',encoding='utf-8')
    txt=f.read()
    f.close()
    words=jieba.lcut(txt)
    newtxt=''.join(words)
    wordcloud=WordCloud(background_color="white",
                        width=900,
                        height=600,
                        font_path='msyh.ttc',
                        stopwords=excludes,
                        ).generate(newtxt)
    wordcloud.to_file("寻李白.png")

    【词云效果】:

    【遇到问题及解决方法】:

    在最开始的时候其实我是用一首英文歌的歌词试试水,整体还都很顺畅,但是最终词云效果出来之后感觉不太美观。于是就想制作一个中文词云试试,然后.......问题就出现了。

    代码1.0:

    import jieba
    from wordcloud import WordCloud
    
    excludes={'高力士','靴子','而今','太太','','','自从','那年'}
    f=open('寻李白.txt','r')
    txt=f.read()
    f.close()
    words=jieba.lcut(txt)
    newtxt=''.join(words)
    wordcloud=WordCloud(background_color="white",
                        width=900,
                        height=600,
                        stopwords=excludes,
                        ).generate(newtxt)
    wordcloud.to_file("寻李白.png")

    运行!然后发现出现了不能解码的问题......

    我就去网上搜了一圈,参考CSDN博客,txt文档是gbk编码而Python不能识别,需要通过encoding=‘utf-8’转换一下。

    【这里虽然输出问题解决了,但是对于英文内容就可以直接生成词云,中文内容就需要增加这一行代码的原因我其实还是不是特别明白......如果有了解的同学,希望能够留言解答,非常感谢了。】

    开心地修改代码:

    import jieba
    from wordcloud import WordCloud
    
    excludes={'高力士','靴子','而今','太太','','','自从','那年'}
    f=open('寻李白.txt','r',encoding='utf-8')
    txt=f.read()
    f.close()
    words=jieba.lcut(txt)
    newtxt=''.join(words)
    wordcloud=WordCloud(background_color="white",
                        width=900,
                        height=600,
                        stopwords=excludes,
                        ).generate(newtxt)
    wordcloud.to_file("寻李白.png")

    运行!然后......

    ?????????

    翻开二级教程书看一看发现写着这么一句话:“处理中文时还需要指定中文字体”

    也就是说需要在最后WordCloud()中加入参数:font_path='xxx.ttc',其中xxx表示某字体。

    修改之后就是上面源代码部分的代码了。

    本人水平有限,难免会有错误的地方,还请多批评指正!

  • 相关阅读:
    [Liferay6.2.2]AUI的小坑:input的type属性
    官方Tomcat 8.0.24 Web漏洞整改记录
    通过ajax访问Tomcat服务器web service接口时出现No 'Access-Control-Allow-Origin' header问题的解决办法
    前端开发之BOM和DOM
    前端开发之JavaScript
    前端开发之CSS
    前端开发之HTML
    python编程之进程
    python编程之操作系统基础
    python网络编程之socket
  • 原文地址:https://www.cnblogs.com/Wsy3328/p/12631976.html
Copyright © 2020-2023  润新知