Python Wordcloud 词云------实站:爬取起点网站《大王饶命》,结合词云展示数据

本文主要是介绍Python Wordcloud 词云------实站:爬取起点网站《大王饶命》,结合词云展示数据,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 

  1、Wordcloud介绍和安装

  2、Wordcloud 参数介绍

  3、Wordcloud 实现操作

实战:爬取小说网站,结合jieba 和wordcloud展示小说中最常见的词语,分析展示数据。

注明:本地文件要有图片,txt文本,就可拿到代码直接执行,如果不行联系:qq:3440037784

wordcloud 介绍和安装:

wordcloud 简单利用英语来看就是词云,它是以词语为基本单位,更加直观的展示出我们的内容。

wordcloud 的安装:pip3 install wordcloud

环境介绍: pycharm 2017.2.3 + python 3.5.0

  1. wordcloud 的基本格式
#导入词云
from wordcloud import WordCloud
#打开文件并且读取完全
f = open('1.txt','r')
#创建wc设个实例对象,里面可传递相应的参数
#generate根据文本生成词云
wc = WordCloud(background_color='white',width=500,height=366,margin=2
).generate(f.read())
#to_file 输出到文件
wc.to_file('./image/0.jpg')
运行结果入下所示:
带入图片的基本格式:

  #导入词云from wordcloud import WordCloud
#图像处理函数pip install imageio
from imageio import imread
#打开文件并且读取完全
f = open('1.txt','r')#Read an image from a file as an array
#解析图片,将图片变成一个数组
mk = imread('9.png')#创建wc设个实例对象,里面可传递相应的参数
#generate根据文本生成词云
wc = WordCloud(mask=mk,background_color='white',width=500,height=366,margin=2).generate(f.read())#to_file 输出到文件
wc.to_file('./image/0.jpg')

 

Wordcloud 参数介绍

  mask:遮罩图,字的大小布局和颜色都会依据遮罩图生成。其实理论上这对字大小和清晰程度的影响不大,

  但是遮罩图色和背景色background_color如果易混淆,则可能是一个导致看起来不清晰的因素;

  另外遮罩图自身各个颜色之间的对比不强烈,也可能使图看起来层次感不够。

  background_color:背景色,默认黑。

  这个本来其实也不怎么影响清晰度,但是,就像之前在mask中提到的,如果遮罩图像颜色过浅、背景设置白色,

  可能导致字看起来“不清晰”。而实际上,我对一个浅色遮罩图分别用白、黑两种背景色后发现,

  黑色背景的强烈对比之下会有若干很浅也很小的词浮现出来,而之前因背景色、字色过于相近而几乎无法用肉眼看出这些词。

    mode:默认“RGB”。根据说明文档,如果想设置透明底色的云词图,那么可以设置background_color=None, mode="RGBA"

    max_font_size:最大字号。源文件中也有讲到,图的生成会依据最大字号等因素去自动判断词的布局。

  经测试,哪怕同一个图像,只要图本身尺寸不一样(比如我把一个300×300的图拉大到600×600再去当遮罩),那么同样的字号也是会有不同的效果。

  原理想想也很自然,字号决定了字的尺寸,而图的尺寸变了以后,最大字相对于图的尺寸比例自然就变了。

    min_font_size:最小字号。不设置的情况下,默认是4。

  尝试了设置比4大的字号,例如8、10,结果就是原本小于设定值且大于4号的词都直接不显示了,其它内容和未设置该值时都一样。

    relative_scaling:表示词频和云词图中字大小的关系参数,默认0.5。

  为0时,表示只考虑词排序,而不考虑词频数;为1时,表示两倍词频的词也会用两倍字号显示。

    scale:根据说明文档,当云词图很大的,加大该值会比使用更大的图更快,但值越高也会越慢(计算更复杂)。

  默认值是1。实际测试中,更大的值,确实输出图像看起来更精细(较小较浅的词会颜色更重,也感觉清楚,大的词差异不明显)。

  不过,可能由于我选的图不大、词也没有很多,所以差距并没有很大,缩小排列一下就基本上辨别不出多少差别了。

 

实战:爬取小说网站小说,并结合jieba 还有wordcloud 看看现在小说内容中都是有那些词语出现的多。
 

# -*- coding: utf-8 -*-
# @Time    : 2018/9/12 14:43
# @Author  : for
# @File    : 爬虫_词云.py
# @Software: PyCharm
import jieba
from scipy.misc import imread  # 这是一个处理图像的函数
from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
import matplotlib.pyplot as plt
from urllib import request
import time
from lxml import etree
#定义请求的地址
url = "https://read.qidian.com/chapter/9r9u8W1evJUCpOPIBxLXdQ2/eSlFKP1Chzg1"
#请求的头部
headers = {"Referer": "https://www.qiushibaike.com/","User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/68.0.3440.106 Safari/537.36"
}
#构建请求
req = request.Request(url = url,headers = headers)
#发起请求
response = request.urlopen(req)
#接收返回的内容,返回的内容以类文件的形式返回
content = response.read().decode()
xpath_content =  etree.HTML(content)
new_content = xpath_content.xpath('//*[@id="chapter-382639401"]/div/div/p/text()')
with open('2.txt','w',encoding='utf-8') as f:for i in new_content:f.writelines(i.strip())
time.sleep(2)back_color = imread('1.png')  # 解析该图片wc = WordCloud(background_color='white',  # 背景颜色max_words=1000,  # 最大词数mask=back_color,  # 以该参数值作图绘制词云,这个参数不为空时,width和height会被忽略max_font_size=100,  # 显示字体的最大值stopwords=STOPWORDS.add('国'),  # 使用内置的屏蔽词,再添加'苟利国'# font_path="C:/Windows/Fonts/STFANGSO.ttf",  # 解决显示口字型乱码问题,可进入C:/Windows/Fonts/目录更换字体font_path='C:\Windows\Fonts\simfang.ttf',random_state=42,  # 为每个词返回一个PIL颜色# width=1000,  # 图片的宽# height=860  #图片的长)
# WordCloud各含义参数请点击 wordcloud参数# 添加自己的词库分词,比如添加'金三胖'到jieba词库后,当你处理的文本中含有金三胖这个词,
jieba.add_word('我是王')# 打开词源的文本文件
text = open('2.txt',encoding='utf-8').read()# 该函数的作用就是把屏蔽词去掉,使用这个函数就不用在WordCloud参数中添加stopwords参数了
# 把你需要屏蔽的词全部放入一个stopwords文本文件里即可
def stop_words(texts):words_list = []word_generator = jieba.cut(texts, cut_all=False)  # 返回的是一个迭代器with open('stopwords.txt',encoding='utf-8') as f:str_text = f.read()unicode_text = str_text # 把str格式转成unicode格式f.close()  # stopwords文本中词的格式是'一词一行'for word in word_generator:if word.strip() not in str_text:words_list.append(word)return ' '.join(words_list)  # 注意是空格text = stop_words(text)wc.generate(text)
# 基于彩色图像生成相应彩色
image_colors = ImageColorGenerator(back_color)
# 显示图片plt.imshow(wc)# 关闭坐标轴
plt.axis('off')
# 绘制词云
plt.figure()
plt.imshow(wc.recolor(color_func=image_colors))
plt.axis('off')
# plt.show()
# 保存图片保存到当前路径下的image文件夹下,没有文件夹自行创建
wc.to_file('./image/maikou.png')

 

这篇关于Python Wordcloud 词云------实站:爬取起点网站《大王饶命》,结合词云展示数据的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/691157

相关文章

使用Python创建一个功能完整的Windows风格计算器程序

《使用Python创建一个功能完整的Windows风格计算器程序》:本文主要介绍如何使用Python和Tkinter创建一个功能完整的Windows风格计算器程序,包括基本运算、高级科学计算(如三... 目录python实现Windows系统计算器程序(含高级功能)1. 使用Tkinter实现基础计算器2.

Python开发文字版随机事件游戏的项目实例

《Python开发文字版随机事件游戏的项目实例》随机事件游戏是一种通过生成不可预测的事件来增强游戏体验的类型,在这篇博文中,我们将使用Python开发一款文字版随机事件游戏,通过这个项目,读者不仅能够... 目录项目概述2.1 游戏概念2.2 游戏特色2.3 目标玩家群体技术选择与环境准备3.1 开发环境3

Java注解之超越Javadoc的元数据利器详解

《Java注解之超越Javadoc的元数据利器详解》本文将深入探讨Java注解的定义、类型、内置注解、自定义注解、保留策略、实际应用场景及最佳实践,无论是初学者还是资深开发者,都能通过本文了解如何利用... 目录什么是注解?注解的类型内置注编程解自定义注解注解的保留策略实际用例最佳实践总结在 Java 编程

Python中模块graphviz使用入门

《Python中模块graphviz使用入门》graphviz是一个用于创建和操作图形的Python库,本文主要介绍了Python中模块graphviz使用入门,具有一定的参考价值,感兴趣的可以了解一... 目录1.安装2. 基本用法2.1 输出图像格式2.2 图像style设置2.3 属性2.4 子图和聚

Python使用Matplotlib绘制3D曲面图详解

《Python使用Matplotlib绘制3D曲面图详解》:本文主要介绍Python使用Matplotlib绘制3D曲面图,在Python中,使用Matplotlib库绘制3D曲面图可以通过mpl... 目录准备工作绘制简单的 3D 曲面图绘制 3D 曲面图添加线框和透明度控制图形视角Matplotlib

一文教你Python如何快速精准抓取网页数据

《一文教你Python如何快速精准抓取网页数据》这篇文章主要为大家详细介绍了如何利用Python实现快速精准抓取网页数据,文中的示例代码简洁易懂,具有一定的借鉴价值,有需要的小伙伴可以了解下... 目录1. 准备工作2. 基础爬虫实现3. 高级功能扩展3.1 抓取文章详情3.2 保存数据到文件4. 完整示例

使用Python实现IP地址和端口状态检测与监控

《使用Python实现IP地址和端口状态检测与监控》在网络运维和服务器管理中,IP地址和端口的可用性监控是保障业务连续性的基础需求,本文将带你用Python从零打造一个高可用IP监控系统,感兴趣的小伙... 目录概述:为什么需要IP监控系统使用步骤说明1. 环境准备2. 系统部署3. 核心功能配置系统效果展

基于Python打造一个智能单词管理神器

《基于Python打造一个智能单词管理神器》这篇文章主要为大家详细介绍了如何使用Python打造一个智能单词管理神器,从查询到导出的一站式解决,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 项目概述:为什么需要这个工具2. 环境搭建与快速入门2.1 环境要求2.2 首次运行配置3. 核心功能使用指

Python实现微信自动锁定工具

《Python实现微信自动锁定工具》在数字化办公时代,微信已成为职场沟通的重要工具,但临时离开时忘记锁屏可能导致敏感信息泄露,下面我们就来看看如何使用Python打造一个微信自动锁定工具吧... 目录引言:当微信隐私遇到自动化守护效果展示核心功能全景图技术亮点深度解析1. 无操作检测引擎2. 微信路径智能获

使用Java将各种数据写入Excel表格的操作示例

《使用Java将各种数据写入Excel表格的操作示例》在数据处理与管理领域,Excel凭借其强大的功能和广泛的应用,成为了数据存储与展示的重要工具,在Java开发过程中,常常需要将不同类型的数据,本文... 目录前言安装免费Java库1. 写入文本、或数值到 Excel单元格2. 写入数组到 Excel表格