美文网首页
【Python 3+】wordcloud词云入门系列(五):读取

【Python 3+】wordcloud词云入门系列(五):读取

作者: 藝小郴 | 来源:发表于2019-12-11 08:39 被阅读0次

    【本文目录】
    一、读取外部.txt文件制作词云
    二、wordcloud与jieba双剑合璧


    一、读取外部.txt文件制作词云

    外部.txt内容,请保存为utf-8编码格式(如图),否则采用encoding='utf-8'读取文件时会报错。


    txt存为utf-8编码格式.jpg

    大学之道,在明明德,在亲民,在止于至善。知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。物有本末,事有终始。知所先后,则近道矣。
      古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知。致知在格物。物格而后知至,知至而后意诚,意诚而后心正,心正而后身修,身修而后家齐,家齐而后国治,国治而后天下平。自天子以至于庶人,壹是皆以修身为本。
      其本乱而末治者,否矣。其所厚者薄,而其所薄者厚,未之有也。此谓知本,此谓知之至也。

    代码示例

    import wordcloud
    
    # 读取当前项目路径中的.txt文件
    with open("test10_daxue.txt",'r',encoding='utf-8')  as f:
        text = f.read()
    
    # 以下字体为Windows系统中C:\Windows\Fonts中的微软雅黑
    font = r'C:\Windows\Fonts\msyh.ttf'
    
    # 实例化对象
    w = wordcloud.WordCloud(font_path=font,scale=6)
    
    # 调用generate方法将文本传入生成wordcloud
    w.generate(text)
    
    # 调用to_file方法导出图像文件,支持.jpg、.png、.tif、.bmp等多格式
    w.to_file("test10_readExternalFile.jpg")
    

    输出成果

    test10_readExternalFile.jpg

    二、wordcloud与jieba双剑合璧

    (一)为啥jieba要来凑热闹

    代码示例

    import wordcloud
    import jieba
    
    # 读取当前项目路径中的.txt文件
    with open("test10_daxue.txt",'r',encoding='utf-8')  as f:
        text = f.read()
    
    # 将读取的外部文件进行jieba分词,并赋值给制作云词的变量
    jieba_text = ' '.join(jieba.cut(text))
    
    w = wordcloud.WordCloud(font_path='msyh.ttf',scale=6)
    w.generate(jieba_text)
    w.to_file("test11_wordcloud_jieba.jpg")
    

    输出成果

    test11_wordcloud_jieba.jpg

    (二)进一步发挥jieba功效

    代码示例

    import wordcloud
    import jieba
    
    # 读取当前项目路径中的.txt文件
    with open("test10_daxue.txt",'r',encoding='utf-8')  as f:
        text = f.read()
        
    jieba.del_word("而后")
    jieba.del_word("明明")
    jieba.del_word("此谓")
    
    jieba.add_word("大学之道")
    
    # 将读取的外部文件进行jieba分词,并赋值给制作云词的变量
    jieba_text = ' '.join(jieba.cut(text))
    
    w = wordcloud.WordCloud(font_path='msyh.ttf',scale=6)
    w.generate(jieba_text)
    w.to_file("test12_wordcloud_jieba_deladd.jpg")
    

    输出成果

    test12_wordcloud_jieba_deladd.jpg

    为什么在wordcloud本身具备分词功能的情况下还需jieba,对比第一张与第二、三张图,是不是不言而喻了呢?

    有关jieba可以参考笔者「小郴编程」文集中:jieba从零到壹小白级入门(含代码示例)


    继续卖卖关子,wordcloud真正高端玩法,下回不见不散!

    ☺引用转载还请注明作者说明出处哟!☺

    相关文章

      网友评论

          本文标题:【Python 3+】wordcloud词云入门系列(五):读取

          本文链接:https://www.haomeiwen.com/subject/xzjggctx.html