聯系信息

                        一種網站內容綜合排序的算法(PHP)

                        2020-11-25 10:57 By 致遠 1553
                        當前位置: 企業網站建設 > ThinkPHP > 一種網站內容綜合排序的算法(PHP)

                        本代碼主要是針對公司排名,文章或其他排名方法參考調整即可。


                        $days=log($d['days']+2)*2;//連續登錄天數,7天未登錄復位,這個需要另外寫程序來實現,這里只是調用
                        $view=log($d['view']+2);//主頁訪問總數
                        $pro=log(($d['hpro']+$d['lpro'])*($d['hpro']-$d['lpro'])/5+1)*2;//hpro為高質量產品數量 lpro為低質量產品數量,二者相加即為發布的產品總量
                        $case=log(($d['hcase']+$d['lcase'])*($d['hcase']-$d['lcase'])/5+1)*3;//案例,同上
                        $art=log(($d['hart']+$d['lart'])*($d['hart']-$d['lart'])/8+1)*2;//文章,同上
                        $fz=$days+$view+$pro+$case+$art;
                        $now=time();//現在時間
                        $fm=$now-$d['regtime']+1+pow(($now-$d['ltime'])/2,1.5);//regtime公司注冊時間 ltime上次登錄時間
                        $sort=$fz/$fm;
                        本代碼主要參考了Stack Overflow的算法。原算法如下圖所示:


                        2020031020121737

                        具體參數解釋如下:

                        1. Qviews(問題的瀏覽次數)— log(Qviews)*4

                        某個問題的瀏覽次數越多,就代表越受關注,得分也就越高。這里使用了以 10為底的對數,用意是當訪問量越來越大,它對得分的影響將不斷變小。

                        2. Qscore(問題得分)和 Qanswers(回答的數量)— (Qanswers * Qscore)/5

                        Qscore(問題得分)= 贊成票-反對票。如果某個問題越受到好評,排名自然應該越靠前。Qanswers 表示回答的數量,代表有多少人參與這個問題。這個值越大,得分將成倍放大。這里需要注意的是,如果無人回答,Qanswers 就等于0,這時 Qscore 再高也沒用,意味著再好的問題,也必須有人回答,否則進不了熱點問題排行榜。

                        3. Ascores(回答得分)— sum(Ascores)

                        一般來說,”回答”比”問題”更有意義。這一項的得分越高,就代表回答的質量越高。但是簡單加總的設計還不夠全面。這里有兩個問題。首先,一個正確的回答勝過一百個無用的回答,但是,簡單加總會導致,1個得分為 100 的回答與 100 個得分為 1 的回答,總得分相同。其次,由于得分會出現負值,因此那些特別差的回答,會拉低正確回答的得分。

                        4. Qage(距離問題發表的時間)和 Qupdated(距離最后一個回答的時間)— ((Qage+1) – ((Qage – Qupdated)/2)) ^ 1.5

                        Qage 和 Qupdated 的單位都是小時。如果一個問題的存在時間越久,或者距離上一次回答的時間越久,Qage 和 Qupdated 的值就相應增大。也就是說,隨著時間流逝,這兩個值都會越變越大,導致分母增大,因此總得分會越來越小。

                        總結:Stack Overflow 熱點問題的排名,與參與度(Qviews 和 Qanswers)和質量(Qscore 和 Ascores)成正比,與時間(Qage 和 Qupdated)成反比。

                        網上的類似算法還有很多,只是有的我看不懂,就不做記錄了,下面再附一個比較簡單的算法(Hacker News):

                        Hacker News算法



                        © 致遠 2020-11-25,原創內容,轉載請注明出錯:一種網站內容綜合排序的算法(PHP)

                        留下您的評論

                        > 人人爽人人澡人人高潮_免费无码国产V片在线观看_18禁裸乳无遮挡免费观看_国产99在线 | 欧美_中文字幕无码无码专区 国产精品成人VA在线播放 爱情岛网站亚洲禁18进入 久久精品成人免费国产片 久久久久99精品成人片三人毛片 中文在线最新版天堂 99久久精品国产一区二区 久久久无码中文字幕久 八戒八戒看片在线WWW 国产真人无遮挡作爱免费视频 亚洲第一成人网站