WordCloud词云(超详细)

WordCloud词云-学习

  • 1. 安装 wordcloud 模块
  • 2. wordcloud 简介
  • 3. wordcloud 如何将文本转化为词云
  • 4. WordCloud(<参数>)介绍
  • 5. 词云绘制1
  • 6. 词云绘制2
  • 1. 安装 wordcloud 模块

    1. 网络正常情况下命令行输入pip install wordcloud,如果提示报错按以下步骤进行安装
    pip install wordcloud
    
    1. pip安装wordcloud过程中提示pip工具版本低,需pip-10.0.1版本,需先更新pip包管理工具:
    python -m pip install --upgrade pip
    
    1. pip更新到最新版本后还是安装wordcloud报错

    先下载wordcloud‑1.4.1‑cp36‑cp36m‑win_amd64.whl安装包到本地目录, python为3.6.x版本的下载cp36的包,注意不要下cp37,安装不了的。

    1. 打开命令行窗口,进入到安装包所在目录位置如 D:\download

    2. 输入

    pip install wordcloud-1.4.1-cp36-cp36m-win_amd64.whl
    

    回车安装即可。

    2. wordcloud 简介

    wordcloud 库把词云当作一个WordCloud对象

  • wordcloud.WordCloud() 代表一个文本对应的词云
  • 可以根据文本中词语出现的频率等参数绘制词云
  • 绘制词云的形状、尺寸和颜色均可设定
  • 以WordCloud对象为基础,配置参数、加载文本、输出文件
  • c = wordcloud.WordCloud()  # 配置对象参数
    c.generate("wordcloud by python")  # 加载词云文本
    c.to_file("pywordcloud.png")  # 输出词云文件
    

    3. wordcloud 如何将文本转化为词云

    1. 分隔:以空格分隔单词
    2. 统计:单词出现次数并过滤
    3. 字体:根据统计配置字号
    4. 布局:颜色环境尺寸

    4. WordCloud(<参数>)介绍

    1. width:指定词云对象生成图片的宽度,默认400像素
    w=wordcloud.WordCloud(width=600) 
    
    1. height:指定词云对象生成图片的高度,默认200像素
    w=wordcloud.WordCloud(height=400) 
    
    1. min_font_size:指定词云中字体的最小字号,默认4号
    w=wordcloud.WordCloud(min_font_size=10) 
    
    1. max_font_size:指定词云中字体的最大字号,根据高度自动调节
    w=wordcloud.WordCloud(max_font_size=20) 
    
    1. font_step:指定词云中字体字号的步进间隔,默认为1
    w=wordcloud.WordCloud(font_step=2) 
    
    1. font_path:指定文体文件的路径,默认None
    w=wordcloud.WordCloud(font_path="msyh.ttc") 
    
    1. max_words:指定词云显示的最大单词数量,默认200
    w=wordcloud.WordCloud(max_words=20) 
    
    1. stop_words:指定词云的排除词列表,即不显示的单词列表
    w=wordcloud.WordCloud(stop_words="Python") 
    
    1. mask:指定词云形状,默认为长方形,需要引用imread()函数
    from scipy.msc import imread
    
    mk=imread("pic.png")
    w=wordcloud.WordCloud(mask=mk) 
    
    1. background_color:指定词云图片的背景颜色,默认为黑色
      w=wordcloud.WordCloud(background_color="white")

    示例:

    text = "life is short, you need python"
    
    w = wordcloud.WordCloud(background_color="white")  # 把词云当做一个对象
    w.generate(text)
    w.to_file("pywordcloud2.png")
    

    5. 词云绘制1

    关于实施乡村振兴战略的意见.txt

    import jieba
    import imageio
    from wordcloud import WordCloud
    
    '''
    jieba支持三种分词模式:
        精确模式lcut(),试图将句子最精确地切开,适合文本分析,单词无冗余;
        全模式lcut(s, cut_all=True) ,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义,存在冗余;
        搜索引擎模式cut_for_search(s),在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
    '''
    
    with open("关于实施乡村振兴战略的意见.txt", "r") as f:
        allSentence = f.read()
    
    print(allSentence)
    
    re_move = [',', '。', '\n', '\xa0', '-', '(', ')']  # 无效数据
    
    # 去除无关数据
    for i in re_move:
        allSentence = allSentence.replace(i, "")
    
    pureWord = jieba.lcut(allSentence)
    
    with open("pureRuralRevitalieztion.txt", "w") as f:
         for i in pureWord:
             f.write(str(i)+" ")  # == ' '.join(pureWord),以空格拼接list中元素
    
    with open("pureRuralRevitalieztion.txt", "r") as f:
        pureWord = f.read()
    
    # 获取一张背景图片
    mask = imageio.imread("chinamap.jpg")
    word = WordCloud(background_color="white",\
                        width=800,\
                       height=800,
                       font_path='simhei.ttf',
                       mask=mask,
                       ).generate(pureWord)
    
    word.to_file('乡村振兴词云.png')
    
    # with open("pureRuralRevitalieztion.txt", "w") as f:
    #     for i in pureWord:
    #         f.write(i+" ")
    #
    #
    # c = wordcloud.WordCloud()  # 配置对象参数
    # c.generate(allSentence)
    # c.to_file("ruralRevitalieztion.png")
    

    6. 词云绘制2

    新时代中国特色社会主义.txt

    import jieba
    import imageio
    from wordcloud import WordCloud
    
    with open("新时代中国特色社会主义.txt", "r") as f:
        allSentence = f.read()
    
    print(allSentence)
    
    re_move = [',', '。', '\n', '\xa0', '-', '(', ')']  # 无效数据
    
    # 去除无关数据
    for i in re_move:
        allSentence = allSentence.replace(i, "")
    
    pureWord = jieba.lcut(allSentence)
    
    with open("pureChinaDevelop.txt", "w") as f:
         for i in pureWord:
             f.write(str(i)+" ")
    
    with open("pureChinaDevelop.txt", "r") as f:
        pureWord = f.read()
    
    mask = imageio.imread("chinamap.jpg")
    word = WordCloud(background_color="black",
                       width=800,
                       height=800,
                       font_path='simhei.ttf',
                       mask=mask,
                       ).generate(pureWord)
    
    word.to_file('新时代中国词云.png')
    

    这是当初刚学Python时嵩天老师书上的代码,那时候我学习时,把他书中的内容敲下来,注释到.py文件中,今天复习时,看到了,特地整理出来,感觉那时候记笔记真的好low,当时只会用csdn的文章,但没想过自己写文章。可能事物的发展,人的成长总是曲折缓慢吧!

    加油!

    感谢!

    努力!

    来源:ZSYL

    物联沃分享整理
    物联沃-IOTWORD物联网 » WordCloud词云(超详细)

    发表评论