如何用Python分析领导讲话呢?正好庆祝中国共产党成立100周年大会,7月1日上午在北京天安门广场隆重举行。中共中央总书记、国家主席、中央军委主席习近平发表重要讲话。
.doc
结束老版本的word文档格式,截个图给大家看看:① doc文章格式转换为docx格式; ② Python自动化操作word文档相关操作; ③ jieba中文分词库的应用;
PS:不要单纯只学习某个知识点,带着应用学习;
1. doc文档格式转docx格式
python-docx
的库,它只能读取.docx
格式的word文档。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')
# 调用word程序
WordApp = win32com.client.Dispatch("Word.Application")
# 后台运行,不显示,不警告
WordApp.Visible = 0
WordApp.DisplayAlerts = 0
2. python-docx读取word文档内容
文档 - 段落 - 文字块
三部分构成。① 获取word文档,就是得到一个Document对象; ② 调用Document对象的paragraphs方法,获取Paragraph段落对象列表; ③ 循环遍历段落对象列表,调用text方法,获取每个段落中的整段文字;
from docx import Document
doc = Document(r"转换后的文档_庆祝中国共产党成立100周年大会上的讲话.docx")
text = ""
for parapraph in doc.paragraphs:
text += parapraph.text
jieba
库进行分词操作。3. jieba中文分词库的应用
jieba
库,进行中文分词,做一个词频统计。① 导入相关库
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()方法进行分词
text_list = list(jieba.cut(text))
动态修改词典
,让某些特定词语不被强制性分开。我这里介绍一下,大家下去自己学习。jieba.add_word()方法,只能一个个动态添加词语; 假如我们需要动态添加多个词语的时候,就需要使用jieba.load_userdict()方法。也就是说:将所有的自定义词语,放到一个文本中,然后使用该方法,一次性动态修改词典集;
③ 读取停用词,添加额外停用词,并去除停用词
停用词列表
。接着,采用+号
将额外停用词,添加到列表中即可。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()函数,进行词频统计。word_count = pd.Series(final_text).value_counts()[:30]
⑤ 词云图的绘制
# 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")
我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。
有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。
原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!
点击下方阅读原文可获得更好的阅读体验
Python实用宝典 (pythondict.com)
不只是一个宝典
欢迎关注公众号:Python实用宝典