【python】用python实现wordcloud大数据词云图分析

  • 一、应用场景
  • 二、工具包安装及代码
  • 三、中文不能正常显示问题
  • 四、关键词重复问题
  • 五、最终结论

一、应用场景

大数据词云(wordcloud)分析常用于在冗长的文本数据中提取最高频、最关键的信息。比如在长篇的电影、小说、剧本中快速提取关键信息和主要角色,比如根据长篇描述快速对一个人物或事物进行画像和打标签等等。词云分析适用的场景远不止这些,它同样可以用于解决一些行业分析的问题。比如这次我们遇到的问题是这样的:现在我们有一批苏州市小企业的数据,包含企业名称、所属行业等信息。我们能很简单地分析出这批小企业主要以批发业、零售业和餐饮业为主。问题是,批发业、零售业都是相对宽泛的描述,我们怎么知道批发业里面具体都是做什么的企业呢?这些企业主要分布在哪些地方呢?批发业和零售业的企业主要有什么区别呢?餐饮业的企业又有什么特征呢?对于这些问题,我们就可以借助大数据词云分析的手段来解决。

二、工具包安装及代码

我们分析的主要思路就是把所有企业名称连接起来,作为一个大的文本文件,然后对这个文本文件进行切词并用词云进行统计。所以首先我们需要用到jieba工具进行切词处理,可以通过pip install jieba来安装jieba工具包。
第二步词云统计,python同样提供了可直接使用的工具包wordcloud,直接pip install wordcloud即可。
当两个工具包都准备好之后,就可以通过运行以下代码来生成我们想要的词云图:

#读入数据,把所有企业名称用空格连接,整合成一个大文本变量t
res = pd.read_csv('data.csv')
t = res.loc[(res['所属行业']=='批发业')&(res['所属城市']=='苏州市'),'企业名称'].tolist()
t =' '.join(t)#使用jieba工具对变量t进行分词,结果以list形式输出
import jieba
w = jieba.lcut(t)#可以使用counter方法,看一下每个词的词频
from collections import Counter
c = Counter(w)
print (dict(c))#把切出来的词用空格连接起来
word_after_cut = ' '.join(w)#导入wordcloud工具并生成词云变量wd
from wordcloud import WordCloud
wd = WordCloud(background_color='white',random_state=300,width=1000,height=500).generate(word_after_cut)#画出词云图
%pylab inline
import matplotlib.pyplot as plt
plt.imshow(wd, interpolation='bilinear')
plt.axis("off")

结果如下:

三、中文不能正常显示问题

结果很不理想,都是小框框,看来是wordcloud工具不能正确识别处理中文,这个问题解决起来也比较简单,百度并下载一个字体库SimeHei.ttf,并将它放到…\Anaconda3\Lib\site-packages\wordcloud\路径下。
之后,打开该路径下的wordcloud.py文件,定位到第34行左右,将字体路径FONT_PATH做如下更改,保存,退出即可。

四、关键词重复问题

解决了中文字体不显示的问题后重跑结果如下图。这个结果看似正确,实则还是存在问题,其中最显著的关键字“昆山市”重复出现了好几次,也不是我们想要的理想结果。

这个问题与collocations参数有关,默认collocations=True,会统计搭配词。“昆山市”字符串的子集“昆山”也会被统计。只需要将这个参数改为False即可:

wd = WordCloud(background_color='white',random_state=300,width=1000,height=500,collocations=False).generate(word_after_cut)

五、最终结论

再炫酷的工具最终都是要服务于解决问题,我们来看下最终结果是不是能够回答我们最开始时提出的那些问题呢?

通过对苏州市所有属性为批发业的小企业名称进行词云分析后发现,批发业企业主要聚集在昆山、张家港、太仓等市和吴中、姑苏、高新开发等区。经营范围主要集中在建材、五金、机电等等领域,大多企业名称为某某某经营部。

而通过对零售业公司名称的词云分析发现,零售业企业主要集中在昆山、常熟、张家港、太仓等市和相城、姑苏等区,而企业的经营范围则相对分散,涉及到服装、日用品、家具、电子、食品、蔬菜等,也包括一些搞建材、五金的企业。大多企业名称同样为某某某经营部。

而苏州市的餐饮业则表现出迥异的特征,餐饮业主要聚焦在昆山、张家港、常熟等市和姑苏区;主要是一些小吃店、小饭店或餐饮、快餐店,具体在面馆、火锅、奶茶、羊肉汤等领域有一定聚集性。
由此可见,通过词云分析的手段,我们能够对苏州市不同行业属性企业的聚集区域、具体经营范围有一个相对全面的洞察,便可以为后续客群画像和人群甄别策略给出一定的数据支撑。


参考博客:
https://segmentfault.com/q/1010000014224890
https://blog.csdn.net/vivian_ll/article/details/68067574?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control&dist_request_id=&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-4.control
https://blog.csdn.net/qq_44331229/article/details/108163642?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-1&spm=1001.2101.3001.4242

【python】用python实现wordcloud大数据词云图分析相关推荐

  1. 用python爬取前程无忧网大数据岗位信息并分析

    爬虫的基本思路 1.在前程无忧官网检索"大数据"的结果中,每条检索结果详情对应的URL存在a标签的href属性中,通过组合选择器可以找到每条检索结果详情的URL. 2.前程无忧的招 ...

  2. python爬携程上出境游数据_python爬取携程旅游评价信息词云图分析

    python爬取携程旅游评价信息词云图分析 前言 前面咱们已经分析过如何爬取携程旅游的相关信息,如果没有看过的,可以先跳转看一下前面的那篇博客:python 爬虫 一键爬取携程旅游团数据 这一篇呢,咱 ...

  3. 学python对数学要求高吗_人工智能的小男孩 大专学历的人没有数学基础想学习python技术未来能往大数据或人工智能方向进行职业发展吗?...

    内容由传智播客提供,电器吧机器人网提供人工智能的小男孩相关内容,小编烟酉为您整理并发布于人工智能栏目下,原标题:大专学历的人没有数学基础想学习python技术未来能往大数据或人工智能方向进行职业发展吗 ...

  4. python编写spark程序 视频_【Python版pyspark】Spark大数据基础入门视频课程

    [注意:本课程只包含pyspark系列课程的基础入门部分] Python版本的pyspark是学习Python的人的福音,为广大的Python开发人员提供了一个使用Python调用Spark接口处理大 ...

  5. Python+大数据-数据处理与分析-pandas快速入门

    Python+大数据-数据处理与分析-pandas快速入门 1.Pandas快速入门 1.1DataFrame和Series介绍 1)DataFrame 用来处理结构化数据(SQL数据表,Excel表 ...

  6. 【计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩】 https://b23.tv/jRN6MVh

    [计算机专业毕设之基于python猫咪网爬虫大数据可视化分析系统-哔哩哔哩] https://b23.tv/jRN6MVh https://b23.tv/jRN6MVh

  7. 【大数据分析专业毕设之基于python爬虫的电影票房大数据预测分析+大屏可视化分析

    [大数据分析专业毕设之基于python爬虫的电影票房大数据预测分析+大屏可视化分析-哔哩哔哩https://b23.tv/saIKtBH flask web框架,数据使用requests模块爬取数据, ...

  8. Python新闻推荐系统+爬虫+可视化 大数据项目 源码下载

    Python新闻推荐系统+爬虫+可视化 大数据项目 源码下载 网络爬虫:通过Python实现新浪新闻的爬取,可爬取新闻页面上的标题.文本.图片.视频链接 推荐算法:权重衰减+标签推荐+区域推荐+热点推 ...

  9. 笔记:python spark机器学习与hadoop大数据

    目录 1.1机器学习的介绍 机器学习架构 1.2Spark的介绍 1.3Spark数据处理RDD.DataFrame.Spark SQl 1.4使用python开发spark机器学习与大数据应用 1. ...

最新文章

  1. Linux之make 、makefile的使用方法
  2. 系统集成资质培训 - 标准系列 -软件文档管理指南
  3. opencv学习笔记10:阈值分割
  4. C++ OpenGL透明纹理源码
  5. 鸟哥linux私房菜 之 老段带你学习linux
  6. vs基于控制台应用程序的定时发送邮件_.NET Core 下收发邮件之 MailKit
  7. ASp.net常用服务
  8. LeetCode(728)——自除数(JavaScript)
  9. [转载] python价值算法_PangRank算法原理及其Python实现
  10. MySQL集群(四)之keepalived实现mysql双主高可用
  11. Spring读书笔记(一)
  12. 红帽linux64系统下载,红帽rhel6.5下载
  13. pionner软件操作笔记
  14. 《Objective-C 程序设计(第4版)》图书信息(二)
  15. 教你写简单的黑客程序
  16. OpenHarmony 3.2 Release HDF的IDL文件初探(上)
  17. com.mongodb.MongoSocketOpenException: Exception opening socket
  18. 在dev-c或者cb上建立 Consol Application project\collect2.exe [Error] ld returned 1 exit status
  19. IDEA 出现错误:找不到或无法加载主类
  20. crypto-music is frequency(INS‘hAck CTF 2018)

热门文章

  1. 分布式应用集成技术浅谈
  2. 『经济论坛』 [经济杂谈]看看你属于哪个阶层?中国阶层报告 2009第一版。
  3. 更全面的开放能力 HMS Core 5.0重磅亮相华为开发者大会
  4. 元宇宙之XR(01)虚拟现实起源 与 VR技术趋势分析
  5. vue绑定事件、vue双向绑定 2022-3-14
  6. 概率论与数理统计习题——第五讲——等可能概型(古典概型)
  7. 2014年TI杯邀请赛——简易高速差分探头 题目解析
  8. lol数据英雄联盟接口LOL接口电竞api开发比分网分享@
  9. R中的假设检验(四)卡方检验
  10. 除了ChatGPT,这20款AI神器同样值得你使用