python实现从文档里生成词云图

用到jieba和python-docx wordcloud matplotlib库。

from docx import Document
import matplotlib.pyplot as plt
from wordcloud import WordCloud, STOPWORDS
import numpy as np
from PIL import Image
import jieba

# 读取Word文档内容
docx_file = "your_document.docx"  # 替换为你的Word文档路径
doc = Document(docx_file)
text = ""
for para in doc.paragraphs:
    text += para.text

# 使用结巴分词进行中文分词
seg_list = jieba.cut(text, cut_all=False)
text_data = " ".join(seg_list)

# 选择自定义形状图片
shape_mask = np.array(Image.open("your_shape_image.png"))  # 替换为你的自定义形状图片路径

# 创建WordCloud对象并生成词云图,指定中文字体路径和形状图片
font_path = "your_chinese_font.ttf"  # 替换为中文字体文件路径
wordcloud = WordCloud(width=800, height=400, background_color="white", font_path=font_path,
                      mask=shape_mask, contour_width=1, contour_color='black').generate(text_data)

# 显示词云图
plt.figure(figsize=(10, 5))
plt.imshow(wordcloud, interpolation="bilinear")
plt.axis("off")
plt.show()

# 保存词云图为图片
wordcloud.to_file("wordcloud_custom_shape.png")  # 保存为PNG图片,可以根据需要修改文件名和格式


结果。。。。出现乱码,应该是中文乱码问题。
在这里插入图片描述
检查发现第23行代码有问题
自行导入中文所在路径:
在这里插入图片描述
找想要的字体并复制路径。在这里插入图片描述
结果运行正确
在这里插入图片描述
要生成有自定义形状的词云图,并确保不出现中文乱码,可以使用wordcloud库的WordCloud对象的mask参数指定一个形状图片,并使用font_path参数指定中文字体的文件路径。

  • 11
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值