查看原文
其他

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

2017-06-29 王大伟 Python爱好者社区

(点击上方Python爱好者社区,可快速关注)

作者:王大伟

博客专栏:https://www.hellobi.com/u/wangdawei/articles

Python爱好者社区  唯一小编 

(文末有新福利 

前言

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

写文章的过程其实挺麻烦的,耗费的时间也不少

但是对自己的表达能力和对代码的认识程度能更上一层楼

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

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

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

安装word-cloud

老规矩,在cmd下输入:

pip3 install wordcloud



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

使用环境

python3.x版本

jupyter notebook 编辑器

官方github地址

https://github.com/amueller/word_cloud

导入模块

import wordcloud


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

疾风剑豪搭载特朗普核心

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

原图:


制作词云图之后:


具体代码如下:

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()

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


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

注意:当你使用时只需要修改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加的是亚索相关的内容了


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

快开始你的词云图DIY吧

新福利:Kenny 7月11日在Hellobi Live直播 《自然语言处理之-基于深度学习技术的诗歌写作机器人内容:

1、 写诗机器人效果展示

2、 基于深度学习写诗机器人训练数据收集,清洗,导入

3、 诗歌数据预处理,特征化和数值化后转化为可训练的数据

4、 写诗机器人模块介绍

5、 写诗机器人算法介绍

6、 写诗机器人的实现及效果评估

付费参加方式:点击阅读原文报名

免费参加方式:长按下图,关注公众号Python爱好者社区,在菜单栏点击免费听课参加活动

关注公众号,“Python爱好者社区”,回复“爬虫”即可获取崔老师爬虫免费学习视频。



Python爱好者社区


为大家提供与Python相关的最新技术和资讯。


长按指纹 > 识别图中二维码 > 添加关注


您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存