欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > 使用Python+docx+jieba+wordcloud给word文档生成词云图

使用Python+docx+jieba+wordcloud给word文档生成词云图

2025/4/9 22:43:59 来源:https://blog.csdn.net/limengshi138392/article/details/141665638  浏览:    关键词:使用Python+docx+jieba+wordcloud给word文档生成词云图

一、使用Python+docx+jieba+wordcloud给word文档生成词云图

import docx # 用于读取word文档
import jieba # 用于中文分词
import re # 用于正则表达式匹配
import wordcloud # 用于生成词云图
import matplotlib.pyplot as plt # 用于显示和保存图片# 定义一个函数,用于从word文档中提取所有的文本
def get_text_from_docx(filename):# 创建一个docx.Document对象,打开指定的word文档doc = docx.Document(filename)# 创建一个空字符串,用于存储所有的文本text = ""# 遍历文档中的每一段for para in doc.paragraphs:# 将段落的文本追加到字符串中,并加上换行符text += para.text + "\n"# 返回字符串return text# 定义一个函数,用于对文本进行分词,并返回一个词汇列表
def get_words_from_text(text):# 创建一个空列表,用于存储分词结果words = []# 使用jieba.cut方法对文本进行分词,返回一个生成器对象segs = jieba.cut(text)# 遍历生成器对象中的每一个分词结果for seg in segs:# 去掉分词结果两端的空白字符seg = seg.strip()# 如果分词结果不为空,并且是中文或英文单词,则将其添加到列表中if seg and (re.match(r"[\u4e00-\u9fa5]+", seg) or re.match(r"[a-zA-Z]+", seg)):words.append(seg)# 返回列表return words# 定义一个函数,用于根据词汇列表生成词云图,并保存为jpg图像
def generate_wordcloud_from_words(words, filename):# 将词汇列表转换为以空格分隔的字符串text = " ".join(words)# 创建一个wordcloud.WordCloud对象,设置字体、背景颜色、最大词数等参数wc = wordcloud.WordCloud(font_path="msyh.ttc", background_color="white", max_words=100)# 使用generate方法根据字符串生成词云图wc.generate(text)# 使用matplotlib.pyplot模块显示和保存图片plt.imshow(wc) # 显示图片plt.axis("off") # 关闭坐标轴plt.savefig(filename) # 保存图片为jpg格式# 定义要处理的word文档的文件名
docx_filename = "words.docx"# 定义要保存的词云图的文件名
jpg_filename = "wordcloud.jpg"# 从word文档中提取所有的文本
text = get_text_from_docx(docx_filename)# 对文本进行分词,并返回一个词汇列表
words = get_words_from_text(text)# 根据词汇列表生成词云图,并保存为jpg图像
generate_wordcloud_from_words(words, jpg_filename)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词