利用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:\data\wordcloud-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")

    遮罩图:

  词云图:

  

        

wordcloud + jieba 生成词云的更多相关文章

  1. Python3+pdfminer+jieba+wordcloud+matplotlib生成词云(以深圳十三五规划纲要为例)

    一.各库功能说明 pdfminer----用于读取pdf文件的内容,python3安装pdfminer3k jieba----用于中文分词 wordcloud----用于生成词云 matplotlib ...

  2. python爬取豆瓣流浪地球影评,生成词云

    代码很简单,一看就懂. (没有模拟点击,所以都是未展开的) 地址: https://movie.douban.com/subject/26266893/reviews?rating=&star ...

  3. 爬虫之使用requests爬取某条标签并生成词云

    一.爬虫前准备 1.工具:pychram(python3.7) 2.库:random,requests,fake-useragent,json,re,bs4,matplotlib,worldcloud ...

  4. python 基于 wordcloud + jieba + matplotlib 生成词云

    词云 词云是啥?词云突出一个数据可视化,酷炫.以前以为很复杂,不想python已经有成熟的工具来做词云.而我们要做的就是准备关键词数据,挑一款字体,挑一张模板图片,非常非常无脑.准备好了吗,快跟我一起 ...

  5. 已知词频生成词云图(数据库到生成词云)--generate_from_frequencies(WordCloud)

    词云图是根据词出现的频率生成词云,词的字体大小表现了其频率大小. 写在前面: 用wc.generate(text)直接生成词频的方法使用很多,所以不再赘述. 但是对于根据generate_from_f ...

  6. 作业练习P194,jieba应用,读取,分词,存储,生成词云,排序,保存

    import jieba #第一题 txt='Python是最有意思的编程语言' words=jieba.lcut(txt) #精确分词 words_all=jieba.lcut(txt,cut_al ...

  7. 根据词频生成词云(Python wordcloud实现)

    网上大多数词云的代码都是基于原始文本生成,这里写一个根据词频生成词云的小例子,都是基于现成的函数. 另外有个在线制作词云的网站也很不错,推荐使用:WordArt 安装词云与画图包 pip3 insta ...

  8. Python统计excel表格中文本的词频,生成词云图片

    import xlrd import jieba import pymysql import matplotlib.pylab as plt from wordcloud import WordClo ...

  9. 【python3】爬取简书评论生成词云

    一.起因: 昨天在简书上看到这么一篇文章<中国的父母,大都有毛病>,看完之后个人是比较认同作者的观点. 不过,翻了下评论,发现评论区争议颇大,基本两极化.好奇,想看看整体的评论是个什么样, ...

随机推荐

  1. spring 回顾

    主要就是它的IOC理念 即:把对象的创建.初始化.销毁等工作交给spring容器来做 依赖jar

  2. 很实用的html meta标签实现页面跳转

    就算你是有很多年开发经验的web开发工程师,有着很多web开发经验,对于先进的web开发技术有着很深刻的研究,然而你却忽略了那些最最基础的东西!现在我来问你,你是否对html所有的标签都能熟练的使用呢 ...

  3. Node.js常用express方法

    Node.js 手册查询-Express 方法 1.send方法 send 方法向浏览器发送一个响应信息,并可以智能处理不同类型的数据 send方法在输出响应时会自动进行一些设置,比如HEAD信息.H ...

  4. PAT_A1108#Finding Average

    Source: PAT A 1108 Finding Average (20 分) Description: The basic task is simple: given N real number ...

  5. github+hexo(window10)

    一.申请github账户 二.先安装node.js.git 本地: 三.安装hexo(建立静态网页,用Markdown写博客) 1.创建文件地址 在合适的地方新建一个文件夹,用来存放自己的博客文件,比 ...

  6. HDU1850 - Being a Good Boy in Spring Festival 【尼姆博弈】

    一年在外 父母时刻牵挂  春节回家 你能做几天好孩子吗  寒假里尝试做做下面的事情吧  陪妈妈逛一次菜场  悄悄给爸爸买个小礼物  主动地 强烈地 要求洗一次碗  某一天早起 给爸妈用心地做回早餐  ...

  7. ubuntu 配置lamp

    官方配置网站:http://wiki.ubuntu.org.cn/LAMP_%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%AE%89%E8%A3%85%E9%85%8D%E7%BD%A ...

  8. 工厂模式的python实现

    #1.什么是工厂模式 #2.工厂模式的分类 ''' 1. 简单工厂模式 2. 工厂方法模式 3. 抽象工厂方法模式 ''' #3.简单工厂模式的python实现 from abc import ABC ...

  9. 权值线段树&线段树合并

    权值线段树 所谓权值线段树,就是一种维护值而非下标的线段树,我个人倾向于称呼它为值域线段树. 举个栗子:对于一个给定的数组,普通线段树可以维护某个子数组中数的和,而权值线段树可以维护某个区间内数组元素 ...

  10. ACDream - Power Sum

    先上题目: Power Sum Time Limit: 20000/10000MS (Java/Others) Memory Limit: 128000/64000KB (Java/Others) S ...