zoukankan      html  css  js  c++  java
  • python绘制词云图

    词云图是文本分析中比较常见的一种可视化手段,将出现频率相对高的词字体相对变大,让重点词,关键词一目了然

    主要用到了python的两个库:wordcloud和jieba,直接pip安装即可

    jieba主要用于中文分词,wordcloud主要用于统计词频和绘图
    jieba分词:

    import jieba
    s = "一身男儿血,满腔报国志"
    print("精准模式:" + '|'.join(jieba.cut(s)))
    print("全模式:" + '|'.join(jieba.cut(s, cut_all=True)))
    print("搜索引擎模式:" + '|'.join(jieba.cut_for_search(s)))
    

    输出:

    精准模式:一身|男儿|血|,|满腔|报国志
    全模式:一身|男儿|血|,|满腔|报国|报国志
    搜索引擎模式:一身|男儿|血|,|满腔|报国|报国志
    

    这里还可以设置自定义词典,比如“一身男儿血”不能进行分割,我们可以将“一身男儿血”放入自定义词典

    自定义词典的格式:一个词占一行,比如我们设置的dict.txt是

    import jieba
    s = "一身男儿血,满腔报国志"
    jieba.load_userdict('dict.txt')
    print("精准模式:" + '|'.join(jieba.cut(s)))
    print("全模式:" + '|'.join(jieba.cut(s, cut_all=True)))
    print("搜索引擎模式:" + '|'.join(jieba.cut_for_search(s)))
    

    输出:

    精准模式:一身男儿血|,|满腔|报国志
    全模式:一身|一身男儿血|男儿|血|,|满腔|报国|报国志
    搜索引擎模式:一身|男儿|一身男儿血|,|满腔|报国|报国志
    

    首先我们找一张图片,如:

    准备一段文字,可以是字符串,也可以是写在文件里面的,写在文件内的需要读取出来,然后在用jieba进行分词,如果是分好的词,可以直接进行使用
    代码:

    import jieba
    import numpy as np
    import PIL.Image as Image
    from wordcloud import WordCloud
    
    text = '''
    世界上最简单、有最重要的东西是什么?——是数字。
    0到9九个数字,支撑起了人类的科学大厦。0和1两个数字,
    构建了无边无际的互联网世界。5G、大数据、人工智能、
    工业互联网……“新基建”将推动我国步入下一个发展周期,
    背后的本质是0和1。再来看一串数字:14万所学校,
    300万个班级,1.3亿学生,全国3亿人。
    这是钉钉最新发布的“在线上课”数据和总的用户数据。
    这串数字的背后,仍是0和1。没有0和1,就没有中国的抗疫胜利,
    社会就要停滞,经济就要崩溃。
    '''
    
    word_list = jieba.cut(text)
    space_word_list = ' '.join(word_list)
    print(space_word_list)
    # 调用包PIL中的open方法,读取图片文件,通过numpy中的array方法生成数组
    mask_pic = np.array(Image.open("1.png"))
    word = WordCloud(
        font_path='C:/Windows/Fonts/simfang.ttf',  # 设置字体,本机的字体
        mask=mask_pic,  # 设置背景图片
        background_color='white',  # 设置背景颜色
        max_font_size=150,  # 设置字体最大值
        max_words=2000,  # 设置最大显示字数
        stopwords={'的'}  # 设置停用词,停用词则不在词云途中表示
                     ).generate(space_word_list)
    image = word.to_image()
    word.to_file('2.png')  # 保存图片
    image.show()
    

    结果:

  • 相关阅读:
    普通平衡树(AVL树)
    正态分布与二项分布
    grahql操作
    skywalking定时删除在大并发下引起的性能问题
    Apache SkyWalking SQL注入漏洞复现分析 (CVE-2020-9483)
    skywalking远程调试Apache SkyWalking SQL注入
    sourceTree详细使用教程
    git 分支的相关操作、创建分支、查看分支、切换分支、删除分支
    [Git高级教程 (一)] 通过Tag标签回退版本修复bug
    idea 版本2018.3.6版本的安装
  • 原文地址:https://www.cnblogs.com/hziwei/p/12919143.html
Copyright © 2011-2022 走看看