美文网首页Python爬虫作业
使用 Python 制作 疾风剑豪-亚索 词云图

使用 Python 制作 疾风剑豪-亚索 词云图

作者: c067527d47c2 | 来源:发表于2019-03-13 15:15 被阅读3次

    前言

    最近空下来了,又可以量产文章了,但是写文章还是要走心的

    写文章的过程其实挺麻烦的,耗费的时间也不少
    学习Python中有不明白推荐加入交流群
    号:984632579
    群里有志同道合的小伙伴,互帮互助,
    群里有不错的视频学习教程和PDF!
    但是对自己的表达能力和对代码的认识程度能更上一层楼

    还记得从第一次写文章到现在,写过爬虫、自然语言处理、面向对象、pandas等

    当然,以后会写更多内容哈哈

    前段时间觉得词云这东西挺好玩的,于是就稍微入门看看情况

    安装word-cloud

    老规矩,在cmd下输入:

    pip3 install wordcloud
    
    img

    如上图,我之前已经装好了。

    使用环境

    python3.x版本

    jupyter notebook 编辑器

    官方github地址

    https://github.com/amueller/word_cloud

    导入模块

    import wordcloud
    
    img

    如果没报错就说明安装完成了

    疾风剑豪搭载特朗普核心

    使用的是特朗普就职演讲内容~

    原图:

    img

    制作词云图之后:

    img img

    具体代码如下:

    from os import path
    from PIL import Image
    import numpy as np
    import matplotlib.pyplot as plt
    
    from wordcloud import WordCloud, STOPWORDS, ImageColorGenerator
    
    
    d = path.dirname('.') #获取到当前文件路径
    # Read the whole text.
    text = open(path.join(d, 'yasuo.txt')).read() #读取制作词云的文本
    
    #设置背景图片
    # read the mask / color image taken from
    # http://jirkavinse.deviantart.com/art/quot-Real-Life-quot-Alice-282261010
    alice_coloring = np.array(Image.open(path.join(d, "yasuo.jpeg")))
    stopwords = set(STOPWORDS)
    stopwords.add("said")
    
    #背景颜色,显示最多词数,设置背景图片,字体最大值等
    wc = WordCloud(background_color="white", max_words=1000, mask=alice_coloring,
                   stopwords=stopwords, max_font_size=500, random_state=42)
    # generate word cloud
    #生成词云
    wc.generate(text)
    
    # create coloring from image
    image_colors = ImageColorGenerator(alice_coloring)
    
    # show
    plt.imshow(wc, interpolation="bilinear")
    plt.axis("off")
    #绘制词云图
    plt.figure()
    # recolor wordcloud and show
    # we could also give color_func=image_colors directly in the constructor
    plt.imshow(wc.recolor(color_func=image_colors), interpolation="bilinear")
    plt.axis("off")
    plt.figure()
    plt.imshow(alice_coloring, cmap=plt.cm.gray, interpolation="bilinear")
    plt.axis("off")
    plt.show()
    

    将最多显示词数和词的大小调整之后是不是看起来舒服多了呢!

    img img

    从词云图是不是可以看出疾风剑豪的动作和特朗普有某些相似之处呢~

    注意:当你使用时只需要修改yasuo.jpeg和yasuo.txt的内容和名字,然后可以适当修改词的大小和最多显示个数(要将这两个文件放在默认路径,或者自己写对路径)

    我测试了一下,这个词云图用中文文本不太方便,要先分词,于是可以参照以下代码做中文词云图,有需要的小伙伴可以看看:

    找回自我-重拾亚索核心

    制作中文词云图:

    from os import path
    from scipy.misc import imread
    import matplotlib.pyplot as plt
    import jieba
    from wordcloud import WordCloud
    
    
    #text = cleaned_comments #文本数据
    text = '''疾风剑豪·亚索是网络竞技游戏《英雄联盟》里面第117位英雄。 
    
    疾风剑豪·亚索主要造成物理伤害,护甲是最佳防御,他是一位近战爆发AD刺客,双突进的技能设置,使得他在中单游刃有余,并且大招在队友的配合下,在团战中能够发挥至关重要的作用。亚索是一个百折不屈的男人,还是一名身手敏捷的剑客,能够运用风的力量来斩杀敌人。这位曾经春风得意的战士因为诬告而身败名裂,并且被迫卷入了一场令人绝望的生存之战。即使整个世界都已与他为敌,他也要竭尽所能地去将罪恶绳之以法,并恢复自身的名誉。
    
    亚索曾是艾欧尼亚某所知名剑术道场的天才学徒,并且还是同辈中唯一能够掌握传说中的御风剑术的学生。大部分人曾相信他注定会成为一位伟大的英雄。但是,因为诺克萨斯的入侵,他的命运被永久地改变了。亚索在那时负责保护一位艾欧尼亚长者,但是,他自大地以为自己的剑能够改变战局,便擅离职守,投身于战场之中。当他回到长者身边时,发现长者已被杀死。
    
    身败名裂的亚索甘愿自首,准备用一生来补偿他的失职之罪。但是,他不单被控告玩忽职守,还被控告谋杀,这让他震惊不已。尽管负罪感让他困惑不已、痛苦不堪,但他知道,如果他不作为的话,真正的刺客就会逍遥法外。亚索拔剑而战,逃出道场,并且他非常清楚,自己又犯下了谋反罪,整个艾欧尼亚都会与他为敌了。他第一次陷入真正的孤独境地,踏上了寻找杀害长老的真凶的人生旅程。
    
    亚索接下来的数年都在各地流浪,搜寻着能够带他找到真凶的蛛丝马迹。至始至终,他都在被昔日的同窗们无情地追捕着,不断地被迫作战,否则就会丧命。他的使命驱使着他不断前行,直到他被最为可怕的对手——他的亲兄弟,永恩——所追上。
    
    在传统礼教的束缚下,这两位剑客先是互相鞠躬,然后拔剑交战。在月光下,他们无声地将剑挥舞了一圈又一圈。当他们最终向前冲锋时,永恩不敌亚索;剑光闪过,永恩就倒下了。亚索弃剑后冲到永恩旁边。
    
    百感交集下,他询问自己的兄弟,他的亲人们怎么会认为他有罪。永恩说:“长者死于御风剑术。还有谁能做到呢?”亚索瞬间明白了为何自己会被控告。他再次声称自己是清白的,并且乞求他的兄弟原谅自己。随着他的兄弟在他的臂弯里永眠,他的泪水也在他的脸颊上滑落。
    
    在旭日下,亚索埋葬了永恩,但他没有时间去悼念了。很快就会有其他人来追捕他。兄弟的启示给了他全新的目标;他现在已经有了能够带他抓到真凶的线索。他一边立誓,一边收拾行李,不舍地告别永恩之墓,在风的陪伴下踏上征程。
    
    “剑之故事,以血为墨。”——亚索
    你可以将敌方小兵作为踏前斩的跳板,来追杀本已逃掉的敌人;你也可以直接突进到对方英雄身上,并将敌方小兵作为撤退时的跳板。
    
    在18级时,亚索的斩钢闪只需要从装备中获取 55% 攻击速度,即可到达攻击速度上限。
    
    狂风绝息斩可以对着任何被击飞的目标施放,即使这个击飞效果是你的友军造成的。
    
    折叠敌人使用
    
    斩钢闪的范围非常狭窄。尽可能靠边,就能躲过这招。
    
    当亚索的斩钢闪连续命中两次时,他的下次斩钢闪就会形成一道旋风。要观察他的增益栏,并且留心聆听相关音效,做好躲避这招的准备。
    
    亚索在发出旋风之后最为虚弱,可以趁机逼他交战。
    
    亚索的百折不屈的护盾只持续2秒。对他造成伤害即可将护盾触发。先等护盾消失,然后再开战。
    死亡如风,常伴吾身。
    长路漫漫,唯剑作伴。
    吾之荣耀,离别已久。
    明日安在,无人能允。
    且随疾风前行,身后亦须留心。
    此剑之势,愈斩愈烈。
    仁义道德,也是一种奢侈。
    灭亡之路,短的超乎你的想象。
    无罪之人,方可安睡。
    正义,好个冠冕堂皇之词。
    回首往昔,更进一步。
    吾虽浪迹天涯,却未迷失本心。'''
    
    cut_text = ' '.join(jieba.lcut(text))
    print(cut_text)
    color_mask = imread("yasuo.jpeg")
    cloud = WordCloud(
        font_path='方正喵呜体.ttf',  # 字体最好放在与脚本相同的目录下,而且必须设置
        background_color='white',
        mask=color_mask,
        max_words=2000,
        max_font_size=50000
    )
    word_cloud = cloud.generate(cut_text)
    plt.imshow(word_cloud)
    plt.axis('off')
    plt.show()
    

    这次text加的是亚索相关的内容了

    img

    字体大家可以自己下载,放在默认目录里就可以咯~

    快开始你的词云图DIY吧

    相关文章

      网友评论

        本文标题:使用 Python 制作 疾风剑豪-亚索 词云图

        本文链接:https://www.haomeiwen.com/subject/qvxtmqtx.html