精华 使用Neo4j和简单分词算法实现菜品推荐系统
发布于 4 年前 作者 pangguoming 2229 次浏览 来自 分享

背景:本推荐系统基于一款硬件产品–旺小宝桌牌。客人按下点餐按钮,扫码进入点餐界面,然后开始点自己喜欢的菜,在手机端下单。目前在成都已有近200家合作餐饮商家。 image.png 菜品推荐功能: 当客人在某商家使用桌牌点菜,提取该客人点菜的主材,当客人下一次在另外一家使用桌牌的商家点菜时,即为该客户推荐该商家对应主材的菜。

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

一.菜品主材提取

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

第一步:收集菜名 从数据库导出菜名。 image.png 第二步:分词&词频统计 可以使用开源分词工具,本例中使用的是Word分词器。 image.png 第三步:人工筛选主材 词频越高的主材,在菜名中出现的频率也越高,筛选时也越有价值;词频为1的词可以不用筛选,因为即使是主材,也没有其他的菜可以推荐。 image.png 第四步:匹配主材算法 具体算法可由业务场景自行决定,匹配后的结果如下,“=>”左边是主材,右边是匹配到的菜名。

image.png

二.数据结构

在本系统中,涉及到了“人-店-菜-主材”关系,为了使关系间的结构变得简单,因此引入了Neo4j图形数据库,在图形数据库中,该关系如下。 image.png 当客人到店时,就推荐给客人该店能够匹配上他喜好主材的菜,按照喜好的权重排序。

三.系统架构

image.png

5 回复

请问这个有开源代码吗?

@w123456 没有整个系统的源码,这里只讲解了图数据库应用。

简单直接的应用,思路挺好,谢谢分享

开源个 demo 大家一起 玩啊

回到顶部