Matplotlib wordcloud 词云图重点wordcloud是独立第三方库不是matplotlib内置matplotlib只负责展示词云图片 安装pip install wordcloud jieba核心逻辑词频越高文字字号越大适合快速看文本高频关键词影评、评论、摘要文本非常适配 CommentInfo.csv核心流程中文必考中文句子是连在一起的wordcloud默认只能按空格分词✅ 中文标准流程 原始文本 → jieba分词 → 过滤停用词 → 用空格拼接词语 → WordCloud生成词云 → plt.imshow展示 plt.axis(off)关闭坐标轴WordCloud 常用参数表考点参数说明font_path中文必写字体文件路径Windows黑体C:/Windows/Fonts/simhei.ttf不设置中文方框乱码width / height词云画布像素宽高默认400×200background_color背景颜色white/blackmax_words最多展示多少个词默认200max_font_size / min_font_size最大、最小字号stopwordsset集合停用词的、了、是、很等无意义词不显示mask蒙版ndarray自定义形状词云心形、logo轮廓collocations是否提取二元词组中文一般设置collocationsFalse避免重复统计基础中文词云完整示例适配影评文本import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt # 1. 准备影评文本这里可以替换成CommentInfo.csv里所有评论合并 text_raw 这部电影剧情很好演员演技在线画面很美剧情紧凑很好看推荐推荐剧情不错演员很棒 # 2. jieba分词 words jieba.lcut(text_raw) # 3. 自定义停用词 stop_words {的,了,是,很,也,就,都,看} # 过滤停用词、单字 word_list [w for w in words if w not in stop_words and len(w)1] # 空格拼接wordcloud要求 text_cut .join(word_list) # 4. 创建词云对象 wc WordCloud( font_path C:/Windows/Fonts/simhei.ttf, width800, height400, background_colorwhite, max_words100, collocationsFalse ) # 生成词云 wc.generate(text_cut) # 5. matplotlib展示词云 plt.figure(figsize(10,5)) plt.imshow(wc, interpolationbilinear) # bilinear平滑 plt.axis(off) # 关闭坐标轴词云必须写 plt.title(影评关键词词云) plt.tight_layout() plt.show() # 保存图片 wc.to_file(wordcloud.png)进阶基于CommentInfo.csv 影评词云课程作业版本import pandas as pd import jieba from wordcloud import WordCloud import matplotlib.pyplot as plt plt.rcParams[font.sans-serif] SimHei plt.rcParams[axes.unicode_minus] False # 读取影评数据 df pd.read_csv(datasource/CommentInfo.csv,encodinggbk) # 合并全部评论内容假设评论字段 comment all_comment .join(df[content].astype(str)) # 分词过滤 stop_words {的, 了, 是, 很, 也, 就, 都, 这个, 一个} words jieba.lcut(all_comment) word_filter [w for w in words if w not in stop_words and len(w) 1] text_ready .join(word_filter) # 生成词云 wc WordCloud( font_pathC:/Windows/Fonts/simhei.ttf, width900, height500, background_colorwhite, max_words120, collocationsFalse ) wc.generate(text_ready) # 绘图展示 fig, ax plt.subplots(figsize(10, 6)) ax.imshow(wc, interpolationbilinear) ax.axis(off) ax.set_title(影评评论关键词词云) plt.show()高频易错点【考试常考】❌ 中文直接丢给generate() → 全部方框必须指定font_path jieba分词 空格拼接❌ 忘记plt.axis(off)→ 词云旁边多出坐标轴刻度非常难看❌ 没有停用词过滤大量“的、了、是”霸占画面没有分析价值❌ collocationsTrue容易出现连续两字重复词组中文一般关掉interpolationbilinear图片平滑渲染不加边缘会锯齿词云适合/不适合场景✅ 适合文本高频关键词快速概览、影评、弹幕、新闻摘要 ❌ 不适合精确对比词频大小字号肉眼很难精准对比精确对比用柱状图补充蒙版形状词云拓展考点from PIL import Image import numpy as np mask_img np.array(Image.open(heart.png)) wc WordCloud(font_pathsimhei.ttf, maskmask_img, background_colorwhite)mask会让词云贴合图片白色以外轮廓。!DOCTYPE html html langzh-CN head meta charsetUTF-8 meta nameviewport contentwidthdevice-width, initial-scale1.0 titlewordcloud词云选择题自测/title style *{box-sizing:border-box;font-family:Microsoft Yahei,sans-serif} body{max-width:900px;margin:20px auto;padding:0 16px;background:#f8fafc;color:#222} h1{text-align:center;color:#2c5282;font-size:24px} .q-item{background:#fff;border:1px solid #e2e8f0;border-radius:10px;padding:18px;margin-bottom:16px} .q-title{font-weight:bold;margin-bottom:12px;line-height:1.6} .opt{padding:10px 14px;margin:8px 0;border:1px solid #e2e8f0;border-radius:8px;cursor:pointer;transition:0.2s} .opt:hover{background:#edf2f7} .opt.right{background:#c6f6d5;border-color:#48bb78} .opt.wrong{background:#fed7d7;border-color:#f56565} .ans-box{margin-top:12px;padding:12px;background:#f0f7ff;border-radius:8px;color:#2b6cb0;display:none} .btn-group{text-align:center;margin:24px 0} button{padding:10px 20px;border:none;border-radius:8px;background:#3182ce;color:#fff;font-size:16px;cursor:pointer;margin:0 8px} #score{font-size:18px;text-align:center;margin:16px 0;font-weight:bold;color:#2c5282} /style /head body h1wordcloud词云 自测20题/h1 div idscore/div div idcontainer/div div classbtn-group button idsubmitAll提交全部查看得分/button button idresetAll重置试卷/button /div script const questionList [ { q:1. 生成中文词云wordcloud库是否属于matplotlib内置模块, opts:[是直接import即可,不是需要单独pip安装wordcloud,是属于pyplot子模块,不是需要安装pandas], answer:1, explain:wordcloud是第三方独立库不属于matplotlib需要执行pip install wordcloud安装。 }, { q:2. wordcloud库对中文文本处理的硬性要求是, opts:[文本直接传入generate,分词后词语之间用空格隔开,分词后词语用逗号隔开,不需要分词], answer:1, explain:wordcloud默认以空格作为词语分隔标记中文必须先分词再用空格拼接词语字符串。 }, { q:3. 实现中文词云用来中文分词的常用库是, opts:[numpy,jieba,pandas,PIL], answer:1, explain:jieba是Python主流中文分词库lcut()进行精确分词。 }, { q:4. WordCloud中font_path参数的作用是, opts:[设置词云背景颜色,指定中文字体路径解决中文方框乱码,设置最大词语数量,设置蒙版图片], answer:1, explain:font_path传入字体文件路径是中文词云必不可少的参数不设置中文会显示方框。 }, { q:5. 绘制词云展示时plt.axis(\off\)作用是, opts:[关闭图例,关闭坐标轴、刻度边框,关闭标题,关闭图片平滑], answer:1, explain:词云图不需要坐标轴axis(\off\)隐藏坐标轴和刻度。 }, { q:6. 下面哪一个是停用词的作用, opts:[放大高频词字号,过滤“的、了、是”这类无意义虚词,修改词云形状,修改字体大小], answer:1, explain:停用词一般是助词、副词没有分析价值过滤后关键词更清晰。 }, { q:7. WordCloud参数 collocationsFalse主要针对中文的目的是, opts:[开启二元词组搭配统计,关闭二元词组避免重复组合词语,设置背景透明,限制最大词数], answer:1, explain:collocations默认True会自动拼接相邻词语生成二元短语中文场景一般关闭防止干扰分词结果。 }, { q:8. 代码 jieba.lcut(text) 返回的数据类型是, opts:[字符串,列表每个元素是切分后的词语,字典,numpy数组], answer:1, explain:lcut精确分词返回词语列表cut返回生成器。 }, { q:9. 想要自定义心形、圆形轮廓的词云需要使用哪个参数, opts:[stopwords,mask,max_font_size,background_color], answer:1, explain:mask接收图片转成的numpy数组作为蒙版词云按照图片轮廓填充文字。 }, { q:10. WordCloud的generate()函数接收的数据类型是, opts:[词语列表list,用空格分隔的字符串str,DataFrame,数组], answer:1, explain:generate只接收字符串词语之间空格分隔不能直接传入list。 }, { q:11. 词云里面词语字号大小由什么决定, opts:[词语长度,词频出现次数频次越高字号越大,词语拼音首字母,手动指定每个词大小], answer:1, explain:词云核心逻辑词频越高渲染字号越大。 }, { q:12. 代码 plt.imshow(wc, interpolation\bilinear\) 中interpolation\bilinear\作用, opts:[关闭坐标轴,图片双线性插值让文字边缘平滑减少锯齿,修改字体,设置背景色], answer:1, explain:bilinear是平滑插值方式优化图像显示效果。 }, { q:13. WordCloud参数max_words含义是, opts:[单个词语最大长度,词云最多展示多少个关键词,字体最大字号,分词最大数量], answer:1, explain:max_words控制词云展示词语上限超过的低频词舍弃。 }, { q:14. 下面哪一项不适合用词云图来展示, opts:[影评文本高频关键词概览,弹幕热点词汇,精确对比两个词语出现次数差值,新闻摘要关键词], answer:2, explain:肉眼很难通过字号精准对比频次差异精确词频对比优先柱状图。 }, { q:15. stopwords传入的数据类型一般是, opts:[集合set,数字,图片数组,DataFrame], answer:0, explain:stopwords接收集合查找判断速度更快格式示例{\的\,\了\,\很\}。 }, { q:16. WordCloud中background_color参数作用, opts:[文字颜色,词云画布背景颜色,边框颜色,坐标轴颜色], answer:1, explain:background_colorwhite代表白色背景。 }, { q:17. 读取蒙版图片并且转为numpy数组一般需要用到哪两个库, opts:[jieba pandas,PIL.Image numpy,matplotlib pandas,wordcloud jieba], answer:1, explain:Image.open打开图片np.array()转为蒙版数组传给mask。 }, { q:18. 生成词云后wc.to_file(\ciyun.png\)功能是, opts:[在窗口展示图片,将词云保存为本地图片文件,关闭词云对象,设置标题], answer:1, explain:to_file是wordcloud自带保存方法plt.show()才是窗口展示。 }, { q:19. 下面哪一个属于典型停用词, opts:[剧情,演员,的,画面], answer:2, explain:“的”是助词无实际分析意义属于停用词。 }, { q:20. 中文词云常见报错文字全部显示方框最不可能的原因是, opts:[没有设置font_path字体路径,没有用jieba分词,没有安装numpy,没有空格拼接分词结果], answer:2, explain:numpy缺失不会直接造成中文方框乱码字体缺失、未分词、没有空格分隔才是主要原因。 } ]; const container document.getElementById(container); let userAnswers Array(questionList.length).fill(null); function render(){ container.innerHTML ; questionList.forEach((item,idx){ const div document.createElement(div); div.className q-item; let html div classq-title${item.q}/div; item.opts.forEach((optStr, optIdx){ let cls opt; if(userAnswers[idx]!null){ if(optIdx item.answer) cls right; else if(optIdx userAnswers[idx] optIdx!item.answer) cls wrong; } html div class${cls} data-q${idx} data-opt${optIdx}${String.fromCharCode(65optIdx)}. ${optStr}/div; }) html div classans-box idans${idx}b解析/b${item.explain}/div; div.innerHTML html; container.appendChild(div); }) bindClick(); } function bindClick(){ document.querySelectorAll(.opt).forEach(el{ el.onclick function(){ const qIdx this.dataset.q; if(userAnswers[qIdx]!null) return; userAnswers[qIdx] this.dataset.opt; render(); } }) } document.getElementById(submitAll).onclick function(){ let rightCnt 0; for(let i0;iquestionList.length;i){ if(userAnswers[i] questionList[i].answer) rightCnt; document.getElementById(ansi).style.display block; } document.getElementById(score).innerText 得分${rightCnt} / ${questionList.length}; } document.getElementById(resetAll).onclick function(){ userAnswers Array(questionList.length).fill(null); document.getElementById(score).innerText ; render(); } render(); /script /body /html
企业数字化 ERP 产品动态
相关推荐
WorkBuddy三大工作模式——Ask / Plan / Craft /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/8 1:51:52
协助办理电工证电子证书查询 郑州报考避坑指南:证书过期了不知道怎么复审延期?教你一步解决 证书过期了不知道怎么复审延期?很多郑州的电工、焊工、高处作业人员都遇到过这个问题,特别是在建筑施工领域,特种作业证书不仅是上岗的“通行证”,更是保障自己和他人生命安全的重要凭证。… · 2026/11/8 4:51:25
武威电工证怎么获取全国通用的正确打开方式 武威电工证怎么获取全国通用的正确打开方式 找工作没证根本走不进去,特别是特种作业,像电工证这种, 全国通用 的,不考就别想干。我认识好几个老电工,都是从零开始,一步一步考下来的,现在不仅有稳定工作,还能接一些外包项目,收入比以前翻了几倍。可… · 2026/11/8 4:51:25
怒江电工证哪里报名怎么考电子证书最靠谱 怒江电工证哪里报名怎么考电子证书最靠谱 学历不高怕报不上名?别担心,怒江电工证哪里报名其实有门道,关键是你得选对地方和流程。现在电工证已经是电子证书形式,考试和报名流程也更加规范,很多低学历的小伙伴也能顺利考下来,下面我从南阳卧龙区转岗从业… · 2026/11/8 4:51:25
乌丹能考电工证吗?郑州报考避坑指南全解析 乌丹能考电工证吗?郑州报考避坑指南全解析 工地太忙根本没时间复习考试,这种话我听太多了。作为一名在应急管理特种作业培训领域混了十年的老手,说实话,很多工友都因为没时间、没资源、没方向,错过了考证的黄金期,甚至踩坑交了不该交的钱。… · 2026/11/8 4:51:25
杞县电工证查询怎么查?学历不高怕报不上名?含金量还在 杞县电工证查询怎么查?学历不高怕报不上名?含金量还在 学历不高怕报不上名?别担心,杞县电工证查询其实并不难,关键是要了解流程和标准。很多人误以为只有高学历才能报考电工证,但实际上,只要你符合年龄、健康和工作经验等条件,照样能拿到含金量十足的… · 2026/11/8 4:51:25
广东电工证vip班怎么报名?学历不高怕报不上名?看这篇就够了 广东电工证vip班怎么报名?学历不高怕报不上名?看这篇就够了 学历不高怕报不上名,这个焦虑很多人都有。特别是想报考【广东电工证vip班】的朋友,总觉得学历不够,报名流程复杂,不知道怎么报名,心里没底。但其实,只要掌握正确的方法,即使是学历不… · 2026/11/8 4:50:25
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
电工证丢失还能补吗?千万别踩坑,丢了证等于失业 电工证丢失还能补吗?千万别踩坑,丢了证等于失业 你正在找工作,但手里的电工证突然丢了,这下怎么办?别急,先别慌, 电工证丢失还能补吗 ?答案是肯定的,但 千万别踩坑 ,补办流程如果不了解,可能会耽误你上岗、甚至影响到你的收入。… · 2026/11/8 0:00:20
电力电缆作业证直播报名入口与办理流程良心建议 电力电缆作业证直播报名入口与办理流程良心建议 你是不是也担心学历不高报不了名?别急,今天就给你讲讲 电力电缆作业证直播 的报名流程和那些你必须知道的干货, 良心建议 在这里,别错过。 电力电缆作业证直播报名需要什么条件?… · 2026/11/8 0:00:20
英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 英德电工证报考费多少钱,怕考不过白交培训费?看完这篇别再踩坑 怕考不过白交培训费?英德电工证报考费多少钱,你真的了解吗?现在市面上培训机构五花八门,价格参差不齐,很多人一不小心就花了冤枉钱,结果还考不过。别急,今天就来给你说清楚英德电工证的… · 2026/11/8 0:00:20
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 11:25:08
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/7 12:02:18
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案 /* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/8 1:18:25