2018微博词云项目深度解析

最初产生这个项目的想法应该是在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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值