【2020华为云AI实战营】第七章NLP作业,十步法教你做《魔戒》、《射雕英雄传》和《贝多芬传》词云图

举报
人还是要有梦想 发表于 2020/08/23 16:40:13 2020/08/23
【摘要】 十步法教你在ModelArts上采用最新的Jupyter Lab 端及python模块,将文本数据中出现频率较高的关键词以可视化的形式展现出来,形成漂亮的词云图。

1、背景

根据百度百科,词云这个概念来自于美国西北大学新闻学副教授、新媒体专业主任里奇·戈登(Rich Gordon),戈登曾担任迈阿密先驱报(Miami Herald)新媒体版的主任。他认为“词云”就是对网络文本中出现频率较高的“关键词”的视觉上的突出。

而词云图是将网络文本数据中出现频率较高的关键词以可视化的形式展现出来,让人能很直观地了解到文本数据中的关键词汇,从而过滤掉大量的文本信息,浏览网页者不用读文本,只要看过词云领略文本的主旨。

 

2、词云图工具简介

由于词云图可广泛用于诸如:PPT制作、海报制作、用户画像、剧本任务分析等等,诸多场景。有较多的相关词云制作工具,例如:Wordle、WordItOut、ToCloud等。但我们也可以用Python这个利器,在华为云的ModelArts上制作更有个性的词云图。

 

3、采用ModelArts制作词云图的过程

本文以《魔戒》、《射雕英雄传》、《贝多芬传》为例,通过十个步骤带领大家制作这三部小说的词云图。

当然在准备制作词云前,先要准备好文本文件,以及词云图的背景图片。下面我们开始:


第一步:准备小说文本,注意要存为UTF-8编码模式。




第二步:准备相应的词云背景图,注意要将图片设置为背景为白色图片(如第三张,钢琴的图片)。




第三步:进入华为云ModelArts界面,并进入开发环境下Notebook后,点“创建”




第四步:创建Notebook,注意选择工作环境是python3、类型为GPU、规格是【限时免费】体验规格、储存配置是云硬盘(EVS),配置完成后,点“下一步”,再点“提交”。我们就创建好了一个Notebook。




第五步:启动Notebook




第六步:打开JupyterLab,选择Notebook下,TensorFlow-1.13.1环境





第七步:加载gen_wordcloud.py文件,该文件下载地址是:

https://modelarts-labs-bj4.obs.cn-north-4.myhuaweicloud.com/notebook/DL_nlp_introduction/gen_wordcloud.py


该文件加载了如下库:

import os

import jieba

import chardet

import requests

import subprocess

import numpy as np

from PIL import Image

from wordcloud import WordCloud, ImageColorGenerator




第八步:继续加载已经做好的文本文件——魔戒.txt、射雕英雄传.txt、贝多芬传.txt,以及做好的词云背景图片文件

 

根据需要调整读取的文件和词云图背景文件:

txt_path = './贝多芬传.txt'

mask_img_path ='./bei3.png'




第九步:根据不同文本文件、图片文件,设定不同路径,运行程序后,分别得到魔戒、射雕英雄传、贝多芬传的不同词云图片





第十步:感觉词云图边缘不是很清楚,给词云图增加边框,增补调整参数如下:

   contour_width=1, contour_color='steelblue'




运行程序后,得到如下词云图:




4、总结

经过以上十步,我们利用华为云ModelArts的JupyterLab,实现了几本小说的简单词云图的展示,并根据不同需要调整参数,构建独有的词云图。有兴趣的小伙伴,可以来试试调整其他的参数,来可以构建自己喜欢的词云图。


【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。