当前位置: 首页 > news >正文

第一次python词云尝试

1 分析英文文本

 1 from wordcloud import WordCloud
 2 import os
 3 
 4 cur_path = os.path.dirname(__file__)
 5 
 6 with open(os.path.join(cur_path, 'love_en.txt')) as fp:
 7     txt = fp.read()
 8     # print(txt)
 9     wordcloud = WordCloud().generate(txt)
10     image = wordcloud.to_image()
11     image.show()

发生错误,错误类型:OSError: cannot open resource

解决方案:添加字体

改正后代码:

 1 from wordcloud import WordCloud
 2 import os
 3 
 4 cur_path = os.path.dirname(__file__)
 5 
 6 with open(os.path.join(cur_path, 'love_en.txt')) as fp:
 7     txt = fp.read()
 8     # print(txt)
 9     wordcloud = WordCloud(font_path = 'FZLTXIHK.TTF').generate(txt)
10     image = wordcloud.to_image()
11     image.show()

进一步优化代码:

 1 from wordcloud import WordCloud
 2 import os
 3 
 4 cur_path = os.path.dirname(__file__)
 5 
 6 with open(os.path.join(cur_path, 'love_en.txt')) as fp:
 7     txt = fp.read()
 8     # print(txt)
 9     wordcloud = WordCloud(font_path = 'FZLTXIHK.TTF', # 字体
10                           background_color = 'black', # 背景色
11                           max_words = 30, # 最大显示单词数
12                           max_font_size = 60 # 频率最大单词字体大小
13                         ).generate(txt)
14     image = wordcloud.to_image()
15     image.show()

效果图:

 

2 分析中文文本

 1 import jieba
 2 from wordcloud import WordCloud
 3 import os
 4 
 5 cur_path = os.path.dirname(__file__)
 6 
 7 def chinese_jieba(txt):
 8     wordlist_jieba = jieba.cut(txt) # 将文本分割,返回列表
 9     txt_jieba = " ".join(wordlist_jieba) # 将列表拼接为以空格为间断的字符串
10     return txt_jieba
11 
12 stopwords = {'这些':0, '那些':0, '因为':0, '所以':0} # 噪声词
13 
14 with open(os.path.join(cur_path, '择天记.txt')) as fp:
15     txt = fp.read()
16     txt = chinese_jieba(txt)
17     # print(txt)
18     wordcloud = WordCloud(font_path = 'FZLTXIHK.TTF', # 字体
19                           background_color = 'black', # 背景色
20                           max_words = 30, # 最大显示单词数
21                           max_font_size = 60, # 频率最大单词字体大小
22                           stopwords = stopwords # 过滤噪声词
23                         ).generate(txt)
24     image = wordcloud.to_image()
25     image.show()

效果图:

 

3 进一步优化显示效果

 1 import jieba
 2 from wordcloud import WordCloud
 3 import os
 4 import numpy
 5 import PIL.Image as Image
 6 
 7 cur_path = os.path.dirname(__file__)
 8 
 9 def chinese_jieba(txt):
10     wordlist_jieba = jieba.cut(txt) # 将文本分割,返回列表
11     txt_jieba = " ".join(wordlist_jieba) # 将列表拼接为以空格为间断的字符串
12     return txt_jieba
13 
14 stopwords = {'这些':0, '那些':0, '因为':0, '所以':0} # 噪声词
15 mask_pic = numpy.array(Image.open(os.path.join(cur_path, 'love.jpg')))
16 
17 with open(os.path.join(cur_path, '择天记.txt')) as fp:
18     txt = fp.read()
19     txt = chinese_jieba(txt)
20     # print(txt)
21     wordcloud = WordCloud(font_path = 'FZLTXIHK.TTF', # 字体
22                           background_color = 'white', # 背景色
23                           max_words = 100, # 最大显示单词数
24                           max_font_size = 60, # 频率最大单词字体大小
25                           stopwords = stopwords, # 过滤噪声词
26                           mask = mask_pic # 自定义显示的效果图
27                         ).generate(txt)
28     image = wordcloud.to_image()
29     image.show()

效果图:

 

转载于:https://www.cnblogs.com/jiangchengzi93812/p/9450455.html

相关文章:

  • 论优越感
  • 【院校巡礼】em兰州大学/em - 叁研良语的文章 - 知乎
  • μC/OS-III 概述
  • centos6.5使用yum安装redis 设置开机启动
  • 初识设计模式(建造者模式)
  • 支付系统整体架构
  • Sketch 介绍
  • 简单的自创线程池
  • python网络编程三次握手和四次挥手
  • javascript基础知识(4) 字符串
  • C语言讨论象棋将帅问题,代码短又美!
  • python存储json文件
  • 6.0 实现app登录
  • socket编程-tcp
  • 私钥、公钥和地址
  • 分享一款快速APP功能测试工具
  • 【comparator, comparable】小总结
  • 【跃迁之路】【477天】刻意练习系列236(2018.05.28)
  • CAP理论的例子讲解
  • javascript 总结(常用工具类的封装)
  • laravel5.5 视图共享数据
  • leetcode386. Lexicographical Numbers
  • MYSQL 的 IF 函数
  • Mysql优化
  • Sequelize 中文文档 v4 - Getting started - 入门
  • 阿里云应用高可用服务公测发布
  • 从伪并行的 Python 多线程说起
  • 官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?
  • 互联网大裁员:Java程序员失工作,焉知不能进ali?
  • 精彩代码 vue.js
  • 如何优雅地使用 Sublime Text
  • 《TCP IP 详解卷1:协议》阅读笔记 - 第六章
  • Prometheus VS InfluxDB
  • 移动端高清、多屏适配方案
  • ​水经微图Web1.5.0版即将上线
  • #define用法
  • (+4)2.2UML建模图
  • (c语言)strcpy函数用法
  • (C语言)求出1,2,5三个数不同个数组合为100的组合个数
  • (Python) SOAP Web Service (HTTP POST)
  • (PyTorch)TCN和RNN/LSTM/GRU结合实现时间序列预测
  • (规划)24届春招和25届暑假实习路线准备规划
  • (三) prometheus + grafana + alertmanager 配置Redis监控
  • (转)Linq学习笔记
  • .NET CF命令行调试器MDbg入门(一)
  • .NET NPOI导出Excel详解
  • .NET 分布式技术比较
  • .NetCore 如何动态路由
  • .net解析传过来的xml_DOM4J解析XML文件
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @converter 只能用mysql吗_python-MySQLConverter对象没有mysql-connector属性’...
  • @FeignClient注解,fallback和fallbackFactory
  • [ vulhub漏洞复现篇 ] ECShop 2.x / 3.x SQL注入/远程执行代码漏洞 xianzhi-2017-02-82239600
  • [20190401]关于semtimedop函数调用.txt