【问题标题】:PHP Recommendation Engine - Recommending Whiskies with 12 different taste ratingsPHP 推荐引擎 - 推荐具有 12 种不同口味等级的威士忌
【发布时间】:2012-04-03 13:07:42
【问题描述】:

我正在用 PHP 开发一个威士忌信息系统,该系统连接到一个 mySQL 数据库,其中包含 3 个表,其中包括瓶子(总共约 100 个)、用户和某些用户已将其作为收藏夹添加到威士忌货架上的瓶子。

我正在尝试构建一个函数,根据用户添加到威士忌货架上的当前威士忌向用户推荐威士忌。

每种威士忌都有一个“风味特征”,有 12 种不同的风味特征(例如,如果威士忌是坚果味、烟熏味等),每个特征都按 0 到 4 的等级排列。所以我基本上有 12 个数字可供比较和比较到另外 12 个号码。

我对该主题进行了相当多的研究,但只能找到将一个评分与另一个评分进行比较的简单实现,但我想不出一种有效的方法来比较 12 个数字并返回某种匹配百分比。

我想知道是否有人对将数据库中的威士忌与用户收藏中的威士忌进行比较并推荐最接近的匹配的最佳方法有任何建议?

【问题讨论】:

  • 这个问题太笼统了,并没有向我们提供有关您的应用程序的任何信息。有数百种不同的技术可用于访问和分析网络上的数据。尝试先做一些研究。
  • 我认为,如果您的网站将作为该主题的参考,您应该已经开发出一种方法来了解这些配置文件如何相互关联。任何人都可以根据一组数据提出一个公式来提出建议……但如果你是威士忌专家,你不应该有自己的公式吗?
  • 感谢您的快速回复。我很抱歉这么笼统:(我不确定您要的是什么信息?我要的是建议将一个产品的多个评级与另一种产品的多个评级进行比较并计算两组之间的距离数字来得出 ak 的最近邻/欧几里得距离类型的实现。

标签: php mysql system recommendation-engine


【解决方案1】:

本质上,您想要完成的是Pandora for Whiskey。您将必须设计一种算法来比较不同的特征并提供某种影响整体结果的权重。这不是一个简单的过程,您的算法将经过多次次修改,然后才能达到最佳效果。

| CHARACTERISTICS  |  YOUR WHISKEY  | WHISKEY #1  | WHISKEY #2|
---------------------------------------------------------------
|      Smoky       |       x        |             |     x     |
---------------------------------------------------------------
|      Nutty       |                |      x      |     x     |
---------------------------------------------------------------

在上面的例子中,YOUR WHISKEY 是你喜欢的一种,WHISKEY #2WHISKEY #1有更多你想要的特征>。这是一个非常简单的比较,并没有太多考虑。

您需要坐下来处理可能的数据,创建一个算法,然后在人们身上进行尝试。如果它不能正常工作,请进一步调整算法。这是一个持续的过程,最终会如您所愿。

这篇关于协同过滤和推荐系统的类似帖子可能会提供一些更有用的见解:What is algorithm behind the recommendation sites like last.fm, grooveshark, pandora?

【讨论】:

  • 潘多拉威士忌。好的。 “你还在喝酒吗?我们为我们倒的每一杯付钱,没有人喜欢与空房间分享”
  • 感谢您的快速回复 :) 我喜欢这个“Pandora for Whisky”的概念,它实际上对我理解推荐引擎​​很有帮助。唯一的问题是,我不知道如何开始使用 SQL 语句编写类似的代码,因为我只使用了几个月。 “加权”是指选择比其他变量更重要的变量进行比较吗?再次感谢:)
  • 是的。作为它应该具有的复杂性的一个例子,假设 nuttysmoky 不能很好地相互补充。您必须确保如果一个存在,另一个则不存在。或者,如果用户喜欢其中一个而不是另一个,则它的“重量”较小。
  • 只想对你们所有的帮助表示感谢。我现在有一个很好的工作解决方案:)
  • @MatthewWatson 你应该通过接受他们的回答来感谢用户
猜你喜欢
  • 1970-01-01
  • 2012-01-09
  • 1970-01-01
  • 2019-09-25
  • 1970-01-01
  • 2018-11-07
  • 2011-02-11
  • 2017-10-26
  • 1970-01-01
相关资源
最近更新 更多