1. 问题总结

1. 1 文件读写统一编码格式

错误案例:读取多个编码格式不同的文件时,使用了统一的解码格式,导致文本乱码或屏蔽实效。
例如:屏蔽词文件“stop_key.txt”编码为GBK,源文件“raw_text.txt”编码为“UTF-8”。一开始写函数并没有注意到这个细节,而后整个程序的读文件操作都通过一个 read_file() function进行,导致整个程序陷入了无限报错之中,拆东墙补西墙。
解决方案:给read_file() function 自定义参数mode,进而针对特殊编码的文件单独控制encoding。

  • ps:此处分别用两个open()强调文件编码不同
  • ps:在我没意识到文件编码异常之前,一直在调整统一的encoding试错,从“UTF-8”到"GBK"再到“GB18030”…显然都不能解决问题。如果通过设置errors=ignore强行忽视非法编码,要么导致源文文本乱码,要么就会在词库过滤时发现stop_words集合并没有起作用(原因一致)。由此引发的Error信息如下。
 UnicodeDecodeError: 'gbk' codec can't decode byte 0x80 in position 91: illegal multibyte sequenceUnicodeDecodeError: 'utf-8' codec can't decode byte 0xbd in position    0: invalid start byte
  • 补充:如果数据集从创建到调用都是自己通过python函数操作,往往不会出现编码格式错乱的问题(无非就GBK或UTF-8)。出现问题很可能是数据集被创建后自己 手动 打开 修改 保存 了源文档!这时候保存的文档编码格式可能会分裂成 UTF-8,GBK,GB18030,Unicode,ANSI,GB2312,BIG5等等常见的中文格式编码,这要看编辑器的默认转录格式
#这里两个文件的编码不同
#两个读文件操作可封装成一个function,利用参数控制encoding,对症下药
with open(file_path,'r',encoding='GBK',errors='ignore')as f:text = f.read()with open (fake_path,'r',encoding='utf-8',errors='ignore')as f:fake_data = f.readlines()

1.2 wordcloud易错参数解释

  • 参数stopwords接受的文本格式是set
  • 函数 generate接受的文本格式是str
#词云实例化
wc = wordcloud.WordCloud(stopwords=stop_words)
print(type(stop_words))
#<class 'set'>#词云生成
wc.generate(btext)
print(type(btext))
#<class 'str'>

2. 思路

(1)准备资源

  • 导入所需库
import wordcloud
import jieba
  • 准备好源文件,屏蔽词文件,备用字体
font_path = 'C:\Windows\Fonts\时尚中黑简体.ttf'
file_path = '新建文本文档.txt'
fake_path = 'stop_key.txt'
  • 自定义变量
alist = []  #
btext = ''  #
fake_set = {1}  #第三方屏蔽列集合
#根据文档特殊性而设计的自定义屏蔽词
stop_words = {'我们','这个','一个','可以','下来','这样','就是','用来','非常','然后','这里','非常','大家','时候','上面','里面','放在','首先','准备','出来','很多','其实','一些','拿出','还有','如果'}

(2)操作文件

  • 读入文件
#读入源文档
with open(file_path,'r',encoding='GBK',errors='ignore')as f:text = f.read()#type(text):str#ignore errors#读入屏蔽词
with open (fake_path,'r',encoding='utf-8')as f:fake_data = f.readlines()#屏蔽词文件中,每一个词汇独占一行,因此逐行读取#type(fake_data) is list. 这个列表里的每个元素都是strfor i in fake_data:#遍历屏蔽词列表,每个i都是一个屏蔽词fake_set.add(i.strip())#将屏蔽词加入集合,集合具有无序独立性,会自动排除重复词#扩充屏蔽词库
fake_set = fake_set|stop_words

(3)操作分词

  • 分词
#alist装填分词句
for i in jieba.cut(text,cut_all=False):#text是源文档#切分采用精确模式#jieba.cut()返回一个generate对象,使用for语句可以遍历此对象#每一个i都是一个stralist.append(i.strip())#循环结束后,alist列表里的若干个元素,都是通过jieba分好的词
  • 剔除屏蔽词
for word in alist:#alist是一个装填分词的列表,里面的每一个元素都来自源文档if word not in fake_set:#如果遍历到的词汇不是屏蔽词,那么就把这词接入btextbtext += wordbtext +='/'#每个分词之间用/断开#btext变量是一个较长的且已过滤屏蔽词的字符串str,每个分词之间由'/'断开

(4)生成词云

  • 根据需要调整具体参数
#实例化
wc = wordcloud.WordCloud(font_path=font_path,width=1920,height=1080,background_color="white")
#传入str对象
wc.generate(btext)file = wc.to_file('11111.jpg')
image = wc.to_image()
image.show()

此处给generate传入的参数btext已手动除杂,无需再在wordcloud的实例化参数中指明stopwords

(5)简易案例

  • 手动爬取15个沙雕营销号生活妙用视频文案,利用jieba+wordcloud统计高频词

(6)附件

这里呈上沙雕营销号文案

"""接着利用剪刀剪下来一个正方形纸片。
利用我们的美工刀在上面裁剪一个小孔。
小孔裁剪好了。
大家肯定非常好奇。
这个是用来做什么的?
其实这个就是我们用来阅读的一个小神器。
我们在阅读的时候。
可以将它放在我们的书上。
然后这样逐字阅读。
这个方法就是采用了我们小孔成像的原理。
这样我们阅读的时候就可以方便很多。
而且看得很清楚。
我们可以先把油桶的提手取下来
其实取下提手也是有小方法的
我们只要把这一圈齿片一片一片的往外掰
掰完以后,我们就可以把它取下来了
接下来我们看看它的妙用吧
家里衣服太多衣柜挂不下
我们只需把油桶上的塑料把手清洗干净
然后套在衣架上
这时我们将下一件衣服也挂在上面
这样就能为我们节省很多空间
我们拿出家里的吹风机
开启冷风档
大家看这个时候它散发出来的一股吸附力
能够将我们的一次性纸杯牢牢吸附在它的后盖上
能够轻松地吸附我们桌子上面的一些纸屑
热熔胶热熔胶热熔胶热熔胶热熔胶
然后将刀片黏在梳子上
我们准备一个卫生巾
把它贴在门把手侧面
妙用2用来戒烟
将风油精涂在香烟上 会有一股难闻的气味
吸烟者抽了就会头痛恶心 能达到减肥的效果
第三个妙用 我们可以在上面套一个垃圾袋
要当垃圾桶吗
这样把它放在我们卧室的床头上
在扔垃圾的时候就会变得非常容易了
如果觉得有异味的话
如果觉得有异味的话 我们扔完垃圾后可以盖上盖子我们先来准备食材:馒头、蜂蜜还有洗洁精
我们拿出馒头在上面 均匀地涂抹一些蜂蜜
然后再加入适量的洗洁精 切记涂抹均匀o
然后我们把它放在老鼠经常出没的地方
老鼠一碰到找个馒头就会轻松挂掉了
原理解释
蜂蜜是甜性物质 涂抹它是为了吸引老鼠过来
而洗洁精本身就是有毒的液体,老鼠一沾到就会自然挂掉你说涂点老鼠药上去1那我银A可能还能稍微能接受一点
可以我今天颠对洗清精的认识好吧
绝对不会出现老鼠今天呢城西教大家用现有的材料自制胶水那个效果呢用起来跟买的
效果是擦不多的
首先我们只需要准备一点淀粉
淀粉就是那个玉米定粉啊
这个声音像我小学门口小卖店的老板
接着我们挤入洗洁精
大家看同样是有粘的效果的
希望对大家有所帮助今天呢城西就跟大家讲一下
我们一定要在我们的钱包里面放一张纸
为什么呢?(为什么这个营销号不上字幕?)
作用可是非常的大啊
首先呢我们要拿出
一张这么大小的纸
裁剪出跟这里差不多大小
然后呢我们要在这个上面写上我们的姓名
姓名然后电话号码
然后呢还有家庭住址之类的
这个纸啊塞在最显眼的地方把冰淇淋拿出来把肥皂弄成永淇淋装回袋子另外我们还可以在废旧的鞋子里面
铺上一层锡箔纸
因为锡箔纸不怕烫
我们把它放在床头
就可以成为一个小小的烟灰缸啦
你为什么非要用个高跟鞋去做烟灰缸
实个烟灰缸就这么难吗
还要铺上锡销E
哇失响1你好讲究晚你,意识好强哦
是不是非常方便呢
而且也非常美观 像一件艺术品火机放在水里以后还能开火吗
打火机大家常见特别的男生
今天我们就来做这实验
首先准畜一个打火机和一个气球
把气球套在打火机上面
然后端口打个死结
接者我们把用气球装好的打火机放进水里
来回浸泡几分钟后拿出来
会发生什么变化呢
我们把气球剪破口 然后把火机拿出来
开火试一下竟然还是能用的
火花比原来的还要大
原来打火机在的密封下浸水
还是可以用的我们拿手机看电视时
可以将塑料提手向后掰几下
这时再把手机放上去
这样我们手机支架就做好了我们拿来一个家里面都有的废旧盒子
接着利用剪刀剪下来一个正方形纸片
利用我们的美工刀在上面裁剪一个小孔这一次性纸杯相信大家都不陌生
很多朋友的家里都会买一些这种纸杯
用它来招待客人
但是你知道
在这些纸杯上面扎一些小洞
他有什么作用吗
下面跟三毛一起来了解一下吧
首先我们准备一个一次性纸杯
还有一个叉子
然后我们用叉子
在这个杯子的底部给他戳一个小洞
将杯子底部扎完小洞之后
然后我们再将这个纸杯
放到另一个杯子里面
接下来我们再到这杯子里面
放入少许的茶叶
添加适量的茶叶之后
我们再倒入适量的开水
添加开水之后我们让它浸泡2-3分钟时间
浸泡2-3分钟时间后我们在将里面的杯子拿出来
我们现在可以看到
杯子里面的茶叶已经全部给过滤出来了
非常的方便
用这个方法来泡茶喝
它还可以节省茶叶
这么一点点茶叶我们可以泡好几杯茶
小妙招超实用的小妙招
学会了快告诉妈妈
准备一张吸油纸
将牙膏一粒一粒均匀地挤在纸上
然后撒上小苏打
等待凝固后
把它装进小瓶子里
刷牙的时候倒出一粒
就可以直接刷牙了将香皂融化吸入针管
然后挤入药板模型里面
用锡纸封柱模板
旅游的时候带在身上
随时随地都可以用来洗手废旧的牙刷还有怎样的妙用呢
跟我来看看
我们先准备两个差不多的牙刷
用皮筋将它们绑起来
那么这两支牙刷的第一个作用就是用来清洗水龙头
由于水龙头的形状比较特殊
所以它的内侧经常很难清理到
将牙刷取开 然后均匀的擦拭
可以看到里外都清理的非常干净
而且可以随时调换位置喝茶剩下的茶叶根不要扔
我们还可以拿它来做很实用的东西
首先将茶叶取出来 挤干水分放入盘中
然后翻在太阳下晒干
晒好后
将我们穿的袜子脱下来一只
将晒干的茶叶倒入袜子中
扎好口
一个便携的香袋就完成了
茶香四溢
怎么样 是不是很实用呢
如果实用别忘记点赞
"""

jieba+wordcloud 分词+词频可视化 问题总结相关推荐

  1. python用jieba进行分词并可视化

    python用jieba进行分词并可视化 import jieba import pandas as pd import matplotlib.pyplot as plt txt = open(&qu ...

  2. jieba库分词词频统计

    代码已发至github上的python文件 词频统计结果如下(词频为1的词组数量已省略): {'是': 5, '风格': 4, '擅长': 4, '的': 4, '兴趣': 4, '宣言': 4, ' ...

  3. 对中国四大名著--红楼梦 使用jieba进行分词处理 排除去停词 统计完整词频并按降序排列 前20词绘制词云图

    文章目录 前言 一.jieba是什么? 支持四种分词模式: 支持繁体分词 支持自定义词典 MIT 授权协议 二.直接上代码了 总结 前言 今天用jieba和词云库做个作业,顺便记录一下,作业要求: 1 ...

  4. Python可视化数据分析03、jieba【分词】

    Python可视化数据分析03.jieba[分词]

  5. Jieba中文分词下如何画词云图?

    配置:anaconda3 + Pycharm 文章目录 WordCloud 关于Jieba分词 Jieba中文分词 +绘制词云图 案例 WordCloud 英文文本 导入第三方模块 from word ...

  6. jieba + wordcloud + word2vec实例

    word2vec是google的一个开源工具,能够根据输入的词的集合计算出词与词之间的距离.它将term转换成向量形式,可以把对文本内容的处理简化为向量空间中的向量运算,计算出向量空间上的相似度,来表 ...

  7. Python jieba + wordcloud + matplotlib

    jieba 中文分词第三方库 三种模式 精确模式:把文本精确的切分开,不存在冗余单词 全模式:把文本中所有可能的词语都扫描出来,存在冗余 搜索引擎模式:在精确模式的基础上,对长词再次切分 常用函数 j ...

  8. jieba库词频统计_运用jieba库进行词频统计

    Python第三方库jieba(中文分词) 一.概述 jieba是优秀的中文分词第三方库 - 中文文本需要通过分词获得单个的词语 - jieba是优秀的中文分词第三方库,需要额外安装 - jieba库 ...

  9. 简明Jieba中文分词教程(分词、关键词提取、词性标注、计算位置)

    目录 0 引言 1 分词 1.1 全模式和精确模式 1.2 搜索引擎模式 1.3 HMM 模型 2 繁体字分词 3 添加自定义词典 3.1 载入词典 3.2 调整词典 4 关键词提取 4.1 基于 T ...

最新文章

  1. 关于指针和链表中的一些问题
  2. AJAX面试题:一个页面实现增删改查(ASP.NET实现)
  3. css3 多列布局使用
  4. 大屏监控系统实战(12)-10分钟投票增量曲线制作(一)
  5. java 模拟post上传文件_Java模拟post请求上传文件
  6. IOT(29)---深入解析物联网操作系统(架构/功能/实例分析)
  7. 【maven】maven jar 包 冲突 的解决方式
  8. 直接部署nginx和在docker里面部署nginx性能上有区别吗
  9. 1概率论与数理统计_浙江大学B站
  10. win10桌面null图标删除
  11. pantum打印机驱动安装m6506_奔图m6506nw驱动下载
  12. H3C交换机对接思科交换机
  13. 华为发展鸿蒙再出奇招,学习宝马推出官方认证二手手机
  14. msm8916 lcd 相关调试点指导
  15. 数学符号、希腊、拉丁字母、单位、标点的中英文读法
  16. python中怎么计数_python怎么实现计数?
  17. 计算机软件即征即退条文,2021年软件产品即征即退政策
  18. Python制作基础学生信息管理系统
  19. Cesium案例解析(七)——Layers在线地图服务
  20. C#毕业设计——基于C#+asp.net+cs的Web Mail邮件收发系统设计与实现(毕业论文+程序源码)——邮件收发系统

热门文章

  1. 通用型单片机GD32 MCU,飞睿科技代理线,低功耗微控制器
  2. Oracle建表及添加数据
  3. 【网站SEO优化】选择什么样的关键词最重要!
  4. 统一身份管理平台系统
  5. Web安全—逻辑越权漏洞(BAC)
  6. xss-labs/level15
  7. python海康威视网络摄像头_OpenCV:非海康威视大华宇视(其他)网络摄像头IPC 二次开发(Python)获取视频图像...
  8. CSS三栏布局的7种方式代码详解 | 圣杯布局 | 双飞翼布局 | 弹性盒子
  9. 文字转语音朗读如何操作?手把手教你如何将文字转语音
  10. mipsel_24kc的linux内核,歌华链OpenWrt固件的软重启reboot补丁制作OpenWrt固件软重启补丁下载...