博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
wordcloud + jieba 生成词云
阅读量:6449 次
发布时间:2019-06-23

本文共 2181 字,大约阅读时间需要 7 分钟。

利用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页面:

            2)下拉找到wordcloud包:

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

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

           4)再执行命令行:

              pip install C:\data\wordcloud-1.4.1-cp36-cp36m-win_amd64.whl

           5)安装成功

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

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

              一个ttf字体文件链接: 密码: 7iux

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

 

利用jieba+wordcloud生成词云

import wordcloud    import jiebafrom 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的词语,返回listls=jieba.analyse.extract_tags(txt,topK=30)#将list转换为元素间空格分隔的字符串,创建词云w.generate(" ".join(ls))#将词云导出到outfile.pngw.to_file("outfile.png")

    遮罩图:

  词云图:

  

 

 

        

 

转载于:https://www.cnblogs.com/luiyuying/p/9063995.html

你可能感兴趣的文章
Unity3D NGUI 给button按钮添加单间事件
查看>>
C# 使用各种API
查看>>
密码的校验.大小写字母,数字,特殊字符中的至少3种
查看>>
ios 不同sdk4.3 6.0版本号,关于方法的兼容性的通用方法
查看>>
Shell编程学习总结
查看>>
070、如何定制Calico 网络policy(2019-04-15 周一)
查看>>
构建之法阅读笔记02
查看>>
Webstorm常用快捷键备忘
查看>>
js滚动加载到底部
查看>>
关于mac远程链接window服务器以及实现共享文件
查看>>
Redis慢查询,redis-cli,redis-benchmark,info
查看>>
Virtualbox 虚拟机网络不通
查看>>
java概念基础笔记整理
查看>>
self parent $this关键字分析--PHP
查看>>
CC_UNUSED_PARAM 宏含义的解释
查看>>
leetcode124二叉树最大路径和
查看>>
AngularJS笔记整理 内置指令与自定义指令
查看>>
学习OpenCV——BOW特征提取函数(特征点篇)
查看>>
shell与正则表达式
查看>>
第三篇:白话tornado源码之请求来了
查看>>