Git 项目链接:
Yelper Web Console
我们之前已经完成了基本的准备工作,接下来就是展示 Yelper 这个推荐系统。
Yelper 展示系统基于 Django 和 Vue 搭建,实现了前后端分离。Django 负责后端,对接各服务模块,处理业务逻辑,为 Vue 提供 API;而 Vue 负责前端展示和交互。这样子选择的主要原因如下:
- Django 很成熟,配置方便,ORM 很强大,配合 Rest Framework 插件能够很方便对外提供 API;但 Django 的模板功能较弱,需要自己写很多 Html 代码,且过度耦合后端,不便于前后端分开开发,也无法利用现有前端先进技术(如 Webpack)。
- Vue 这里就是用来替换 Django 的模板的。它是一个 MVVM 的 Web 框架,支持数据双向绑定,这对前端交互太方便了;另外对它的学习曲线比较平滑,比较适合我这种前端小白。关于它的更多优点就不多说了,可以参考它创始人的介绍和官方对它与其他框架的比较。
该展示系统涉及的技术栈
主要如下:
- 后端:Django
- 前端:Vue
- 数据库:MySQL、Neo4J
- 搜索引擎:Elasticsearch
- 机器学习算法:CNN、Word2Vec、KD-Tree
下文将对该展示系统两个功能进行描述。
搜索及排序
这部分是根据用户选择的排序规则、输入的关键词,找到符合要求的 TopN 商店。
工作流程
工作流程如下图所示:
Demo
TopN
这部分只是单纯根据用户朋友关系、相似度关系、商店流行度、用户距离商店的距离进行 TopN 推荐。
工作流程
工作流程如下图所示:
Demo
完整 Demo
下边是完整的一个 Demo,包含了用户基本信息设置:
后期有待完善
后期有待进一步提供的功能:
- 按综合指标排序,如将距离、情感度、流行度等综合成一个综合指标,并可以按该指标对推荐结果进行排序
- 推荐结果可以进行分页