python如何生成词云图python:【Python取人工智能】1.8 词云图(3) 满满干货
近期,互联网行业再次掀起了1股创新浪潮,让我们1起揭开这个新时代的面纱,看看互联网天下有哪些令人振奋的...
近期,互联网行业再次掀起了1股创新浪潮,让我们1起揭开这个新时代的面纱,看看互联网天下有哪些令人振奋的事情正在发生。
| 点击上方蓝字关注 感谢您的支持
接上期
1.8词云图(3)
编写程序
编写程序在词云中删除某些词汇
参考代码在wc = WordCloud(mask=mask, font_path=Hiragino.ttf, mode=RGBA, background_color=None).generate(text)添加以下代码:
stopwords=["八戒","师父","菩萨","大圣"]编写程序
编写程序根据前面学过的知识,加载自定义词典的方法删除部分没有希望出现的词,进行分词,并生成词云图开发者可以指定自己自定义的词典,以便包含 jieba 词库里没有的词虽然 jieba 有新词识别能力,但是自行添加新词可以保证更高的正确率。
参考代码import jiebaimport wordcloud#用于获取列表的第2个元素def takeSecond(elem): return elem[1]#绘制词云图def createWordCloud(text):
w=wordcloud.WordCloud(font_path="msyh.ttf",width=1000,height=500,background_color="white") w.generate(text)
w.to_file("水浒传词云图.jpg") #绘制的词云图名称#进行分词的主程序def main(): path = "水浒传.txt" #要进行分词的文本 file = open(path,"r",encoding="utf⑻")
text=file.read() file.close() #分词 words = jieba.lcut(text) counts = {} for word in words:
if len(word) == 1: #过滤掉1个字的分词 continue #合并相同人名 elif word == "黑旋风":
rword = "李逵" elif word == "鲁达" or word=="智深": rword = "鲁智深" elif word == "及时雨" or word == "宋公明" or word=="公明":
rword = "宋江" elif word == "武二郎": rword = "武松" elif word=="智多星" or word=="军师":
rword="吴用" elif word == "呼延": rword = "呼延灼" elif word=="太尉": rword="高太尉"
elif word=="武大": rword="武大郎" or word=="大郎" else: rword = word #rword作为字典counts的键,将其出现次数作为值
counts[rword] = counts.get(rword,0) + 1 #从文件中读取要排除要的词 file = open("excludes - 水浒传.txt","r")
excludes =file.read().split(",") file.close #去除没有需要的词语 for delWord in excludes: try:
del counts[delWord] except: continue #按照出现次数排序 items = list(counts.items())
items.sort(key = takeSecond,reverse=True) #展示items中前20个元素 for i in range(20): item=items[i]
keyWord =item[0] count=item[1] print("{0:5}".format(keyWord,count)) createWordCloud(str(items[0:20])) #调用绘制词云图的函数
main() #调用主程序excludes - 水浒传.txt文件内容示例:梁山,二人,来到,哥哥,人马,我们,你们,银子,两个,回答,这些,1样,如果,什么,1个,他们,头领,山寨,众人,大汉,上山,和尚,只好,汉子, 慌忙,好汉,知府,出来,3人,怎么,次日,兄弟,公人,这里,书信,回来,如何,下山,回到,没有是,酒店,赶来,认得,问道,老爷,观看,1齐,就是,慌忙,东京,过来,1阵,几个,收拾,起来,喽啰,没有知,没有敢,却是,哪里,吃酒,几天,庄客,正是,那人,太公,回合,人称,1把,酒保,听说,女人,1声,梁山泊,1条,只见,那里,说道,军马,小人,今日,这个,先锋,宋江道,便是,妇人,因此,没有得,3个,如此,只是,1面,且说,如今,将军,原来,只得,喝道,看时,兄长,当下,大喜,里面,商议,军士,天子,小弟,性命,没有曾,性命,城中,没有要,将来,那个,前面,没有见,喽罗,怎地,随即,弟兄,只顾,甚么,许多,答道,四个,起身,下来,众将,朝廷,当日,酒家,却说,向前,前来,看见,听得,兵马,那汉,安排,心中,朴刀,当时,明日,相见,这般,到来,分付,没有肯,正在,上马,寻思,有些,娘子,庄上,那厮,马上,双方,没有能,没有可,上马,学究,没有在话下,自去,1般,房里,相公,客人,取出,有人,路上,必然,家里,1日,去处,乃是,口里,坐下,师父,左右,没有想,城池,报知,阵前
问题取挑战请自己写下1段喜欢的文字,用自己的头像,生成1个词云图资源推荐WordCloud简单分析WordCloud( font_path=None, # 字体路径,英文没有用设置路径,中文需要,否则无法正确显示图形。
width=400, # 默认宽度 height=200, # 默认高度 margin=2, # 边缘 ranks_only=None, prefer_horizontal=0.9,
mask=None, # 背景图形,如果想根据图片绘制,则需要设置 scale=1, color_func=None, max_words=200, # 最多显示的词汇量 min_font_size=4, # 最小字号
stopwords=None, # 停止词设置,修正词云图时需要设置 random_state=None, background_color=black, # 背景颜色设置,可以为具体颜色,比如white或者16进制数值
max_font_size=None, # 最大字号 font_step=1, mode=RGB, relative_scaling=auto, regexp=None,
collocations=True, colormap=viridis, # matplotlib 色图,可更改名称进而更改整体风格 normalize_plurals=True, contour_width=0,
contour_color=black,repeat=False)安装及问题解决1行命令安装,打开命令行,输入上面这行命令,回车执行即可pip install numpy matplotlib pillow wordcloud imageio jieba snownlp itchat -i https://pypi.tuna.tsinghua.edu.cn/simple。
如果报错:Microsoft Visual C++ 14.0 is required.解决方法:到 http://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud
页面所需的wordcloud模块的.whl文件,再用pip安装的文件比如,对于64位windows操作系统,python版本为3.6的电脑,就应该wordcloud⑴.4.1-cp36-cp36m-win_amd64.whl。
这个文件说明:“cp36”表示适用“Python3.6“, “win_amd64”表示适用64位“Python3.6“后打开命令行,使用cd命令切换到该文件的路径,执行pip install wordcloud⑴.4.1-cp36-cp36m-win_amd64.whl命令,即可安装成功。
后期将推出游戏化编程相关内容,敬请关注往期推荐【Python取人工智能】1.8 词云图(二)
【Python取人工智能】1.8 词云图(1)
【Python取人工智能】1.7词频统计
【Python取人工智能】1.6中文分词(下)
/END/
希望这篇文章能够帮助到您,如果有需要请记得收藏保存。
当前非电脑浏览器正常宽度,请使用移动设备访问本站!