我的培训数据库中有3个馆藏 - 用户,企业和评论。我想使用斜率1来预测其他项目的评级,但我不确定如何最好地收集MongoDB在企业之间的评级差异。
我在Review系列中有200,000个评分,我想仅比较具有共享类别的商家。因此,我发现所有在这些类别下都有商家评论的用户。
business = businesses.find({'categories':{"$in" : business_categories}},{'business_id'})
for biz in all_businesses:
biz_list.append(biz['business_id'])
reviews = training_reviews.find({'business_id':{"$in" : biz_list}})
for review in reviews:
review_list.append(review['user_id'])
available_users = users.find({'user_id':{"$in": review_list}})
一旦我拥有用户,我需要设置一个包含所有评级的矩阵,以便我可以计算每个业务之间的差异。我的最小尺寸矩阵将是10k x 10k,因为我将为每个推荐制作几个类别,我将不得不为每个推荐重做它。
在python中有一种有效的方法吗?为所有业务导出评级矩阵然后从中预测评级会更好吗?
感谢。
答案 0 :(得分:2)
我想说如果您正在寻找效率,您应该尝试将所有相关信息放入评论集合中的嵌入式文档中。
这意味着你可以在MongoDB中聚合
有关使用嵌入式文档进行建模而不是规范化的讨论,请参阅Model One-to-Many Relationships with Embedded Documents 和一般主题Data Models