Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >用 Python 分析领导讲话,原来隐藏了 "这些" 重要信息......

用 Python 分析领导讲话,原来隐藏了 "这些" 重要信息......

作者头像
崔庆才
发布于 2021-10-08 08:03:04
发布于 2021-10-08 08:03:04
81100
代码可运行
举报
文章被收录于专栏:进击的Coder进击的Coder
运行总次数:0
代码可运行

如何用 Python 分析领导讲话呢?正好庆祝中国共产党成立 100 周年大会,7 月 1 日上午在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。

这段讲话,共 14 页 word 排版,7297 个字。

你全程观看了直播吗?关于这场重要讲话,习总书记主要传达了那些精神,你知道吗?

今天我就带着大家来学习一下本次大会的精神。大家可以学习后用来分析自己的领导讲话哦~

这段话的 word 版本,是我无意中在某个微信群里面发现的,是以.doc结束老版本的 word 文档格式,截个图给大家看看:

我们今天的任务就是:读取这段文字,对文字做一个关键词统计,看看这次大会主要传达了哪些重要精神。

当然,这篇文章一共涉及到如下三方面重要的知识,分别是:

  • ① doc 文章格式转换为 docx 格式;
  • ② Python 自动化操作 word 文档相关操作;
  • ③ jieba 中文分词库的应用;

这三个操作,在实际工作应用中经常遇到,都是很重要的 Python 知识点,我们将它们应用到一个实战案例中讲解,学习起来会事半功倍。

PS:不要单纯只学习某个知识点,带着应用学习;

1. doc 文档格式转 docx 格式

后面读取 word 文档中的文字,会用到一个叫做python-docx的库,它只能读取.docx格式的 word 文档。

但是你不要企图,直接修改文档后缀,那样的话,你打开文档,会提示格式错误。

因此,在正式获取 word 文档中的内容之前,必须要进行一下格式转换。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import os
import time
import win32com
from win32com.client import Dispatch

def doc_to_docx(path):
   w = win32com.client.Dispatch('Word.Application')
   w.Visible = 0
   w.DisplayAlerts = 0
   doc = w.Documents.Open(path)
   # 这里必须要绝对地址,保持和doc路径一致
   newpath = allpath+'\\转换后的文档_庆祝中国共产党成立100周年大会上的讲话.docx'
   time.sleep(3) # 暂停3s,否则会出现-2147352567,错误
   doc.SaveAs(newpath,12,False,"",True,"",False,False,False,False)
   # doc.Close() 开启则会删掉原来的doc
   w.Quit()# 退出
   return newpath
allpath = os.getcwd()
print(allpath)
doc_to_docx(allpath+'\\庆祝中国共产党成立100周年大会上的讲话.doc')

结果如下:

下面两行代码的意思,了解就行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 调用word程序
WordApp = win32com.client.Dispatch("Word.Application")

# 后台运行,不显示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0

2. python-docx 读取 word 文档内容

在使用 Python 读取 word 文档内容之前,我们首先需要对 word 文档结构有一个清楚的认识,在没有图表的情况写,word 文档主要由文档 - 段落 - 文字块三部分构成。

读取 word 文档内容的大致思路是这样的:

  • ① 获取 word 文档,就是得到一个 Document 对象;
  • ② 调用 Document 对象的 paragraphs 方法,获取 Paragraph 段落对象列表;
  • ③ 循环遍历段落对象列表,调用 text 方法,获取每个段落中的整段文字;

按照这个逻辑,其实代码非常简单,5 行代码即可获取文档内容。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from docx import Document

doc = Document(r"转换后的文档_庆祝中国共产党成立100周年大会上的讲话.docx")
text = ""
for parapraph in doc.paragraphs:
    text += parapraph.text

部分截图如下:

这里定义了一个字符串 text,将读取到的内容,拼接成一个字符串,是为了方便我们后续使用jieba库进行分词操作。

3. jieba中文分词库的应用

前面我们将word文档中所有的内容,全部转换为一个超长的字符串了,接下来就是应用jieba库,进行中文分词,做一个词频统计。

下面直接一步步带着大家做吧!

① 导入相关库

在这里,你需要什么库,就导入什么库。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import jieba
from wordcloud import WordCloud
import pandas as pd
import matplotlib.pyplot as plt
from imageio import imread

import warnings
warnings.filterwarnings("ignore")
② 使用 jieba 库中的 lcut() 方法进行分词

短短的一行代码,很简单。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
text_list = list(jieba.cut(text))

在进行分词之前,我们可以动态修改词典,让某些特定词语不被强制性分开。我这里介绍一下,大家下去自己学习。

  • jieba.add_word() 方法,只能一个个动态添加词语;
  • 假如我们需要动态添加多个词语的时候,就需要使用 jieba.load_userdict() 方法。也就是说:将所有的自定义词语,放到一个文本中,然后使用该方法,一次性动态修改词典集;
③ 读取停用词,添加额外停用词,并去除停用词

读取停用词,采用 split() 函数切分后,会得到一个停用词列表。接着,采用+号将额外停用词,添加到列表中即可。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
with open(r"stoplist.txt",encoding="utf-8") as f:
    stop = f.read()
    
stop = stop.split()
stop = [" "] + stop
final_text = [i for i in text_list if i not in stop]
④ 词频统计

这里使用Pandas库中 series 序列的 value_counts() 函数,进行词频统计。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
word_count = pd.Series(final_text).value_counts()[:30]

部分截图 如下:

⑤ 词云图的绘制
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# 1、读取背景图片
back_picture = imread(r"aixin.jpg")

# 2、设置词云参数:这些参数,大家看英文单词的含义,应该可以猜出来!
wc = WordCloud(font_path="simhei.ttf",
               background_color="white",
               max_words=2000,
               mask=back_picture,
               max_font_size=200,
               random_state=42
              )
wc2 = wc.fit_words(word_count)

# 3、绘制词云图
plt.figure(figsize=(16,8))
plt.imshow(wc2)
plt.axis("off")
plt.show()
wc.to_file("ciyun.png")

结果如下:

仔细观察词云图,相信很多有过考研经历的同学,应该都能背诵出,那一段很长的话。

好了,本文就讲述到这里,关于文中三个重要的知识点,你都学会了吗?

End

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-09-29,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 进击的Coder 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
详细介绍和用法可以去github看:https://github.com/fxsjy/jieba,这里不多做介绍,只介绍本次用到的
极简小课
2022/06/27
6010
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
【一文讲解深度学习】语言自然语言处理(NLP)第一篇
NLP(Nature Language Processing,自然语言处理)是计算机及人工智能领域的一个重要的子项目,它研究计算机如何处理、理解及应用人类语言。是人类在漫长的进化过程中形成的计算机语言复杂的符号等系统(类似C/Java的符号等系统)。以下是关于自然处理的常见定义:
苏州程序大白
2022/04/14
1.7K0
【一文讲解深度学习】语言自然语言处理(NLP)第一篇
Python selenium爬取影评生成词云图
运行命令 pip install selenium jieba wordcloud matplotlib numpy 进行下载
全栈若城
2024/02/29
2390
Python selenium爬取影评生成词云图
用 Python 解读十九大工作报告
增强改革创新本领,保持锐意进取的精神风貌,善于结合实际创造性推动工作,善于运用互联网技术和信息化手段开展工作。 在中国共产党第十九次全国代表大会开幕会上,习近平总书记代表十八届中央委员会向大会作报告。
Crossin先生
2018/04/17
7150
用 Python 解读十九大工作报告
从信息科技角度解读中国式现代化
党的二十大报告提出,从现在起,中国共产党的中心任务就是团结带领全国各族人民全面建成社会主义现代化强国、实现第二个百年奋斗目标,以中国式现代化全面推进中华民族伟大复兴。
存储小白
2022/12/01
4580
基于自然语言处理的垃圾短信识别系统
本项目旨在利用自然语言处理(NLP)技术,开发一个高效的垃圾短信识别系统。通过分词、停用词处理、情感分析和机器学习模型,实现对垃圾短信的自动分类和识别,提高短信过滤的准确性和效率。
LucianaiB
2025/01/25
2140
基于自然语言处理的垃圾短信识别系统
文本挖掘(一)python jieba+wordcloud使用笔记+词云分析应用
  系列介绍:文本挖掘比较常见,系列思路:1-基本情况介绍(分词,词云展示);2-根据语料库的tf-idf值及创建自己的idf文件;3-基于snownlp语料情感分析;4-基于gensim进行lda主题挖掘分析;
forxtz
2021/03/11
1.8K0
文本挖掘(一)python jieba+wordcloud使用笔记+词云分析应用
《请回答1988》弹幕分析
首先,通过b站网址,查看到《请回答1988》木鱼水心弹幕最多的一集,其URL如下:
技术路漫漫
2020/06/15
9950
《请回答1988》弹幕分析
常见的文本分析大汇总
文本分析的核心是自然语言处理,本文只能说是冰山一角,但是对于日常挖掘有用的文本信息也还OK,但是如果想更深层次的挖掘文本信息,还是需要寻求专业算法工程师的帮助,例如NLP实验室的同学们~
HsuHeinrich
2023/08/10
4180
常见的文本分析大汇总
EDG夺冠,用Python分析一波:粉丝都炸锅了!
北京时间11月6日,在英雄联盟S11总决赛中,中国LPL赛区战队EDG电子竞技俱乐部以3∶2战胜韩国LCK赛区战队DK,获得2021年英雄联盟全球总决赛冠军。
数据分析与统计学之美
2023/11/10
2820
EDG夺冠,用Python分析一波:粉丝都炸锅了!
使用python进行词频分析
     很早之前就接触过python,也玩过python许多有趣的东西,比如用pygame做一个飞机大战的游戏啊、用turtle模块简单绘图啊、使用python链接mysql做crud、用python运行R语言脚本、简单爬虫等等,不过现在应该都快忘了。^_^
不愿意做鱼的小鲸鱼
2022/09/24
1.5K0
使用python进行词频分析
[情人节] jieba分词介绍
jieba 分词我觉得是Python中文分词工具中最好用的一个工具包。想要入门自然语言处理,jieba分词有必要好好掌握一下,今天带大家入门一下jieba分词包。 首先简单介绍一下jieba分词的原理,jieba分词采用的是基于统计的分词方法,首先给定大量已经分好词的文本,利用机器学习的方法,学习分词规律,然后保存训练好的模型,从而实现对新的文本的分词。主要的统计模型有:N元文法模型N-gram,隐马尔可夫模型HMM,最大熵模型ME,条件随机场模型CRF等。 jieba分词包含三个主要的类,分别是jie
用户1622570
2018/04/12
2.2K0
[情人节] jieba分词介绍
再也不用手动复制粘贴收集Taptap游戏评论了,还可以制作好看的热词词云图~
同学们,猜猜以下6款游戏分别是TapTap上面的哪6款产品呢??欢迎在留言区留言哦~ 【我们会在接下来教大家怎么一键生成大家喜爱的游戏产品评论热词词云】
可以叫我才哥
2021/08/05
1.4K0
【Python制作词云】分析QQ群聊信息,记录词频并制作词云
将群成员发的消息保存至列表中,遍历所有消息,符合时间正则的留下,并用 flag 进行标记,从而将特定的群成员消息提取出来。
AXYZdong
2020/10/29
2.4K0
【Python制作词云】分析QQ群聊信息,记录词频并制作词云
用python的requests模块采集央视网新联频道,制做新型冠状病毒战役季热点词云
你心理一定有疑惑,python爬虫怎样赚外快?说说我本人。 中央电视台是国媒,央视网的新联栏目每天都会发布与民生息息相关的各种新联,2019 年 12 月份以来,从钟南山教授权威发布武汉发现的病毒可以“人传人”开始,举全国之力抗击新型冠状病毒就紧罗密布的展示了,中视网新联频道发布新闻中有哪些高频词,一起来看。
用户1413827
2023/11/28
2760
用python的requests模块采集央视网新联频道,制做新型冠状病毒战役季热点词云
WordCloud词云图去除停用词的正确方法
之前我们已经学习了如何使用wordcloud制作英文和中文词云,今天我们接着讲解,在实际制作词云中,有很多词是没有展示出的意义的,例如我,他等主语,那如何不显示这些词了,这就涉及到停用词。
罗罗攀
2021/03/04
4.9K0
WordCloud词云图去除停用词的正确方法
【Python】文本分析
依赖库 pip install jieba pip install matplotlib pip install wordcloud pip install snownlp 词频统计 # -*- coding: utf-8 -*- import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 加载自定义分词字典 jieba.load_userdict("news.txt") # 语料 corpos = "美
py3study
2020/01/14
1.1K0
手把手教你对抓取的文本进行分词、词频统计、词云可视化和情感分析
前几天星耀群有个叫【小明】的粉丝在问了一道关于Python处理文本可视化+语义分析的问题,如下图所示。
Python进阶者
2022/03/09
3K1
手把手教你对抓取的文本进行分词、词频统计、词云可视化和情感分析
【深度学习】自然语言处理
NLP(Nature Language Processing,自然语言处理)是计算机学科及人工智能领域一个重要的子学科,它主要研究计算机如何处理、理解及应用人类语言。所谓自然语言,指人说的话、人写的文章,是人类在长期进化过程中形成的一套复杂的符号系统(类似于C/Java等计算机语言则称为人造语言)。以下是关于自然语言处理常见的定义:
杨丝儿
2022/03/20
8040
【深度学习】自然语言处理
用Python绘制词云:让数据可视化变得生动有趣
导读:你是否曾想过,如何将一堆枯燥的数据转化为一幅幅引人入胜的视觉艺术品?词云,作为一种流行的数据可视化技术,能够将文本数据中的关键词以不同大小和颜色呈现,直观地展示信息的密度和重要性。在本文中,我们将探索如何使用Python——一种强大而灵活的编程语言——来绘制出既美观又富有洞察力的词云图。
三猫
2024/06/26
5270
用Python绘制词云:让数据可视化变得生动有趣
推荐阅读
相关推荐
Python带你看不一样的《青春有你2》小姐姐之评论内容可视化
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验