随机文章

python如何生成词云图python:【Python取人工智能】1.8 词云图(3) 满满干货

 

近期,互联网行业再次掀起了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/

希望这篇文章能够帮助到您,如果有需要请记得收藏保存。

为您推荐

python如何生成词云图python:【Python取人工智能】1.8 词云图(3) 满满干货

python如何生成词云图python:【Python取人工智能】1.8 词云图(3) 满满干货

近期,互联网行业再次掀起了1股创新浪潮,让我们1起揭开这个新时代的面纱,看看互联网天下有哪些令人振奋的...

2023-06-08 栏目:编程控

当前非电脑浏览器正常宽度,请使用移动设备访问本站!