V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
kisshere
V2EX  ›  问与答

论坛帖子排序按照什么排序最好?

  •  1
     
  •   kisshere · 2014-12-10 21:09:33 +08:00 · 4220 次点击
    这是一个创建于 3647 天前的主题,其中的信息可能已经有所发展或是发生改变。
    目前我想到的帖子排序,1种按照回复数从多到少排序,这样就会造成马太效应严重,回复多的回复更多,少的更少。2种是按照最后回复的时间从大到小排序,形成一种顶贴的效果,这样又与贴吧重合了。3种是按照帖子发布者注册时间来从大到小排序,这样做的目的是照顾新人,让网站新注册的用户帖子能排在前面,但是这样做的后果是帖子列表的营养不高,都是一些无味的帖子,请教有没有好的方案,既照顾新用户,又能展现有营养丰富的帖子?
    17 条回复    2014-12-12 00:24:22 +08:00
    tini8
        1
    tini8  
       2014-12-10 21:13:41 +08:00
    这是所有社交网络未解的难题
    gkuchan
        2
    gkuchan  
       2014-12-10 21:16:09 +08:00   ❤️ 1
    @kisshere @tini8 看看这篇文章能不能帮到你 http://www.tuicool.com/articles/ymIbEr
    mringg
        3
    mringg  
       2014-12-10 21:19:35 +08:00 via Android
    第二种相对来说是最合理的,别的方法确实都没它好。
    tini8
        4
    tini8  
       2014-12-10 21:26:25 +08:00
    v2ex是在第二种的基础上加上了每个用户的权重因素,权重高的往上提一下,权重低的往下沉一下,关键是权重的算法
    yaoye0o
        5
    yaoye0o  
       2014-12-10 21:32:54 +08:00 via Android
    为什么说第二种和贴吧重合了?
    jason52
        6
    jason52  
       2014-12-10 21:59:55 +08:00
    阮一峰同学写过六篇文章讲解权重排名的,不同网站有不同实现方式的,hn, reddit, stackoverflow, quora....
    staticor
        7
    staticor  
       2014-12-10 22:35:18 +08:00
    x1: 原貼发布时间
    x2: 回复数
    x3: 回复参与人数 (x2去重)
    x4: 最新回复时间, x5: x4- x1 回复时间间隔 --> 本貼受关注时间
    x6: 现在时间, x7 : x6- x1, x8: x4 - x1 --> 本貼生存时间与沉寂时间

    用x1 - x8 对貼本身进行评分, 评分函数的类型和权重可自己先试着定,

    关于质量加权, 对人本身:
    再取w1: po主评分: 比如 = f(注册时间, 发帖数, 回复数, ...)
    以及所有回复中的(或者最近的N个回复人, 或者回复人中评分最高的Top - k, )给出对所有回复者的评分

    关于内容加权: 不考虑复杂NLP的情况下, 不如只考虑节点\标签的权重,
    比如 Python > 程序员> 美女. 

    只是头脑风暴, 希望有所帮助.
    xuwenmang
        8
    xuwenmang  
       2014-12-10 22:50:18 +08:00
    看你网站到什么程度了。

    很多人参与的,他们只想看到最新的。
    论坛:最新>推荐>最热。。

    很多人浏览的,他们想看到真正有价值的。
    博客:推荐>最新>最热。

    很多很多很多参与的,他们只想看到最新的最火的。
    微博:最热>最新>推荐

    很多很多很多内容,很多很多很多用户。他们只想看到自己关注的。
    社交平台:关注>最新>最火。
    JamesRuan
        9
    JamesRuan  
       2014-12-11 00:11:03 +08:00   ❤️ 1
    一个我正在设计中的论坛暂时这样算分:
    posts_count:总回复数,最小为1
    viewers_count:总点击数,最小为1
    post_to_view_ratio:posts_count/viewers_count
    popularity_score:(posts_count + log(viewers_count))* post_to_view_ratio/log(age),更多的回复和更对的点击率可以得到更高的分数,而更长的时间得到的分数更低。
    JamesRuan
        10
    JamesRuan  
       2014-12-11 00:14:28 +08:00
    算法的几个假设:
    1时间越长的帖子获得的点击和回复率越高
    2回复率高的帖子更加优秀,点击率次之
    Mac
        11
    Mac  
       2014-12-11 00:35:57 +08:00
    在2的基础上,加上超过一定数量的回复停止上升,回帖时多加个判断即可。
    Mac
        12
    Mac  
       2014-12-11 00:37:04 +08:00
    另外,千万别做什么回复可见的功能,这个功能我觉得是中文网络最无聊的设定。
    kisshere
        13
    kisshere  
    OP
       2014-12-11 08:49:39 +08:00 via Android
    @JamesRuan log(age)是什么意思
    userlogin
        14
    userlogin  
       2014-12-11 08:49:44 +08:00
    dwztom
        15
    dwztom  
       2014-12-11 08:52:44 +08:00 via Android
    @jason52 哈哈,多年前我看过此文。
    4everLoveU
        16
    4everLoveU  
       2014-12-11 11:34:49 +08:00
    一直以为按照时间就可以了,看了楼上的回复表示我好弱小。
    JamesRuan
        17
    JamesRuan  
       2014-12-12 00:24:22 +08:00
    @kisshere 帖子创建至今的时间。算法并不严谨,没有很坚实的数学模型(实在是本人数学比较渣,太费脑子就搞不定了)。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5745 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 03:21 · PVG 11:21 · LAX 19:21 · JFK 22:21
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.