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

浏览: 4859

前言

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

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

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

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

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

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

安装word-cloud

老规矩,在cmd下输入:

pip3 install wordcloud

Clipboard Image.png


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

使用环境

python3.x版本

jupyter notebook 编辑器

官方github地址

https://github.com/amueller/word_cloud

导入模块

import wordcloud

Clipboard Image.png

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

疾风剑豪搭载特朗普核心

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

原图:

Clipboard Image.png

制作词云图之后:

Clipboard Image.pngClipboard Image.png

具体代码如下:

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

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

Clipboard Image.pngClipboard Image.png

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

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

Clipboard Image.png

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

快开始你的词云图DIY吧

推荐 6
本文由 ID王大伟 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

5 个评论

配图666
ImportError: No module named scipy.misc
这是怎么回事?
已解决
> font_path='方正喵呜体.ttf', # 字体最好放在与脚本相同的目录下,而且必须设置

英文例子没问题,但是中文的例子字体一直加载不进来。字体已经下载下来了
1. 放在与例子脚本相同的目录里面,没用。
2. 放在 C:\Windows\Fonts目录里面,没用。
3. 甚至放在 ImageFont 的目录里面,Lib\site-packages\PIL,还是没用。

请问,该怎么设置,谢谢。
换成 C:\Windows\Fonts 下的内置中文字体,ImageFont.py 又报
ImageFont.py, line 156 in getsize
size, offset = self.font.getsize<text, direction, features)
OSError: raster overflow

要回复文章请先登录注册