生成词云的十种方式

低下头吻伱 3个月前 已收到2个回答 举报

花落到何时 1星

共回答了148个问题采纳率:94.9% 评论

生成词云是一种可视化文本数据的方式,可以在研究文本内容、分析关键词频率等方面起到很大的帮助。以下是十种生成词云的方式:

1. Python的WordCloud库:使用Python编程语言,通过WordCloud库生成词云图像,可以自定义颜色、字体和形状等参数。

2. R语言的wordcloud包:使用R语言中的wordcloud包,可以生成漂亮的词云图像,支持自定义外观和布局。

3. Tableau软件:Tableau是一款流行的数据可视化工具,其中内置了生成词云的功能,可以直观地生成词云图表。

4. Excel插件:有些Excel插件,如WordArt和WordItOut,可以将文本转换成词云图像,并提供一定的自定义选项。

5. 在线词云生成器:有许多在线工具和网站,如WordClouds.com和WordArt.com,可以通过上传文本或输入内容来生成词云图像。

6. JavaScript的D3.js库:D3.js是一款强大的JavaScript库,可以通过其词云插件Word Cloud Layout生成交互式词云图像。

7. Adobe Photoshop:对于设计师或具有图形设计技能的人来说,可以使用Adobe Photoshop等图像处理软件手动创建词云效果。

8. PowerPoint:虽然PowerPoint并非专业的词云生成工具,但你可以利用其文字处理和形状插入功能手动制作词云图像。

9. 特定软件工具:有些特定领域的软件工具,如文本挖掘软件、大数据分析工具等,可能提供了生成词云的功能。

10. 自定义开发:如果你具备编程技能,也可以根据自己的需求,通过编写代码自定义生成词云的方法。

无论使用哪种方式,生成词云都需要提供要分析的文本数据,并根据需要选择合适的字体、颜色、布局、形状等参数,以获得满意的词云效果。

希望以上信息对你有所帮助。如果有任何进一步的问题,请随时提问。

9小时前

5

度的体温 1星

共回答了186个问题 评论

生成词云之在线工具

搜索词云在线生成工具,会得到很多结果,包括国内外的网站平台都有。对比了搜索较为靠前的几款在线工具,但或多或少都存在一些使用上瑕疵,有的是网页加载慢,有的是要注册后方可使用,有的是字体支持较差,还有的是要付费使用。

当然,毕竟是要使用方便快捷有效的,而且最好还是免费的就完美了。对比之后,感觉这两个平台还算相对好用:

WordArt

优点:无需注册即可使用;对热词数量无限制;支持个性化配置,包括热词、字体、形状等;在线词云支持交互查看

缺点:英文操作界面,部分用户使用不便,加载较慢;字体支持差,中文仅有一种支持字体,且因权限问题可能无法添加本地字体

默认字体库仅有一种字体支持中文

微词云

优点:支持自动文本分析;有大量形状模板,也支持自定义模板;图片色彩多样,包括渐变色;支持大量字体;操作简单

缺点:需注册后方可使用;免费使用下载图片有水印;对热词数量有限制

支持大量个性化配置

2个在线平台生成的词云结果:

WordArt在线生成(个别中文仍有乱码)

微词云在线生成(中间实际有水印)

02 生成词云之软件工具

网页在线工具和桌面软件在生成词云这项任务上,本无实质差别,甚至很多平台是既支持在线生成也有桌面客户端软件。

为了区别于网页在线生成词云的方式,这里选用了商业智能分析工具Tableau作为桌面软件的代表来制作词云。虽然,可能词云不算的上是Tableau的主业。

用Tableau生成可视化图表一向比较简单,制作词云也不例外。将数据源加载进Tableau界面后,简单的点击设置即可。

"热词"是所有词源,"次数"是频度

实际上,用Tableau制作词云的输入数据不是文本,而是经处理后的两列结果数据。从这个角度来说,Tableau生成词云的方式甚至有些低级,严格讲只能称的上是对筛选和统计完毕后的文本进行可视化显示而已。

不过也容易想到其非常方便的应用场景,例如提供了若干个商品名称及其销售额的数据,则可通过词云中商品名的大小直观显现各自收益占比。

Tableau制作词云的优缺点:

优点:操作极其简单;词云界面可交互,便于二次筛选

缺点:输入源要求完成词频统计;个性化设置程度较低;热词大小对比度较差

提供统计完毕后的热词数据,利用Tableau生成词云结果:

Tableau生成的词云算不上出众

03 生成词云之编程工具

很多编程工具均可生成词云,Python自然也不例外。

wordcloud

wordcloud是Python专门用于制作词云的第三方库,使用前需安装,而且这个安装过程往往会隐藏一些坎坷。利用wordcloud生成词云非常简单,可以通过大量的参数设置来个性化定制词云效果。

虽然wordcloud自带切分词处理能力,但鉴于其切分效果一般,所以往往还是会配套使用jieba库来进行切分,而后再用空格连接(wordcloud在处理切分时优先使用空格作为分隔符)。

示例源码:

import jieba

import wordcloud

import matplotlib.pyplot as plt

word_list = jieba.lcut(words) # 结巴词库切分词

word_list = [word for word in word_list if len(word.strip())>1]#清洗一个字的词

word_clean=" ".join(word_list)

import imageio

mask=imageio.imread(r'kobe.jpg')

wc = wordcloud.WordCloud(font_path = "simkai.ttf",#指定字体类型

background_color = "white",#指定背景颜色

max_words = 200, # 词云显示的最大词数

max_font_size = 255,#指定最大字号

mask = mask) #指定模板

wc = wc.generate(word_clean)##生成词云

plt.imshow(wc)

plt.axis("off")

plt.show()

"""Wordcloud详细参数设置

def __init__(self, font_path=None, width=400, height=200, margin=2,

ranks_only=None, prefer_horizontal=.9, mask=None, scale=1,

color_func=None, max_words=200, min_font_size=4,

stopwords=None, random_state=None, background_color='black',

max_font_size=None, font_step=1, mode="RGB",

relative_scaling='auto', regexp=None, collocations=True,

colormap=None, normalize_plurals=True, contour_width=0,

contour_color='black', repeat=False,

include_numbers=False, min_word_length=0):

"""

查阅wordcloud的官方文档可以发现,其自带参数设置非常管饭,比如以下几个有用功能:

font_path:设置字体

mask:设置词云模板

stopwords:停用词列表

给出wordcloud3种不同方式生成词云结果:

利用文本直接生成词云

利用jieba分词后生成词云

设置词云模板mask后效果

PyEcharts

除了wordcloud专门用于生成词云的第三方库外,python的另一个可视化库Pyecharts也支持生成词云,即pyecharts库下的wordcloud子类。

不过,与Tableau生成词云的方式类似,pyecharts也要求输入的数据是经过筛选和统计好的数据,例如经过jieba分词+counter统计后得到的结果,即可非常方便的应用pyecharts制作词云。而且,pyecharts的所有图表均可交互,词云图也不例外,这也算是它的一项优势。

示例源码:

import jieba

from collections import Counter

from pyecharts.charts import WordCloud

word_list = jieba.lcut(words) # 切分词

word_list = [word.strip() for word in word_list if len(word.strip())>1]

wordCount = Counter(word_list)

wc = WordCloud()

wc.add("", wordCount.items(), word_size_range=[20, 100])

wc.render(r'kobe.html')

"""

def add(

self,

series_name: str,

data_pair: types.Sequence,

*,

shape: str = "circle",

word_gap: types.Numeric = 20,

word_size_range: types.Optional[types.Sequence] = None,

rotate_step: types.Numeric = 45,

tooltip_opts: types.Tooltip = None,

itemstyle_opts: types.ItemStyle = None,

):"""

查阅其add方法,可以了解生成词云的一些设置参数,不过相比wordcloud库来说,pyecharts的wordcloud设置参数实在是太有限了。

提供统计后的数组,利用pyecharts生成的词云结果:

pyecharts生成的词云图片看上去有些过于"规矩",字体旋转角度单一(通过rotate_step参数设置),字号大小对比也不够明显。

04 结论

词云作为数据可视化的一种常用手段,视觉冲击力较强,制作方法也比较灵活多样

普通的词云制作需求依托在线工具即可有效满足,国内外均有相关工具

Tableau作为商业智能分析软件,在制作词云上表现较为,但极为快捷方便

Python编程实现词云可进行大量的个性化定制,包括分词、过滤、图片模板和文字设置,都有大量参数可供调节

除wordcloud用于专门生成词云外,pyecharts的wordcloud子库也有着不错的效果,且支持交互

7小时前

31
可能相似的问题

热门问题推荐

Copyright © 2024 微短问答 All rights reserved. 粤ICP备2021119249号 站务邮箱 service@wdace.com