我正在用PHP开发一个威士忌信息系统,该系统连接到mySQL数据库,其中有3个表,分别是瓶子(总共约100个)、用户和某些用户最喜欢添加到他们的威士忌货架上的瓶子。
我试图构建一个函数,根据用户在威士忌架上添加的当前威士忌向用户推荐威士忌。
每种威士忌都有12种不同风味特征的“风味特征”(例如,如果威士忌是坚果味、烟熏味e.t.c.),每种特征的等级从0到4。所以我基本上有12个数字可以玩,和另外12个数字比较。
我已经对这个主题做了一些研究,但是只能找到比较一个评级和另一个评级的简单实现,但是我想不出一个有效的方法来比较12个数字并返回某种匹配百分比。
我想知道是否有人对比较数据库中的威士忌和用户最喜欢的威士忌并推荐最接近的威士忌的最佳方法有什么建议?
最佳答案
你要做的,本质上,是潘多拉威士忌。你必须设计出一种算法来比较不同的特性,并提供某种影响整体结果的权重。这不是一个简单的过程,你的算法要经过多次修改才能达到最佳效果。
| CHARACTERISTICS | YOUR WHISKEY | WHISKEY #1 | WHISKEY #2|
---------------------------------------------------------------
| Smoky | x | | x |
---------------------------------------------------------------
| Nutty | | x | x |
---------------------------------------------------------------
在上面的例子中,你的威士忌是你喜欢的,威士忌2比威士忌1有更多你想要的特性。这是一个非常简单的比较,并没有太多的因素。
你需要坐下来看看你可能的数据,创建一个算法,然后在人们身上试用。如果它不能很好地工作,再调整一些算法。这是一个持续的过程,最终会按你的意愿工作。
这篇关于协作过滤和推荐系统的类似文章可能会提供一些更有用的见解:What is algorithm behind the recommendation sites like last.fm, grooveshark, pandora?