C# 社交网络排名算法

C# 社交网络排名算法,c#,linq,algorithm,ranking,C#,Linq,Algorithm,Ranking,我正在尝试开发一个简单的社交网络排名算法,该算法基于喜欢、评论和回复的数量以及接收时间。我一直在阅读facebook使用的边缘排名算法,并试图做一些类似的事情,但我无法做到正确 算法应该显示现在流行的帖子 以下是我尝试过的: let nComments = (from c in db.Comments where c.postid == r.pageOwner.PostId select c).Count() let nReposts = (from s in db.Posts where s

我正在尝试开发一个简单的社交网络排名算法,该算法基于喜欢、评论和回复的数量以及接收时间。我一直在阅读facebook使用的边缘排名算法,并试图做一些类似的事情,但我无法做到正确

算法应该显示现在流行的帖子

以下是我尝试过的:

let nComments = (from c in db.Comments where c.postid == r.pageOwner.PostId select c).Count()

let nReposts = (from s in db.Posts where s.RepostedFrom_postid == r.pageOwner.PostId select s).Count()

let nLikes = (from u in db.UserPageRelations where u.Post_id == r.pageOwner.PostId select u).Sum(s => s.Rate)

let TimeDecayFactor = ignoretime ? 1 : Math.Exp(-(DateTime.Now - Post.Date).TotalHours)

let TotalEdge = (1 * nComments + 3 * nLikes + 2 * nReposts + 1) * TimeDecayFactor

 orderby (TotalEdge) descending
有谁有更好的解决方案吗?

您可以使用来提高每个人的知名度。此算法是为使用网站之间的链接对网站进行排名而设计的,但您可以使用评论、回复和喜欢(具有不同的系数)而不是链接


如果您认为PageRank很难实现(因为数据的大小),您可以使用产生相同结果但所需内存明显减少的。您的算法有什么问题?公式结构合理,参数有问题吗?