我正在构建一个基于位置的社交网络应用程序。这个想法是允许用户发布附近的人并与他们互动。该应用程序的主要提要将根据其接近程度(d =发布该帖子的距离)和新近度(a =发布多久)显示帖子。
我正在尝试提出一个公式,该公式将对每个帖子进行排序并实现以下目标:
我们正试图在看到足够局部的事物之间保持平衡,而这些事物又既相关又新鲜。虽然算法解决方案是可行的,但目前我们正在寻找一种公式来对帖子进行评分和排序。寻找适合的计分公式的建议。
答案 0 :(得分:0)
一个好的公式几乎肯定会具有一些需要调整的任意参数。 (要弄清为什么,请注意,无论距离以米为单位,其中500是一个很小的值,还是以公里为单位,其中500是一个很大的值,都希望得到相同的结果。)
对于中到较大的值,我的直觉是您需要对数刻度; 1 km与2 km之间的差异似乎与100 km与200 km之间的差异非常相似(而不是100 km与101 km之间的差异),而3天与6天之间的差异似乎与该差异相似30天到60天之间(而不是30天到31天之间的差额)。这意味着类似
得分= a 日志 d + b 日志 t
(分数越低表示该帖子越相关)。
但是,由于极小值的对数发散到负无穷大,因此您需要针对极小值进行调整。您不希望“一年前就在这里”和“零秒前的地球另一端”比“十分钟前的三十米外”更有意义。一种方法是添加一些偏移量,以免取很小值的对数:
分数= a log( d +1)+ b log( t +1)>
我敢肯定,随着时间的推移,您将不得不做更多的调整。我很想听听您的想法!