京公网安备 11010802034615号
经营许可证编号:京B2-20210330
今天CDA给大家分享的内容:手把手教你对文本文件进行分词、词频统计和可视化
作者: Python进阶者
来源:Python爬虫与数据挖掘
大家好!我是Python进阶者。
前几天一个在校大学生问了一些关于词频、分词和可视化方面的问题,结合爬虫,确实可以做点东西出来,可以玩玩,还是蛮不错的,这里整理成一篇文章,分享给大家。
本文主要涉及的库有爬虫库requests、词频统计库collections、数据处理库numpy、结巴分词库jieba 、可视化库pyecharts等等。
关于数据方面,这里直接是从新闻平台上进行获取的文本信息,其实这个文本文件可以拓展开来,你可以自定义文本,也可以是报告,商业报告,政治报告等,也可以是新闻平台,也可以是论文,也可以是微博热评,也可以是网易云音乐热评等等,只要涉及到大量文本的,都可月引用本文的代码,进行词频分词、统计、可视化等。
数据获取十分简单,一个简单的爬虫和存储就可以搞定,这里以一篇新闻为例进行演示,代码如下:
import re import collections # 词频统计库 import numpy as np # numpy数据处理库 import jieba # 结巴分词 import requests from bs4 import BeautifulSoup from pyecharts import options as opts from pyecharts.charts import WordCloud from pyecharts.globals import SymbolType import warnings warnings.filterwarnings('ignore') r=requests.get("https://m.thepaper.cn/baijiahao_11694997",timeout=10) r.encoding="utf-8" s=BeautifulSoup(r.text,"html.parser") f=open("报告.txt","w",encoding="utf-8") L=s.find_all("p") for c in L: f.write("{}n".format(c.text)) f.close()
代码运行之后,在本地会得到一个【报告.txt】文件,文件内容就是网站上的文本信息。如果你想获取其他网站上的文本,需要更改下链接和提取规则。
接下来就是词频统计了,代码如下所示。
# 读取文件
fn = open("./报告.txt","r",encoding="utf-8")
string_data = fn.read()
fn.close()
# 文本预处理
# 定义正则表达式匹配模式
pattern = re.compile(u't|,|/|。|n|.|-|:|;|)|(|?|"')
string_data = re.sub(pattern,'',string_data) # 将符合模式的字符去除
# 文本分词
# 精确模式分词
seg_list_exact = jieba.cut(string_data,cut_all=False)
object_list = []
# 自定义去除词库
remove_words = [u'的',u'要', u'“',u'”',u'和',u',',u'为',u'是',
'以' u'随着', u'对于', u'对',u'等',u'能',u'都',u'。',
u' ',u'、',u'中',u'在',u'了',u'通常',u'如果',u'我',
u'她',u'(',u')',u'他',u'你',u'?',u'—',u'就',
u'着',u'说',u'上',u'这', u'那',u'有', u'也',
u'什么', u'·', u'将', u'没有', u'到', u'不', u'去']
微信复制
for word in seg_list_exact:
if word not in remove_words:
object_list.append(word)
# 词频统计
# 对分词做词频统计
word_counts = collections.Counter(object_list)
# 获取前30最高频的词
word_counts_all = word_counts.most_common()
word_counts_top30 = word_counts.most_common(30)
print("2021年政府工作报告一共有%d个词"%len(word_counts))
print(word_counts_top30)
首先读取文本信息,之后对文本进行预处理,提取文字信息,并且可以自定义词库,作为停用词,之后将获取到的词频做词频统计,获取前30最高频的词,并进行打印,输出结果如下图所示。
接下来就是可视化部分了,这里直接上代码,如下所示。
import pyecharts from pyecharts.charts import Line from pyecharts import options as opts # 示例数据 cate = [i[0] for i in word_counts_top30] data1 = [i[1] for i in word_counts_top30] line = (Line() .add_xaxis(cate) .add_yaxis('词频', data1, markline_opts=opts.MarkLineOpts(data=[opts.MarkLineItem(type_="average")])) .set_global_opts(title_opts=opts.TitleOpts(title="词频统计Top30", subtitle=""), xaxis_opts=opts.AxisOpts(name_rotate=60,axislabel_opts={"rotate":45})) ) line.render_notebook()
输出结果是一个线图,看上去还不错。
本文基于Python网络爬虫获取到的文本文件,通过词频、分词和可视化等处理,完成一个较为简单的项目,欢迎大家积极尝试。
数据分析咨询请扫描二维码
若不方便扫码,搜微信号:CDAshujufenxi
CDA中国官网是全国统一的数据分析师认证报名网站,由认证考试委员会与持证人会员、企业会员以及行业知名第三方机构共同合作,致 ...
2025-12-26在数字化转型浪潮下,审计行业正经历从“传统手工审计”向“大数据智能审计”的深刻变革。教育部发布的《大数据与审计专业教学标 ...
2025-12-26统计学作为数学的重要分支,是连接数据与决策的桥梁。随着数据规模的爆炸式增长和复杂问题的涌现,传统统计方法已难以应对高维、 ...
2025-12-26数字化浪潮席卷全球,数据已成为企业核心生产要素,“用数据说话、用数据决策”成为企业生存与发展的核心逻辑。在这一背景下,CD ...
2025-12-26箱线图(Box Plot)作为数据分布可视化的核心工具,凭借简洁的结构直观呈现数据的中位数、四分位数、异常值等关键信息,广泛应用 ...
2025-12-25在数据驱动决策的时代,基于历史数据进行精准预测已成为企业核心需求——无论是预测未来销售额、客户流失概率,还是产品需求趋势 ...
2025-12-25在数据驱动业务的实践中,CDA(Certified Data Analyst)数据分析师的核心工作,本质上是通过“指标”这一数据语言,解读业务现 ...
2025-12-25在金融行业的数字化转型进程中,SQL作为数据处理与分析的核心工具,贯穿于零售银行、证券交易、保险理赔、支付结算等全业务链条 ...
2025-12-24在数据分析领域,假设检验是验证“数据差异是否显著”的核心工具,而独立样本t检验与卡方检验则是其中最常用的两种方法。很多初 ...
2025-12-24在企业数字化转型的深水区,数据已成为核心生产要素,而“让数据可用、好用”则是挖掘数据价值的前提。对CDA(Certified Data An ...
2025-12-24数据分析师认证考试全面升级后,除了考试场次和报名时间,小伙伴们最关心的就是报名费了,报 ...
2025-12-23在Power BI数据可视化分析中,矩阵是多维度数据汇总的核心工具,而“动态计算平均值”则是矩阵分析的高频需求——无论是按类别计 ...
2025-12-23在SQL数据分析场景中,“日期转期间”是高频核心需求——无论是按日、周、月、季度还是年度统计数据,都需要将原始的日期/时间字 ...
2025-12-23在数据驱动决策的浪潮中,CDA(Certified Data Analyst)数据分析师的核心价值,早已超越“整理数据、输出报表”的基础层面,转 ...
2025-12-23在使用Excel数据透视表进行数据分析时,我们常需要在透视表旁添加备注列,用于标注数据背景、异常说明、业务解读等关键信息。但 ...
2025-12-22在MySQL数据库的性能优化体系中,索引是提升查询效率的“核心武器”——一个合理的索引能将百万级数据的查询耗时从秒级压缩至毫 ...
2025-12-22在数据量爆炸式增长的数字化时代,企业数据呈现“来源杂、格式多、价值不均”的特点,不少CDA(Certified Data Analyst)数据分 ...
2025-12-22在企业数据化运营体系中,同比、环比分析是洞察业务趋势、评估运营效果的核心手段。同比(与上年同期对比)可消除季节性波动影响 ...
2025-12-19在数字化时代,用户已成为企业竞争的核心资产,而“理解用户”则是激活这一资产的关键。用户行为分析系统(User Behavior Analys ...
2025-12-19在数字化转型的深水区,企业对数据价值的挖掘不再局限于零散的分析项目,而是转向“体系化运营”——数据治理体系作为保障数据全 ...
2025-12-19