python——读取docx文档wordcloud生成词云并进行词频统计

python——读取docx文档wordcloud生成词云并进行词频统计,第1张

python——读取docx文档wordcloud生成词云并进行词频统计

文章目录

环境准备导入库读取docx并进行分词词频词云

设置背景图片(可选)生成词云保存词云并显示

环境准备
# 不是docx,是python-docx!!!!!!!
pip install python-docx
pip install wordcloud
pip install jieba
导入库
#导入所需库
from docx import document

#打开word文档
document = document("第六组访谈简报汇总.docx")
读取docx并进行分词

关键词:

ask_keyWord_list = ["访", "点", "发现"]
del_keyWord_list = ["会", '情况', '一个', '时候', '对', "的", '好', '不', '还', '就', '可以', '两个', '大', '人', '带', "所", "是", "有", "啥", "来", "陈","点", ':',",", '。', ".", ";", ' ', "、", "他", "自己", '因为', '在', '和', '用', '也', '都', '了', '比较', '去', "觉得", "很"]  
import jieba
#获取所有段落
all_paragraphs = document.paragraphs
txt = ""
text_all_list = []
for paragraph in all_paragraphs:
    DEL_LINE = False
    # 必须给个符号分隔开分词结果来形成字符串,否则绘制词云都以符号为分割,不具备特征性。
    cut_text = jieba.cut(paragraph.text)
    result = " ".join(cut_text)
    # 删除提问
    for keyWord in ask_keyWord_list: 
        if keyWord in result:
            DEL_LINE = True
            break
    # 如果是提问,跳过该段
    if DEL_LINE or result == "":
        continue
    # 删除不必要词语
    res_list = result.split( )
    res_list_copy = res_list
    for delWord in del_keyWord_list:
        for i, res in enumerate(res_list):
            if delWord in res:
                res_list_copy.pop(res_list.index(res))
    # 合成列表
    text_all_list += res_list_copy
    text_result = " ".join(res_list_copy)
    # print("result:", result)
    # print("res_list:", res_list)
    # print("text_result:", text_result)
    txt += text_result
    # input()
# txt

词频
# 词频统计
import collections # 词频统计库
word_counts = collections.Counter(text_all_list) # 对分词做词频统计
word_counts_top20 = word_counts.most_common(20) # 获取前10最高频的词
print (word_counts_top20) # 输出检查

词云 设置背景图片(可选)
from PIL import Image
mask_pic = Image.open("科创学院.png")
mask_pic_array = np.array(mask_pic)#将词云图片转换为数组
生成词云
from wordcloud import WordCloud
wc = WordCloud(
        # 设置字体旋转度,0-1,1为垂直
        prefer_horizontal=1, 
        # 设置词云的中文字体所在路径,不指定就会出现乱码
        font_path = "义启-破苍穹.TTF", 
        # 设置背景色
        background_color='white',
        # 设置背景宽
        width=1920,
        # 设置背景高
        height=1080,
        # 最大字体
        max_font_size=300,
        # 最小字体
        min_font_size=10,
        # 词频与放大程度的相关性
        relative_scaling = 1,
        mode='RGBA',
        # colormap='Purples',
        # mask = mask_pic_array
        )
wc.generate(txt)

保存词云并显示
wc.to_file(r"wordcloud.png") # 按照设置的像素宽高度保存绘制好的词云图,比下面程序显示更清晰
# 4.显示图片
# 指定所绘图名称
plt.figure("jay")
# 以图片的形式显示词云
plt.imshow(wc)
# 关闭图像坐标系
plt.axis("off")
plt.show()

参考文档:

Python读取word文档内容PYTHON安装的DOCX出错 NO MODULE NAMED ‘EXCEPTIONS‘Docx:docx.opc.exceptions.PackageNotFoundError: Package not found atPython生成词云(解决中文词云乱码)

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5711057.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-18
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存