4

一种通用的可视化订阅服务

 2 years ago
source link: http://wwj718.github.io/post/%E7%A9%BA%E6%83%B3/a-generic-subscription-services/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

这篇也是脑洞系列,属于我觉得好玩、分析后认为技术上可行、但限于时间或精力没去做的事,分享出来,有兴趣的小伙伴可以去折腾

我有很多想法,只差一个程序员啦


先前的工作

jobsVisualization是一个可视化工具,用来帮你可视化地筛选工作

一图胜千言

关于为何想做这个项目,我在可视化筛选你中意的工作一文中有说明

大体原因是因为目前职位相关的特征数据很多,要选出最合适的职位(综合多种特征,相互对比)十分不易,人脑很难对数据有直观认知,而这正是可视化帮得上忙的

bokeh example app movies项目的启发,我做了这个东西

我最初在折腾bokeh example app movies的时候就觉得,卧槽这是个泛化能力极好的模型呀,可以应用的领域太广了,这个模型里,只要求我们关注的对象(比如电影)有多维标签数据(比如评论数、票房)即可!用户就可以根据这些数据来可视化筛选数据,从而得出自己喜欢的电影,用户也可以随时调整筛选指标(通过变化坐标轴关联的数据标签)

我的jobsVisualization就是一个典型的例子,你还用以用来做的其他事包括如何选股票,如何选桃子,如何选女朋友(如果有的选的话,邪恶一笑)之类的

只完成一半

在我的最初计划里,当前的工作其实只完成了一半,尽管它看去已经完整了(语出@ryseven)

我的另一半计划是,用户能够订阅自己关注的区间,好比订阅月薪在10K-20K之间,工作地点在上海的职位,每当采集到新的数据,便向订阅用户推送这些信息

那么用户怎么订阅呢,他只需要在图中圈一下

这样便订阅了薪资在10k-20k,简历提交次数在30次以下的职位

这是一种信息筛选和推送的服务

最后剩下的就是一个算法问题,假设有有A个用户订阅了该服务,他们关注的薪资区间各不相同(先假设只有薪资一个变量)。我们的爬虫每天早上爬取一组职位数据,我们要如何将合适的职位推送给合适的用户。怎样的机制较优(可以从时间复杂度和空间复杂度两方面考虑),简单的办法包括

  • 为每个用户执行一次筛选
  • 为每个职位找合适的用户

我们看到这两种做法都不好,许多信息被反复查看,并没有充分利用

另一个小问题

我们可以先绕开算法问题,处理消息推送中的优化策略

如果你折腾过消息系统(notification system),你会发现这个问题在构建消息系统是可能也会遇到类似的,一群人订阅了一个话题,当话题有更新时,如何通知这些人。消息到达用户的方式通常有pull和push两种。

针对push/pull模型采取的策略可能不尽相同,在pull模型中(用户拉取),我们可以根据用户的活跃情况决定为其生成消息的策略,诸如活跃用户优先,而非活跃用户可以访问时生成也无妨(celery)。

这样可以节省空间

优化问题还蛮好玩的,不过我最近掉到NLP(自然语言处理)的蜜罐里,暂时出不来,就不继续折腾这个项目了,有兴趣的小伙伴可以继续玩耍

这个可视化订阅服务是泛化性很好的项目,小伙伴们可以自己去折腾出好玩的东西,如果这个服务能帮到大家找到喜欢的东西(电影或是工作),节省信息筛选的时间,那么说不定有许多人请你喝咖啡呢


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK