Django为约会应用程序匹配设计模型
我正在为一个hackathon项目开发一个约会应用程序。我们有用户填写的一系列问题,然后每隔几天我们将发送建议匹配。如果有人对这些匹配算法有很好的教程,我们将不胜感激。一个想法是为每个问题分配一个分值,然后做一个测试 def comparison(person_a,person_b)函数,您在其中迭代这些问题,如果有一个常见的答案,您可以添加一个点。所以分数越高,比赛就越好。到目前为止,我了解这一点,但我正在努力了解如何将这些数据保存到数据库中 在python中,我可以选择每个用户,然后使用这个比较函数遍历所有其他用户,并为每个人创建一个字典,列出所有其他用户和他们的分数。然后,为了建议匹配,我反复浏览字典列表,如果那个人还没有与那个人匹配,那么就进行匹配Django为约会应用程序匹配设计模型,django,django-models,Django,Django Models,我正在为一个hackathon项目开发一个约会应用程序。我们有用户填写的一系列问题,然后每隔几天我们将发送建议匹配。如果有人对这些匹配算法有很好的教程,我们将不胜感激。一个想法是为每个问题分配一个分值,然后做一个测试 def comparison(person_a,person_b)函数,您在其中迭代这些问题,如果有一个常见的答案,您可以添加一个点。所以分数越高,比赛就越好。到目前为止,我了解这一点,但我正在努力了解如何将这些数据保存到数据库中 在python中,我可以选择每个用户,然后使用这个
person1_dictionary_of_matches = {‘person2’: 3, ‘person3’: 5, ‘person4’: 10, ‘person5’: 12, ‘person6’: 2,……,‘person200’:10}
person_1_list_of_prior_matches = [‘person3’, 'person4']
我正在努力研究如何在django中表达这一点。我可以有一群用户,并制作一个匹配模型,如:
class Match(Model):
person1 = models.ForeignKey(User)
person2 = models.ForeignKey(User)
score = models.PositiveIntegerField()
在这里,我进行迭代并保存所有成对的分数
然后做person\u matches=Match.objectsfilter(person1=sarah,person2!=sarah)。按('score')排序。排除(过去匹配列表中的person2)
但我担心有1000个用户,如果这样做,我的表中将有1000000行。如果必须为数据库中的每个用户保存所有这些成对分数,这会很残酷吗?或者,如果我在周日晚上凌晨1点运行它,或者只缓存这些响应一次,并使用比较数月,这是否无关紧要?有没有比两两配对更好的方法?我是否应该使用其他数据结构来捕获人员及其兼容性分数?非常感谢您的指导 有趣的问题。在机器学习的当前范例中,您使用稀疏矩阵,这意味着您不必执行每个匹配评估。稀疏性可能来自两种选择: