一、各库功能说明

pdfminer----用于读取pdf文件的内容,python3安装pdfminer3k

jieba----用于中文分词

wordcloud----用于生成词云

matplotlib----用于将词云可视化

这几个库的顺序也对应程序的顺序:

生使用pdfminer读取pdf文件的内容,然后使用jieba对内容进行中文分词,再然后使用wordcloud基于分词生成词云,最后使用matplotlib将词云可视化

二、程序源码

from urllib.request import urlopen
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfinterp import process_pdf, PDFResourceManager
from wordcloud import WordCloud
import matplotlib.pyplot as plt
import jieba
from io import StringIO class MyWordCloud():
def __init__(self):
pass #此函数用于读取和返回pdf文件的内容
def getPdfText(self,pdf_url):
pdf_file_obj = urlopen(pdf_url) pdf_rm = PDFResourceManager()
ret_str = StringIO()
lap = LAParams()
tc = TextConverter(pdf_rm, ret_str, laparams=lap) process_pdf(pdf_rm, tc, pdf_file_obj)
tc.close()
pdf_text = ret_str.getvalue()
ret_str.close()
return pdf_text def genWordCloud(self,pdf_url):
pdf_text = self.getPdfText(pdf_url) # WordCloud(按英文习惯)以空格分词,中文不用空格所以WordCloud不能正确对中文进行分词
# 为了使用WordCloud我们就需要先自己自己想办法完成分词,并将所有分词以空格隔开
# 我们的方法是先用结巴生成中文序列,然后使用join方法使用空格拼接所有序列
jieba_cut_seq = jieba.cut(pdf_text)
pdf_cut_text = " ".join(jieba_cut_seq) # 默认字体不支中文,需要指定要使用的中文字体路径;可从自己电脑已安装的字体中选,目录C:\Windows\Fonts
font_path = "C:\\Windows\\Fonts\\simfang.ttf"
wc = WordCloud(font_path,width=1000, height=880).generate(pdf_cut_text) plt.imshow(wc, interpolation="bilinear")
plt.axis("off")
plt.show() def __del__(self):
pass if __name__ == '__main__':
# 深圳十三五规划纲要文件的URL链接,要生成其他pdf文件的词云修改成该文件的URL即可
pdf_url = 'http://www.sz.gov.cn/fzggj/home/zwgk/ghjh/fzgh/201604/P020160412518770846515.pdf'
mwc = MyWordCloud()
mwc.genWordCloud(pdf_url)

运行程序,生成词云如下:

参考:

https://www.cnblogs.com/gooseeker/p/5527519.html
http://www.unixuser.org/~euske/python/pdfminer/programming.html
https://www.cnblogs.com/delav/p/7845539.html

Python3+pdfminer+jieba+wordcloud+matplotlib生成词云(以深圳十三五规划纲要为例)的更多相关文章

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

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

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

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

  3. wordcloud + jieba 生成词云

    利用jieba库和wordcloud生成中文词云. jieba库:中文分词第三方库 分词原理: 利用中文词库,确定汉字之间的关联概率,关联概率大的生成词组 三种分词模式: 1.精确模式:把文本精确的切 ...

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

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

  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. 广师大学习笔记之文本统计(jieba库好玩的词云)

    1.jieba库,介绍如下: (1) jieba 库的分词原理是利用一个中文词库,将待分词的内容与分词词库进行比对,通过图结构和动态规划方法找到最大概率的词组:除此之外,jieba 库还提供了增加自定 ...

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

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

随机推荐

  1. super()、this属性与static静态方法的执行逻辑

    1.super的构造顺序:永远优先构造父类的方法 2.static永远在类实例之前执行,this的使用范围为实例之后

  2. C#:导入Excel通用类(Xlsx格式)

    一.引用插件EPPlus.dll   插件下载地址:https://pan.baidu.com/s/1jEl7iu1H_C7-j9Wq37xIRQ  提取密码:pdy6 二.定义通用类XlsxExce ...

  3. git 修改文件夹名字后如何提交

    将文件夹名字从 v1.0.1 修改为 v1.0.2 git add --ignore-removal "v1.0.2/xsxsx"

  4. JavaScript 局部刷新

    JavaScript局部刷新具体代码展示如下 1.  #tabList代表需要刷新的元素的对象 2.  第二个#tabList 如果后面有第三个元素,那么后面需要加>*符号,如果不加,容易造成C ...

  5. SqlServer中exists和in的区别

    1.in 2.exists

  6. String,StringBuilder区别,一个是常量,一个是可变量

    String str="这就是爱的呼唤,这就是爱的奉献!!"; //这个str是不可变的字符串序列,要变会生成新的字符串,原字符串不变,是常量 StringBuilder sBui ...

  7. Java中String类型细节

    Java中String类型细节 一 . String两种初始化方式 1 . String str1= “abc”;//String类特有的创建字符对象的方式,更高效 在字符串缓冲区中检测”abc”是否 ...

  8. Navicat for MySQL 查看BLOB字段内容

    转载地址:https://blog.csdn.net/lwei_998/article/details/41871329

  9. python--calc计算器的小程序

    x写一个计算器的小程序,正在筹备中......钱不够,演员未定,剧本暂无,请稍等

  10. ado.net常用操作

    目录 一.ADO.NET概要 二.ADO.NET的组成 三.Connection连接对象 3.1.连接字符串 3.1.1.SQL Server连接字符串 3.1.2.Access连接字符串 3.1.3 ...