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

相关文章

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

基于Python开发Windows屏幕控制工具

《基于Python开发Windows屏幕控制工具》在数字化办公时代,屏幕管理已成为提升工作效率和保护眼睛健康的重要环节,本文将分享一个基于Python和PySide6开发的Windows屏幕控制工具,... 目录概述功能亮点界面展示实现步骤详解1. 环境准备2. 亮度控制模块3. 息屏功能实现4. 息屏时间

Python如何去除图片干扰代码示例

《Python如何去除图片干扰代码示例》图片降噪是一个广泛应用于图像处理的技术,可以提高图像质量和相关应用的效果,:本文主要介绍Python如何去除图片干扰的相关资料,文中通过代码介绍的非常详细,... 目录一、噪声去除1. 高斯噪声(像素值正态分布扰动)2. 椒盐噪声(随机黑白像素点)3. 复杂噪声(如伪

Python中图片与PDF识别文本(OCR)的全面指南

《Python中图片与PDF识别文本(OCR)的全面指南》在数据爆炸时代,80%的企业数据以非结构化形式存在,其中PDF和图像是最主要的载体,本文将深入探索Python中OCR技术如何将这些数字纸张转... 目录一、OCR技术核心原理二、python图像识别四大工具库1. Pytesseract - 经典O

基于Linux的ffmpeg python的关键帧抽取

《基于Linux的ffmpegpython的关键帧抽取》本文主要介绍了基于Linux的ffmpegpython的关键帧抽取,实现以按帧或时间间隔抽取关键帧,文中通过示例代码介绍的非常详细,对大家的学... 目录1.FFmpeg的环境配置1) 创建一个虚拟环境envjavascript2) ffmpeg-py

python使用库爬取m3u8文件的示例

《python使用库爬取m3u8文件的示例》本文主要介绍了python使用库爬取m3u8文件的示例,可以使用requests、m3u8、ffmpeg等库,实现获取、解析、下载视频片段并合并等步骤,具有... 目录一、准备工作二、获取m3u8文件内容三、解析m3u8文件四、下载视频片段五、合并视频片段六、错误

Python中提取文件名扩展名的多种方法实现

《Python中提取文件名扩展名的多种方法实现》在Python编程中,经常会遇到需要从文件名中提取扩展名的场景,Python提供了多种方法来实现这一功能,不同方法适用于不同的场景和需求,包括os.pa... 目录技术背景实现步骤方法一:使用os.path.splitext方法二:使用pathlib模块方法三

Python打印对象所有属性和值的方法小结

《Python打印对象所有属性和值的方法小结》在Python开发过程中,调试代码时经常需要查看对象的当前状态,也就是对象的所有属性和对应的值,然而,Python并没有像PHP的print_r那样直接提... 目录python中打印对象所有属性和值的方法实现步骤1. 使用vars()和pprint()2. 使

使用Python和OpenCV库实现实时颜色识别系统

《使用Python和OpenCV库实现实时颜色识别系统》:本文主要介绍使用Python和OpenCV库实现的实时颜色识别系统,这个系统能够通过摄像头捕捉视频流,并在视频中指定区域内识别主要颜色(红... 目录一、引言二、系统概述三、代码解析1. 导入库2. 颜色识别函数3. 主程序循环四、HSV色彩空间详解

一文深入详解Python的secrets模块

《一文深入详解Python的secrets模块》在构建涉及用户身份认证、权限管理、加密通信等系统时,开发者最不能忽视的一个问题就是“安全性”,Python在3.6版本中引入了专门面向安全用途的secr... 目录引言一、背景与动机:为什么需要 secrets 模块?二、secrets 模块的核心功能1. 基