利用Python分析文章词频,并生成词云图

Python通过已有词汇词频制作简单词云图 利用python wordcloud库制作词云图 阅读详情

利用Python分析文章词频,并生成词云图

使用request模块获取文章数据

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:961562169

import jieba
import requests
import csv
from bs4 import BeautifulSoup
import re

# 字符集
r = '[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+'
# 文章链接:在中国日报网,选取了一篇新闻作为本次案例的分析
url = 'http://www.chinadaily.com.cn/a/202008/20/WS5f3db65da31083481726171e.html'  #英语新闻URL
headers = {
    'User-Agent':
    'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36 QIHU 360SE'
}
response = requests.get(url=url, headers=headers)  #获取响应内容
print(response)  #<Response [200]>
<Response [200]>
  • 1

使用BeautifulSoup模块解析所需的文章内容和词频统计

基本思路

  • 使用BeautifulSoup模块获取文章内容
  • 去除文章中的字符集
  • 消除大小写字母的影响
  • 把英文文章的每个单词放到列表里,并统计列表长度;
  • 遍历列表,对每个单词出现的次数进行统计,并将结果存储在字典中;
  • 求出每个单词出现的频率,并将结果存储在频率字典中;
  • 以字典键值对的“值”为标准,对字典进行排序,输出结果
# 转化为Beatifulsoup格式
bs = BeautifulSoup(response.text, 'html.parser')
print(type(bs))  #<class 'bs4.BeautifulSoup'>
# 提取数据
data = bs.find('div', class_='lft_art')
# 文章标题
title = data.find('h1').text
print(title)
# print(data.text)
# 获取文章内容
print(len('SONG CHEN/CHINA DAILY \n \n\n'))  #长度:26
# 删除不属于文章的内容:'SONG CHEN/CHINA DAILY \n \n\n'
text = data.find('div', id='Content').text.strip()[26:]
# print(text)

# 替换特殊字符方法一
for ch in '[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+':
    text = text.replace(ch, ' ')
# print(text)

# 替换特殊字符方法二,正则表达式re.sub()函数
text = re.sub(r'[’!"#$%&\'()*+,-./:;<=>?@[\\]^_`{|}~]+', ' ', text)
# print(text)

# 消除大写字母带来的影响
text = text.lower()
# print(text)
# 使用split方法切分文章
words_list = text.split()
# print(words_list)
# 新建counts列表用于存放各词出现的次数
counts = {}
# 统计各词出现的次数
for word in words_list:
    counts[word] = counts.get(word, 0) + 1
    #print(counts.get(word,0)+1)
# print(counts)
items = list(counts.items())  #转为列表格式
# 按降序进行排序
items.sort(key=lambda x: x[1], reverse=True)
# 显示出现次数最多的前15单词
print(items[0:15])
<class 'bs4.BeautifulSoup'>
Life as we know it has changed, possibly forever
26
[('the', 83), ('to', 65), ('of', 51), ('and', 39), ('in', 33), ('a', 33), ('said', 23), ('people', 21), ('that', 19), ('be', 18), ('for', 16), ('are', 15), ('from', 15), ('they', 15), ('have', 14)]

制作词云图

1、词云图 制作前,需要先准备几个东西:

(1)下载python wordcloud库,也是词图库制作的关键库;

(2)numpy库,用于图片处理,将图片读取后解析成数组;

(3)如果要对中文句子进行分词,那么需要jieba库;如果是英文分词,那可以不下载;

(4)如果要在界面上直接展示词云图 ,那么需要matlplotlib来画图;

(5)要处理图片,根据少不了PIL,毕竟它可是官方的图像处理库;

# 生成词云图
import matplotlib as plt
from wordcloud import wordcloud
from PIL import Image
import numpy as np

cut_text = jieba.cut(text)
result = ' '.join(cut_text)
# print(result)
mask = np.array(Image.open('./运动.jpg')) #解析图片
wc = wordcloud.WordCloud(
    background_color='white',  # 背景颜色
    width=1000,
    height=600,
    max_font_size=50,  # 字体大小
    min_font_size=10,
    mask=mask,  # 背景图片
    max_words=1000)
wc.generate(result)
image = wc.to_image()
image.show()  # 显示词云
# 保存图片
wc.to_file('jiab_englist11.png')
<wordcloud.wordcloud.WordCloud at 0x1feb0c0f6d8>

在这里插入图片描述

用python实现词频分析+词云 文章目录前言正文后记 前言 本文章也发表在了知乎平台上。两个平台的文章内容基本相同(但并不完全一样)。大家可以按需所取,这里放上知乎文章的链接:知乎:用python实现词频分析+词云 如你所见。文章标题图是以 周杰伦的百度百科 词条为分析文档,以 周杰伦超话第一的那张图+PPT删除背景底色 为词频背景进行制作的(PPT真是个巨强的软件!我以后有时间一定会和大家分享的!)。这种词频分析、尤其是... 阅读详情

相关推荐

文本挖掘(超详细:数据获取 - 数据清洗 - 中文分词 - 去除停用词 - 词频统计 - 词云图 - 情感分析)

文本挖掘(超详细) 工具:八爪鱼采集器 + Python + JavaScript 例如:数据获取 - 数据清洗 - 中文分词 - 去除停用词 - 词频统计 - 词云图 - 情感分析 数据获取 工具:八爪鱼采集器 链接:下载 使用: 1、 下载压缩包并解压 2、 点击 .exe 文件安装 3、 使用模板采集数据/自定义配置采集数据 示例: 1、 选择模板 2、打开商品详情页并复制网址 3、启动采集(共 1000 条数据) 4、采集结果(只保留了 4 列) 数据清洗 简单的

qq_45587352的博客 4万+

Power bi 4.6 聚类图

关注微信公共号:小程在线 关注优快云博客:程志伟的博客 数据集链接见微信公共号底端 1.在Power BI中导入可视化效果, 点击… 选择导入自定义视觉对象,点击导入。 2. 选择我们需要导入的视觉对象。 3. 在可视化就会出现新的图形。 4.导入“DBSCAN Clustering.csv”数据。 5.单击“可视化”窗格中的“聚类图”图标, 在画布区域会出现该图的模板, 由于没有填入数据, 因此图是灰色的...

程志伟的博客 2410

python【包含数据预处理】基于词频生成词云图

Jieba 分词器属于概率语言模型分词,基于前缀词典实现高效的词图扫描,生成句子中汉字所有可能成词情况构建成有向无环图,然后采用动态规划寻找最大概率路径,找出基于词频的最大切分组合。对于不存在与前缀词典中的词,采用了汉字成词能力的 HMM 模型,使用了 Viterbi 算法。中文分词是理解和处理中文文本的关键步骤,它直接影响到后续的文本分析和信息提取的准确性和有效性。在搜索引擎模式下对输入文本进行分词,返回一个列表形式的分词结果。在搜索引擎模式下对输入文本进行分词,返回一个可迭代的分词结果。

公众号:该用户快成仙了 1194

Python实现词云图的3种方式(词频,一段文本,自定义样式)

不一样的高端操作——python实现词云图

rphyllis的博客 1万+

用Python分析文本数据的词频并词云图可视化

上次批量提取了上市公司主要业务信息,要分析这些文本数据,就需要做文本词频分析。由于中文不同于英文,词是由一个一个汉字组成的,而英文的词与词之间本身就有空格,所以中文的分词需要单独的库才能够实现,常用的是`jieba`。

m0_64336780的博客 2万+

习题6-3 使用函数输出指定范围内的完数

其中函数factorsum须返回int number的因子和;函数PrintPN要逐行输出给定范围[mn]内每个完数的因子累加形式的分解式,每个完数占一行,格式为“完数 = 因子1 + 因子2 + ... + 因子k”,其中完数和因子均按递增顺序给出。如果给定区间内没有完数,则输出一行“No perfect number”。

cutto的博客 863

Python(wordcloud):根据词频信息(xlsx、csv文件)绘制词云图

python:根据词频信息(xlsx、csv文件)绘制词云图,并且可以指定词云图的背景形状

无面人的博客 5471

手把手调试AD9653的LVDS数据采集:从VIO抓波形到用F0/F8帧对齐的实战心得

本文详细介绍了AD9653高速ADC与Xilinx 7系列FPGA(如7z035)的LVDS数据采集调试实战经验。从硬件环境搭建、Vivado工具链配置到LVDS数据对齐技巧,重点分享了利用VIO抓取波形和使用F0/F8帧对齐的实用方法,帮助工程师快速解决高速数据采集系统中的信号完整性问题。

weixin_29169899的博客 702

powerbi python词云图_利用Python分析文章词频,并生成词云图

利用Python分析文章词频,并生成词云图点击此处,获取海量Python学习资料!使用request模块获取文章数据import jieba import requests import csv from bs4 import BeautifulSoup import re # 字符集 r = '[’!"#$%&'()*+,-./:;<=>?@[]^_`{|}~]+' # 文...

weixin_31304599的博客 848

微信内置浏览器抓包全攻略:从ADB配置到Chrome调试(附常见问题解决)

本文提供了一套完整的微信内置浏览器抓包与调试解决方案。从ADB工具的深度配置与稳定性连接开始,详细讲解了如何开启X5内核调试开关,并利用Chrome DevTools建立远程连接。文章重点剖析了Network面板进行网络请求抓取、性能分析和问题定位的实战技巧,并附带了设备连接失败、无网络请求等常见问题的排查指南,帮助开发者高效解决微信H5页面调试难题。

gitlab7runner的博客 543

Oracle19c SYSAUX表空间爆满?手把手教你清理SM/ADVISOR和AUDSYS占用(附完整SQL)

本文详细解析了Oracle19c中SYSAUX表空间爆满的常见原因及解决方案,重点针对SM/ADVISOR和AUDSYS组件的空间占用问题提供了完整的SQL清理脚本。通过诊断查询、空间清理和预防性维护策略,帮助DBA有效管理SYSAUX表空间,确保数据库稳定运行。

weixin_28338005的博客 237

python分析热点词汇_用python分析文章并绘出词云,让你更清楚了解文章主要内容...

今天,咿哑呀带领大家学习怎样给一篇文章总结分析出词云,让我们更清楚地了解文章的主要意思,理解文章意义。为了分析文章,我们需要使用第三方库jieba,将文章分解出相关词语,然后将出现次数最多的词语进行有序排序提炼,再使用第三方库wordcloud和matplotlib库将关键词进行绘制,就成了文章词云。下面,我们将词云组合成一个类,让运用的更广泛。首先我们要在系统终端命令窗口用命令pip insta...

weixin_39752800的博客 680

嵌入式通讯协议全解析:UART、I2C、SPI、CAN与Modbus实战指南

通讯协议是嵌入式系统设计的核心基础,也是面试与工程实践中避不开的关键环节。从串口UART的异步收发,到I2C总线寻址与SPI高速全双工传输,再到RS485差分长距离通信、CAN总线多主仲裁机制,以及工业领域事实标准的Modbus RTU协议,每一种技术都对应着特定的应用场景与设计权衡。理解协议背后的物理层原理、时序特征和工程坑点,才能真正解决设备间通信的选型、调试与健壮性问题。本文从基础概念出发,系统梳理各类嵌入式通讯协议的工作机制,并结合实际代码示例与对比表格,帮助开发者在面对面试问题或项目设计时,构建从

weixin_42520573的博客 276

词频统计

# 导入扩展库 import re # 正则表达式库 import collections # 词频统计库 import numpy as np # numpy数据处理库 import jieba # 结巴分词 import wordcloud # 词云展示库 from PIL import Image # 图像处理库 import matplotlib.pyplot as plt # 图像展示库 # 读取文件 fn = open('article.txt') # 打开文件 string_data = f

qq_39483957的博客 241

【测绘程序设计】——潮汐调和分析

最小二乘潮汐调和分析源码、使用示例及数据

C_xxy's blog 2653

FM收音机调试-RDA5807M

收音机调试 IC型号:RDA5807M

mangofu的博客 6165

Python 爬虫 + 词云分析:从热门文章中直观呈现技术趋势关键词

本方法直接从公开技术网站抓取文章,通过词频统计生成词云,让关键词分布一目了然。例如,词云能突出显示如“AI”、“云服务”等高频词,揭示当前趋势。本文将通过Python爬虫抓取热门技术文章,结合词云分析,直观可视化关键词分布,帮助读者快速识别技术热点。抓取的文章文本需进一步处理,移除停用词(如“的”、“是”)和特殊字符,聚焦关键词。:本文代码为示例,实际使用时请遵守目标网站条款,并替换URL为合法来源。运行上述代码后,词云图将直观呈现关键词。通过Python爬虫和词云分析,我们实现了技术趋势的快速可视化。

dsaqqwe的博客 852

1. linux系统下在QT中配置OPenCV开发环境

在Linux系统下配置OpenCV的开发环境,需要在官网上下载源码,并使用CMake工具对源码进行编译,与在Windows系统中配置相比复杂许多,本文linux系统为linux minit,opencv是最新版本4.7.0,不过对于linux和opencv的版本要求行不高。此项更改为自己OPenCV想要安装的路径内,默认是安装在**/usr/local。在打开的文件中添加下图中的一行代码,路径是opencv默认的安装路径。按钮,弹出下图界面,默认选择即可,然后点击。

山间点烟雨 2906

python 词云 实例

#/usr/bin/env python # -*- coding: utf-8 -*- """ Created on Wed Jan 23 16:03:41 2019 @author: Administrator """ import os import sys import docx import jieba import jieba.posseg as pseg import re i...

huobanjishijian的专栏 727

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

cedit多行文本设置透明背景会重叠_python:电商用户评价文本分析(wordcloud+jieba)...

一、wordcloud:文本分析1、导入wordcloud和数据可视化包matplotlib:from wordcloud import WordCloud import matplotlib.pyplot as plt import warnings warnings.filterwarnings("ignore") %matplotlib inline %config InlineBacken...

weixin_39699912的博客 367

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

利用Python显示词云(分词技术)

偶然在网上看到词云,感觉挺有趣的,于是自己动手写了个程序来显示。 根据百度百科: “词云”这个概念由美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon)于近日提出。戈登做过编辑、记者,曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他一直很关注网络内容发...

chengwen1129的博客 1081

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

educoder python入门之基础语法-用python实现豆瓣短评通用爬虫(登录、爬取、可视化分析)...

原创技术公众号:bigsai前言在本人上的一门课中,老师对每个小组有个任务要求,介绍和完成一个小模块、工具知识的使用。然而我所在的组刚好遇到的是python爬虫的小课题。心想这不是很简单嘛,搞啥呢?想着去搞新的时间精力可能不太够,索性自己就把豆瓣电影的评论(短评)搞一搞吧。之前有写过哪吒那篇类似的,但今天这篇要写的像姨母般详细。本篇主要实现的是对任意一部电影短评(热门)的抓取以及可视化分析。 也就...

weixin_37988176的博客 142

python 【包含数据预处理】基于词频生成词云图

一个用于中文文本这段文本是关于如何使用Python基于词频生成词云图的教程。内容包括:1) 中文分词的必要性,因中文无明显单词边界及语言单位特性;2) 文本预处理步骤,如移除特殊符号、网址、日期等;3) 使用`data_process`函数清除无用字符;4) `getText`函数读取并处理文本为句子数组;5) 使用jieba分词库进行分词和词频统计;6) 示例代码展示了从分词到生成词云的完整流程,最后展示生成的词云图。整个过程旨在从中文文本中提取关键词并可视化。分词的库。

No_Name_Cao_Ni_Mei的博客 1535

python 词频统计_用Python绘制词云图(词频统计)

用Python绘制词云图其实,想搞这个词云图的原因,是看到好多数据可视化的图表里面,好多大咖都用到了词云图,看的眼馋,所以就决定自己把它学会,因为空暇时间有限,加上本人脑子比较笨,硬是啃了将近一星期的时间才搞定。为了加深自己印象,决定写下来,话不多少,开搞!!!1、技术路线直奔主题了,这个就是简单粗暴的两个步骤,第一个就是对文本进行数据处理,做一个词频统计的工作,第二个步骤就是对这个词频...

weixin_40002009的博客 7324
上一篇: 如何通过Python暴力破解网站登陆密码
下一篇: 利用Python 多协程和队列爬取豆瓣图书
Python_sn
博客等级 码龄6年 324粉丝 290原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值