如何在数据库中创建建议?
How te create suggestions in database?
我想开发一个小型音乐库。我的objective是为用户添加建议的想法:
- 用户在应用程序中添加音乐,他根本没有连接,是匿名。
- 当用户打开或关闭应用程序时,我们将他的音乐库发送到我们的数据库,以收集(仅)新的音乐曲目信息。
- 当用户点击建议时,我想检查数据库并将他的图书馆与数据库进行比较。我想找到喜欢他,和他听同样音乐的用户听的音乐。
我的想法是在两首音乐之间创建一个link,他们定义了百分比获得这两首音乐的用户.如果这个百分比很高,我们可以向听第一首的用户推荐第二首。
我需要一些帮助来查找有关该类型数据库的文档,但没有任何用户想法。我必须将用户库与大量音乐进行比较。我发现它是基于项目的推荐。我过得好吗?
用户是否收听特定歌曲或将其保存在 his/her 库中可能会产生误导。很多时候,示例音乐会随操作系统或音乐播放器一起提供,而用户只是不太在意将其删除,或者很多时候机器很难确定音乐和其他声音之间的区别。或者,也许有人下载了一些音乐,因为这些音乐在纸面上看起来很有趣,或者出现在他们整体喜欢的专辑中,但实际上他们最终不喜欢那首歌,但又没有删除它。
有一次我设置 Windows 媒体播放器来随机播放我电脑上的所有音乐,令我惊讶的是,我听到了震撼的音效,这是我以前从未听过的音乐(来自我从未听说过的艺术家) , 在我没听过的流派中),甚至 Windows 的点击声也让我感到困惑,因为我没有点击任何东西。
我说这么多是为了指出,您可能需要更多地考虑它,而不是哪些用户似乎在听相同的音乐。也许您可以让用户对他们收听的歌曲进行评分,不仅比较他们图书馆中的歌曲,还比较他们对歌曲的评分。如果两个用户拥有完全相同的歌曲,但一个用户讨厌另一个用户喜欢的所有歌曲,反之亦然,那么他们确实没有相似的品味。
我会定义一个 UDF 来比较两个用户的品味,方法是获取用户 1 拥有的每首歌曲,如果用户 2 没有,则忽略它,但如果是,则从最大评级中减去他们评级差异的绝对值做,然后将所有这些值加在一起。
然后我会运行这个UDF为每对一个用户和另一个用户选择前几名,然后推荐他们评价很高的歌曲。
这会花费很长时间,尤其是当您有大量用户时,因此您还可以制作一个 Suggestors table 来存储每个用户最相似的用户,并更新(即, t运行cate and then rebuild) 它每天、每周、每月,根据您的情况,通过上述过程。建议功能(当用户使用时)然后只需要检查用户的建议者的高评价歌曲,这将花费更少的时间,但会随着用户库的添加和更改而保持最新。
我想开发一个小型音乐库。我的objective是为用户添加建议的想法:
- 用户在应用程序中添加音乐,他根本没有连接,是匿名。
- 当用户打开或关闭应用程序时,我们将他的音乐库发送到我们的数据库,以收集(仅)新的音乐曲目信息。
- 当用户点击建议时,我想检查数据库并将他的图书馆与数据库进行比较。我想找到喜欢他,和他听同样音乐的用户听的音乐。
我的想法是在两首音乐之间创建一个link,他们定义了百分比获得这两首音乐的用户.如果这个百分比很高,我们可以向听第一首的用户推荐第二首。
我需要一些帮助来查找有关该类型数据库的文档,但没有任何用户想法。我必须将用户库与大量音乐进行比较。我发现它是基于项目的推荐。我过得好吗?
用户是否收听特定歌曲或将其保存在 his/her 库中可能会产生误导。很多时候,示例音乐会随操作系统或音乐播放器一起提供,而用户只是不太在意将其删除,或者很多时候机器很难确定音乐和其他声音之间的区别。或者,也许有人下载了一些音乐,因为这些音乐在纸面上看起来很有趣,或者出现在他们整体喜欢的专辑中,但实际上他们最终不喜欢那首歌,但又没有删除它。
有一次我设置 Windows 媒体播放器来随机播放我电脑上的所有音乐,令我惊讶的是,我听到了震撼的音效,这是我以前从未听过的音乐(来自我从未听说过的艺术家) , 在我没听过的流派中),甚至 Windows 的点击声也让我感到困惑,因为我没有点击任何东西。
我说这么多是为了指出,您可能需要更多地考虑它,而不是哪些用户似乎在听相同的音乐。也许您可以让用户对他们收听的歌曲进行评分,不仅比较他们图书馆中的歌曲,还比较他们对歌曲的评分。如果两个用户拥有完全相同的歌曲,但一个用户讨厌另一个用户喜欢的所有歌曲,反之亦然,那么他们确实没有相似的品味。
我会定义一个 UDF 来比较两个用户的品味,方法是获取用户 1 拥有的每首歌曲,如果用户 2 没有,则忽略它,但如果是,则从最大评级中减去他们评级差异的绝对值做,然后将所有这些值加在一起。
然后我会运行这个UDF为每对一个用户和另一个用户选择前几名,然后推荐他们评价很高的歌曲。
这会花费很长时间,尤其是当您有大量用户时,因此您还可以制作一个 Suggestors table 来存储每个用户最相似的用户,并更新(即, t运行cate and then rebuild) 它每天、每周、每月,根据您的情况,通过上述过程。建议功能(当用户使用时)然后只需要检查用户的建议者的高评价歌曲,这将花费更少的时间,但会随着用户库的添加和更改而保持最新。