最初这个项目的想法应该是在2018年10月,当时在学习python的时候灵机一动:从今年某用户发布的微博数据,到提取最有意义的top50关键字。显然涉及到一些数据采集和自然语言处理方面的知识。前期准备:需要到微博开发平台对开发者进行认证;在微博开发平台创建应用;1个域名,1台服务器;微博应用创建和审核创建应用的目的是让你的网站可以访问微博,使用微博登录授权,调用微博开放的一些API;质量高、用户多的应用会被推荐到微博应用广场等。创建应用需要我们填写一些信息,应用名称、描述等。直接把准备好的文案粘贴进去即可;需要不同规格的应用图标和三张以上的应用介绍宣传图片。这里面很关键的一点就是应用地址,需要提供一个可以访问的包含微博组件的地址。这些东西提交之后,就可以提交审核了。微博申请的审稿速度还是比较快的,一两天就审完了。应用通过审核后,可以使用appkey和appsecret继续开发。微博数据采集由于微博开放的API接口不提供用户微博数据,所以采用数据采集方案。该工具的第一个版本是用nodejs编写的,后来更换为python版本。此处提取关键词或使用python进行处理:预处理(去除微博中的表情、标签等);分词(将整个句子分割成词汇);加载词库(包括通用词库和用户自定义词库);去除停用词(去除一些无意义的词);计算TFIDF,按权重排序;取前50个词生成词云图。串口项目项目的基础设施是使用nodejs搭建的,整个应用的路由访问控制、视图渲染、异常处理、日志收集、流程管理都是使用nodejs完成的。大体流程:用户访问应用;引导用户进入微博授权页面;授权成功后,后台获取uid,启动新的子进程生成微博词云图;此时返回一个授权页面给用户(此时微博词云过程可能还没有结束);用户点击进入下一页,如果图片已经生成,则显示显示的数据,如果没有,则给用户等待处理。是的,基本流程差不多,比较简单。下面我们看看最终的效果。重要的知识点是在nodejs中调用一个python脚本。大致思路是生成一个shell命令,然后nodejs启动一个子进程,在子进程中执行shell。H5页面,长按保存为图片,这里的大致思路是这样的:我们把html转成canvas,然后把canvas的数据取出来,放到一个img标签里。把这个img放到页面顶部,不透明度设置为0。然后在微信、微博等应用中,长按保存到手机,具体实现代码见下图。总结更多的是对一些交互的细化,让用户有更好的操作体验和视觉冲击。这个应用的视觉冲击力不大,哈哈。最后,欢迎大家相互交流。项目地址:http://yk.mcust.cn/wb
