最初产生这个项目的想法应该是在2018年10月份,当时正在学习python中,就萌生了这样一个想法:从一个用户这一年发布的微博数据中,提取最有意义的top50个关键词。很明显涉及到了数据采集和自然语言处理的一些知识。

前期准备:

  1. 需要到微博开发平台认证开发者;

  2. 在微博开发平台创建应用;

  3. 域名1个,服务器1台;

微博应用创建和审核

创建应用的目的就是你的网站可以接入微博,使用微博登录授权,调用微博开放的一些api;质量高,用户多的应用还会被推荐到微博应用广场等等。

创建应用需要我们填写一些信息,应用名称,描述之类的。把准备好的文案直接粘贴进去就可以;需要不同规格的应用图标和三张以上应用介绍的宣传图。这个里面有一个关键点就是应用地址,需要提供一个可访问到的,并且包含微博组件的一个地址。这些东西提交完就可以提交审核了,微博应用审核的速度还算比较快的,一两天基本差不多会审核完。

等应用审核完,你就可以拿着appkey和appsecret继续往下开发了。

微博数据采集

因为微博开放的api接口里并不提供用户微博数据,所以才使用了数据采集的方案。第一个版本的工具是用nodejs写的,后来换成了python的版本。

提取关键词

这里还是使用python进行处理:

  1. 预处理(去掉微博里的表情、标签等);

  2. 分词(将整句分割为词汇);

  3. 加载词库(包括通用词库和用户自定义词库);

  4. 去停用词(去除一些无意义的词汇);

  5. 计算TFIDF,按权重排序;

  6. 取前50个词生成词云图片。

串联项目

项目的基础架构使用nodejs搭建,整个应用的路由访问控制,视图渲染,异常处理, 日志收集,进程管理,都是使用nodejs来完成。

大致流程:

  1. 用户访问应用;

  2. 引导用户到微博授权页;

  3. 授权成功后,后台拿到uid,开启一个新的子进程进行微博词云图片的生成;

  4. 这个时候给用户返回一个grant页面(此时微博词云的进程可能还没结束);

  5. 用户点击到下一个页面,如果图片已经生成了,就展示该展示的数据,如果还没有,就给用户等待的处理。

对,基本流程差不多就这些,比较简单。下面看下最终的效果。

重要的知识点

  • 在nodejs中调用python脚本,大致思路就是生成一个shell命令,然后nodejs开启一个子进程,在子进程中执行这个shell即可。
  • h5页面,长按保存成图片,这里的大致思路如下:

我们将html转为canvas,然后取出canvas数据放入一个img标签里。将这个img放到页面最顶层,并且将不透明度设为0就可以了。然后在微信、微博等app里面,长按就可以保存到手机了,具体实现代码请看下图。

总结

更多的是一些交互上的细化处理,让用户有更好的操作体验,和视觉上的冲击。这个应用视觉冲击倒是没有多少,哈哈。

最后,欢迎大家一起交流。

项目地址:yk.mcust.cn/wb

转载于:https://juejin.im/post/5c2f2d026fb9a049e7023f5d

2018微博词云项目深度解析相关推荐

  1. Openpilot EP1:Openpilot开源项目深度解析

    目录 0.前言 1.整体介绍 2.系统架构与硬件配置 2.1 系统架构 2.2 硬件配置 3.量产安全规范体系 4.生态体系 5.软件算法分析 5.2 Supercombo模型 5.3 DMS模型 5 ...

  2. 一天学会从抓包到接口测试,通过智慧物业项目深度解析

    一.为什么抓包 1.从功能测试角度,通过抓包查看隐藏字段 Web 表单中会有很多隐藏的字段,这些隐藏字段一般都有一些特殊的用途,比如收集用户的数据,预防 CRSF 攻击,防网络爬虫,以及一些其他用途. ...

  3. 干货|词云指北(下):字节跳动数据平台词云实践

    本文通过调研学术.商业.开源三个领域词云相关的产品,对词云相关算法.产品进行从上至下的总结,帮助读者快速了解词云相关的算法发展,并希望总结出当前字节跳动数据平台词云发展的路线. 全文将分两次推送,第一 ...

  4. python读取文本两个数字的成语_【十分钟Python知识点】让文本数据更加生动——词云工具推荐...

    stylecloud 是一个 Python 包,它基于流行的 word_cloud 包,并添加了一些有用的功能,从而创建出独特的词云.stylecloud 具备以下特点:为词云提供(任意大小)的图标形 ...

  5. 深度学习项目实战——1.基于WordCloud词云生成

    深度学习项目实战--1.基于WordCloud词云生成 准备 安装依赖库 pip install wordcloud matplotlib jieba pillow WordCloud()可选的参数 ...

  6. python随机数生成十个数字的成语_python小白也可以分分钟爬取微博数据,并生成有个性的词云,你get到了吗?...

    Python(发音:英[?pa?θ?n],美[?pa?θɑ:n]),是一种面向对象.直译式电脑编程语言,也是一种功能强大的通用型语言,已经具有近二十年的发展历史,成熟且稳定.它包含了一组完善而且容易理 ...

  7. 看看你爱的他今天是什么‘颜色‘ -- Python爬取微博评论制作专属偶像词云

    简介:快来拿出你珍藏的pick star,用大家对他的爱重塑一个他吧.通过爬取微博评论,制作你的偶像图片词云,天天都是不重样的哦! 很多人学习python,不知道从何学起. 很多人学习python,掌 ...

  8. python爬取微博数据词云_用Python爬取微博数据生成词云图片

    原标题:用Python爬取微博数据生成词云图片 欢迎关注天善智能 hellobi.com,我们是专注于商业智能BI,大数据,数据分析领域的垂直社区,学习.问答.求职,一站式搞定! 对商业智能BI.大数 ...

  9. 小项目-弹幕数据分析+词云展示

    端午节除了学习领导要求的蒙特卡洛和VAR建模分析,闲暇时间做了一个小项目,记录在博客上. 5月29日,备受关注的季中邀请赛在韩国釜山图书馆结束,代表LPL出战的RNG3比2战胜了韩国的T1,看的那叫一 ...

最新文章

  1. c#中ref与out的区别
  2. CentOS7部署NFS
  3. 关于Anaconda的环境和包管理
  4. 数据结构------选择排序
  5. android 省市区选择器
  6. python实验题_python实验二
  7. Linux笔记-iptables规则原理和组成
  8. EXCHANGE 系列
  9. socket连接时间太长受什么原因影响?_光纤收发器的六个指示灯都代表什么?
  10. elasticsearch环境搭建与使用
  11. php微信显示通讯录,微信小程序通讯录功能实现思路分享
  12. C语言贪吃蛇完整代码
  13. C++实现简易五子棋游戏
  14. Python中的图像处理(第十一章)Python图像锐化及边缘检测(2)
  15. ChucK初步(11)
  16. 童甫带您去了解海航科技集团旗下的小二租车近况
  17. xpath中的position()函数使用
  18. 如何在Linux系统中将无线网卡配置为AP
  19. 编译原理实验报告一:PL0语言编译器分析(PL0,词法分析,语法分析,中间代码生成)
  20. 如何将ascii值转字符

热门文章

  1. Swift 5新特性详解:ABI 稳定终于来了!
  2. CentOS 常用命令
  3. python qt gui快速编程 pdf_翻译:《用python和Qt进行GUI编程》——介绍
  4. 总线全称_一篇文章讲透I2C总线协议
  5. ANSI颜色字体一篇通
  6. 在Eclipse中使用Maven创建多模块的层级项目
  7. TensorFlow windows安装
  8. pycharm英语怎么读_PyCharm常用设置
  9. python timer模块_Python timeit模块的使用实践
  10. hdu3949(线性基,求第k小的异或和