深度实践_01_词云

参考自网易云课堂-深度有趣
感谢宏伦工作室的视频录制 供予学习参考

词云 就像视频里说的高端又一般 有种华而不实的赶脚 外行人看来是件很酷的东西
其一:若干词案按照特定的图案组成 这究竟是如何做到的
其二:若词越大 则此词若越重要
等真正去实践生成词云 好像并没有想象中的那么困难 基本框架就三步

  • 导入文本数据
  • 使用wordcloud
  • 导出图片

就好了 非常简单 其中一些小细节都在是这三步基本框架中补充 认真想想 其实是我们站在了巨人的肩膀上 wordcloud已经把最核心最重要封装好了 如:究竟是如何做到按特定的图案排列 我们只需要拿来主义即可 在此感谢开发者们

下面是视频的简单总结及补充 具体内容还是去看视频吧 不能辜负每一位原作者的汗水和心血

使用到的第三方包:
  • wordcloud
  • matplotlib
  • PIL
  • numpy
  • jieba

1.英文词云 直接采用默认配置即可

wc = WordCloud().generate(text)
wc.to_file('wordcloud.png')

毕竟是歪果仁开发的语言 果然还是对英文特别友好
2.中文词云 需额外添加中文字体包

wc = WordCloud(font_path='Hiragino.ttf',width = 800,height= 600,
    mode = 'RGBA',background_color =None).generate(text)

3.中文词云 除了配置字体包 还需分词
英文天然空格分词属性 中文可就不好说了

text = ' '.join(jieba.cut(text))
wc = WordCloud(font_path = 'Hiragino.ttf',
                mode = 'RGBA',background_color = None).generate(text)

4.词云添加蒙版 (最酷炫的图案来了)
black_mask.png 为蒙版底片

mask = np.array(Image.open('black_mask.png'))
wc = WordCloud(mask = mask,font_path = 'Hiragino.ttf',
                mode = 'RGBA',background_color = None).generate(text)

5.词云使用蒙版的颜色

image_colors = ImageColorGenerator(mask)
wc.recolor(color_func = image_colors)

6.词云自定义文字颜色
这里使用HSL来自定义颜色 详情见文档
参考文档

def random_color(word,font_size,position,orientation,font_path,random_state):
    s = 'hsl(120 ,%d%%,%d%%)' % (random.randint(0, 100),random.randint(0, 100))
    return s 
mask = np.array(Image.open('black_mask.png'))
wc = WordCloud(mask = mask ,color_func = random_color,
                font_path = 'Hiragino.ttf',mode = 'RGBA',
                background_color = None).generate(text)

7.词云自定义关键词及权重

#可自定义freq字典
freq ={}
mask = np.array(Image.open('timg.jpg'))
wc = WordCloud(font_path = 'Hiragino.ttf',mask = mask,
                mode = 'RGBA',background_color= None).generate_from_frequencies(freq)

generate() = process_text() + generate_from_frequencies()
之前用到的generate()其实就是process_text() 统计文本词频 和jieba的统计关键词 两者差不多 结果很相似generate_from_frequencies()根据词频做图的结合体
8.词云使用停用词
有些没有实际含义 却普遍出现 如:你、我、他、如果等等
可根据实际效果 适当摘出 复制到txt中 用于停用词

# 获取名词
# jieba.enable_parallel(100) #开启并行模式 win下不支持 很气
text = ' '.join(x.word for x in psg.cut(text) if x.flag.startswith('n'))
# jieba.disable_parallel() #关闭并行模式

# 导入停用词
stopwords = open('stopwords.txt').read().split('\n')

# 导入蒙版
mask = np.array(Image.open('1.jpg'))
wc = WordCloud(mask=mask, font_path='Hiragino.ttf',
               mode='RGBA', background_color=None,
               stopwords=stopwords).generate(text)

最后话不多说 Github

代码实例

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • [Python word_cloud 样例 标签云系列(三)]转载地址:https://zhuanlan.zhih...
    听风阁阅读 681评论 0 0
  • 在前两章,介绍了文本材料的准备 以及 WordArt 可视化。这里我介绍如何自己动手DIY属于自己的词云。 材料:...
    MrAndyW阅读 797评论 1 1
  • 看拆掉思维的墙里面关于受害者的分享,才发现之前自己的状态太多是受害者的态度,特别是生活中,认为老公应该怎么样,必须...
    秋秋小Q阅读 252评论 0 0
  • 大路宽宽怎堵车,无数乌龟慢慢挪。 有只伸出头大喊,怎么不见兔子哥。
    老槐树阅读 208评论 1 2
  • 49天辟谷的第二周开始了。我还在坚持,感觉身心愉悦,舒爽。 本周以调理脾胃为主,少思少怨,少观看绿色,多观看黄色和...
    木兰禅舞阅读 749评论 3 3