本篇文章給大家分享的是有關(guān)如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)相關(guān)文章推薦功能,小編覺(jué)得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話(huà)不多說(shuō),跟著小編一起來(lái)看看吧。
這個(gè)思路用到的關(guān)鍵函數(shù)是:
int similar_text ( string $first, string $second[, float $percent] )
它返回的是兩個(gè)字根串的相同字節(jié)數(shù)。
按照這個(gè)思路,我們建立如下的函數(shù),這個(gè)函數(shù)的功能是把$arr_title數(shù)組按照同$title相似的的順序重新排列數(shù)組。
<?php $demo_title= "簡(jiǎn)明現(xiàn)代魔法"; $demo_arr_title= array("簡(jiǎn)單易懂的現(xiàn)代魔法","簡(jiǎn)單明了的現(xiàn)代魔法","簡(jiǎn)明扼要的古代魔法","不簡(jiǎn)單的現(xiàn)代魔法","很難懂的現(xiàn)代魔法"); $new_array= getSimilar($demo_title,$demo_arr_title); //print_r($new_array); echo"與[$demo_title]最相關(guān)的前三個(gè)文章是:<br/>"; for($j=0; $j<=2; $j++) { echo($j+1).":".$new_array[$j]."<br/>"; } //$title當(dāng)前標(biāo)題,$arrayTitle為需要查找的數(shù)組 functiongetSimilar($title,$arr_title) { $arr_len= count($arr_title); for($i=0; $i<=($arr_len-1); $i++) { //取得兩個(gè)字符串相似的字節(jié)數(shù) $arr_similar[$i] = similar_text($arr_title[$i],$title); } arsort($arr_similar); //按照相似的字節(jié)數(shù)由高到低排序 reset($arr_similar); //將指針移到數(shù)組的第一單元 $index= 0; foreach($arr_similaras$old_index=>$similar) { $new_title_array[$index] = $arr_title[$old_index]; $index++; } return$new_title_array; } ?>
程序運(yùn)行結(jié)果:
與[簡(jiǎn)明現(xiàn)代魔法]最相關(guān)的前三個(gè)文章是: 1:簡(jiǎn)單明了的現(xiàn)代魔法 2:簡(jiǎn)單易懂的現(xiàn)代魔法 3:簡(jiǎn)明扼要的古代魔法
有些需要注意的地方:
關(guān)于similar_text速度,有人做過(guò)這個(gè)一個(gè)測(cè)試,結(jié)果是:
The speed issues for similar_text seem to be only an issue for long sections of text (>20000 chars).
I found a huge performance improvement in my application by just testing if the string to be tested was less than 20000 chars before calling similar_text.
20000+ took 3-5 secs to process, anything else (10000 and below) took a fraction of a second. Fortunately for me, there was only a handful of instances with >20000 chars which I couldn't get a comparison % for.
如果要直接使用正文作對(duì)比速度可能會(huì)比較慢。
據(jù)說(shuō)這個(gè)函數(shù)用于英文的效果不太好(感興趣的讀者可以自行嘗試)。用于英文時(shí)可以將英文句子用空格分開(kāi)成多個(gè)單詞后再寫(xiě)一個(gè)類(lèi)似于similar_text的函數(shù)。
以上就是如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)相關(guān)文章推薦功能,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見(jiàn)到或用到的。希望你能通過(guò)這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
標(biāo)題名稱(chēng):如何在PHP項(xiàng)目中實(shí)現(xiàn)一個(gè)相關(guān)文章推薦功能-創(chuàng)新互聯(lián)
分享路徑:http://www.chinadenli.net/article34/dcigse.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、用戶(hù)體驗(yàn)、營(yíng)銷(xiāo)型網(wǎng)站建設(shè)、關(guān)鍵詞優(yōu)化、網(wǎng)站導(dǎo)航、網(wǎng)站收錄
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話(huà):028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容