zoukankan      html  css  js  c++  java
  • wordcloud + jieba 生成词云

    利用jieba库和wordcloud生成中文词云。

     

    jieba库:中文分词第三方库

      分词原理:

        利用中文词库,确定汉字之间的关联概率,关联概率大的生成词组

      三种分词模式:

        1、精确模式:把文本精确的切分开,不存在冗余单词

        2、全模式:把文本中所有可能的词语都扫描出来,有冗余

           3、搜索引擎模式:在精确模式基础上,对长词再次切分

      常用函数:

        jieba.lcut(s)       #精确模式,返回列表类型的分词结果

        jieba.lcut(s,cut_all=True)        #全模式,返回列表类型的分词结果

        jieba.lcut_for_search(s,cut_all=True)         # 搜索引擎模式(精确模式后对过长的词再精确分词),返回列表类型的分词结果

        jieba.add_word(w)  #在参考的中文词库中添加自定义的词,如:jieba.add_word(“产生式系统”),无返回

        jieba.del_word(w)  #在参考的中文词库中删除

        jieba.analyse.extract_tags(sentence,topK=10)  #关键词提取,返回权重最大的10个词语,返回列表类型的提取结果,注意:import jieba.analyse

        

    wordcloud库:词云生成库

      生成词云的三个步骤:   

    import wordcloud
    
    #1、生成wordcloud对象,设置字体路径和其他基本属性 #除了font_path外的一些常用属性: #词云使用的字体:font_path #生成图片的大小:width=120,height=120 #生成词云的形状:mask(结合下面的实例解释) #词云的背景颜色:background_color="white" w = wordcloud.WordCloud(font_path="C:/Users/ASUS/Desktop/aaa.ttf") #2、产生词云 w.generate("春天 春天 在哪里 这里") #3、把词云输出到已创建的png、jpg文件里,可打开查看结果 w.to_file("outfile.png")

      产生的词云:

      

      安装与运行时可能遇到的问题:

        1、安装:直接用命令行 pip install wordcloud 安装会产生错误   Microsoft Visual C++ 14.0 is required.

           解决方法:1)点击进入pythonlib页面:https://www.lfd.uci.edu/~gohlke/pythonlibs/

                2)下拉找到wordcloud包:

               3)下载对应版本的wordcloud,存放到文件夹下

                    其中cp表示python版本,如36对应3.6 win为操作系统位数,32位或6位

               4)再执行命令行:

                  pip install C:datawordcloud-1.4.1-cp36-cp36m-win_amd64.whl

               5)安装成功

          2、编译时显示 OSError: cannot open resource

             解决方法:库中自带的字体文件不是中文,可以自己下载一个ttf字体文件放到对应文件夹下,

                  一个ttf字体文件链接: https://pan.baidu.com/s/1xJVPe1YIXN9Wl_z3fkVpFg 密码: 7iux

                  在生成词云时使用 wordcloud.WordCloud( font_path="C:/Users/ASUS/Desktop/returnline/aaa.ttf" )

    利用jieba+wordcloud生成词云

    import wordcloud    
    import jieba
    from scipy.misc import imread   #生成遮罩mask(词云的形状)
    import jieba.analyse    #top30关键词提取
    
    mk=imread("0.jpg")  #获得作为遮罩的图片,我的是一只蜗牛
    txt = open("1.txt").read()  #获得要生成词云的文本,并将内容转换为字符串
    #生成词云对象,大小为120*120,遮罩是0.jpg,背景颜色是白色
    w = wordcloud.WordCloud(font_path="C:/Users/ASUS/Desktop/returnline/aaa.ttf",width=120,height=120,mask=mk,background_color="white")
    #jieba统计并提取权值top30的词语,返回list
    ls=jieba.analyse.extract_tags(txt,topK=30)
    #将list转换为元素间空格分隔的字符串,创建词云
    w.generate(" ".join(ls))
    #将词云导出到outfile.png
    w.to_file("outfile.png")

        遮罩图:

      词云图:

      

            

  • 相关阅读:
    mysql数据库基本类型
    常用辅助类【转】
    Java 并发笔记】并发机制底层实现整理[转发]
    关于PROPAGATION_NESTED的理解
    线程数设置
    c# Expression 扩展[转]
    Net定时器 【转载】
    【转】高可用设计-58沈剑
    【转】委托的三种调用示例(同步调用 异步调用 异步回调)
    [coursera OA] acme match
  • 原文地址:https://www.cnblogs.com/luiyuying/p/9063995.html
Copyright © 2011-2022 走看看