【发布时间】:2017-04-26 22:51:58
【问题描述】:
我正在尝试开发 android 移动应用程序,该应用程序具有根据兴趣和位置查找匹配项的功能。许多约会应用已经在做一些功能,例如基于位置、性别和年龄等的 Tinder 匹配。
如果已经完成,我不想重新发明轮子。我在谷歌上搜索过,有人建议为此使用聚类算法Algorithm for clustering people with similar interestsUser similarities algorithm
让我拥有这种 JSON 格式的用户数据
User1: {location: "Delhi, India", interests: ["Jogging", "Travelling", "Praying"] }
User2: {location: "Noida, India", interests: ["Running", "Eating", "Praying"] }
User3: {location: "Bangalore, India", interests: ["Exercise", "Visiting new places", "Chanting"] }
我正在编写一个匹配以下几个条件的匹配算法 -
如果用户 1 对“慢跑”感兴趣,而另一个用户 2 对“跑步”感兴趣,那么慢跑和跑步是一种锻炼方式,因此他们应该匹配两个配置文件,并且应该也要注意位置,因为最近的应该在顶部。
该算法在大规模运行时应该具有相当的性能。这意味着我想避免将每个用户单独与其他用户进行比较。对于 N 个用户,这是一个 O(N^2) 操作。理想情况下,我想开发某种“分数”,我可以为每个用户单独生成,因为这涉及只遍历所有用户一次。然后我可以找到其他分数相似的用户,并据此确定最佳匹配。
谁能建议我在firebase-cloud-function 和firebase-database 的帮助下实现这一点。
【问题讨论】:
标签: android algorithm firebase match cluster-analysis