环境准备导入库读取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生成词云(解决中文词云乱码)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)