使用Neo4j和简单分词算法实现菜品推荐系统

Posted Code Job

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用Neo4j和简单分词算法实现菜品推荐系统相关的知识,希望对你有一定的参考价值。

背景:本推荐系统基于一款硬件产品--旺小宝桌牌。客人按下点餐按钮,扫码进入点餐界面,然后开始点自己喜欢的菜,在手机端下单。目前在成都已有近200家合作餐饮商家。

image

菜品推荐功能:

当客人在某商家使用桌牌点菜,提取该客人点菜的主材,当客人下一次在另外一家使用桌牌的商家点菜时,即为该客户推荐该商家对应主材的菜。

如:某客人在A店点了[麻辣鸡爪],则该客人喜好食材为”鸡爪”,当客人来到B店,则可为客人推荐B店对应的[二娘鸡爪爪]

 

一.菜品主材提取

桌牌上的菜名由商家输入,存入到桌牌数据库中,当前已有的菜名去重后有约2万个。

第一步:收集菜名

从数据库导出菜名。

image

第二步:分词&词频统计

可以使用开源分词工具,本例中使用的是Word分词器

image.

第三步:人工筛选主材

词频越高的主材,在菜名中出现的频率也越高,筛选时也越有价值;词频为1的词可以不用筛选,因为即使是主材,也没有其他的菜可以推荐。

image

第四步:匹配主材算法

具体算法可由业务场景自行决定,匹配后的结果如下,“=>”左边是主材,右边是匹配到的菜名。

image

 

二.数据结构

在本系统中,涉及到了“人-店-菜-主材”关系,为了使关系间的结构变得简单,因此引入了Neo4j图形数据库,在图形数据库中,该关系如下。

image

当客人到店时,就推荐给客人该店能够匹配上他喜好主材的菜,按照喜好的权重排序。

 

三.系统架构

image

以上是关于使用Neo4j和简单分词算法实现菜品推荐系统的主要内容,如果未能解决你的问题,请参考以下文章

推荐简单易用的中文分词系统-盘古分词

扒一扒头条系的推荐系统 | 整理

推荐系统索引目录

混合推荐系统就是多个推荐系统“大杂烩”吗?

推荐系统[七]:推荐系统通用技术架构(Netfilx等)API服务接口

推荐系统简介(1~3)