天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

PHP簡(jiǎn)單實(shí)現(xiàn)“相關(guān)文章推薦”功能的方法

通常在做內(nèi)容網(wǎng)站的時(shí)候,需要在每一篇文章中出現(xiàn)與該文章相關(guān)的文章列表。對(duì)于大多數(shù)人來(lái)說(shuō),使用的方法通常是:建立一個(gè)關(guān)鍵詞列表,判斷每篇文章包含有那些關(guān)鍵詞,最后根據(jù)關(guān)鍵詞找出與某篇文章最相關(guān)的文章。對(duì)于內(nèi)容比較復(fù)雜的網(wǎng)站,確定關(guān)鍵列表詞顯然會(huì)比較麻煩。

本文介紹了與以往方法不同的similar_text(php4,php5)函數(shù)來(lái)方便的達(dá)到我們的預(yù)期要求。具體的思路是:從文章列表中取出所有的文章標(biāo)題,將所有的文章標(biāo)題都同當(dāng)前標(biāo)題對(duì)比,將對(duì)比結(jié)果生成一個(gè)數(shù)組,按照相似度的大小由大到標(biāo)題,利用similar_text將這些文章標(biāo)題同原文章標(biāo)題做對(duì)比,按標(biāo)題的相似程度重新排列標(biāo)題,就得到了與原文章相似的文章列表

這個(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è)類似于similar_text的函數(shù)。

另外,如果句子中含有比較多“的”、“了”等非關(guān)鍵詞字符時(shí),得到的結(jié)果可能會(huì)不太理想。

php技術(shù)PHP簡(jiǎn)單實(shí)現(xiàn)“相關(guān)文章推薦”功能的方法,轉(zhuǎn)載需保留來(lái)源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 高hbl双性浪荡古代 高h 大尺度纯肉 np快穿 | 精品久久99麻豆蜜桃666 | 亚洲国产第一区二区三区 | 国产午夜不卡在线观看视频666 | 寂寞夜晚看免费视频 | 亚洲精品色情APP在线下载观看 | 日本阿v在线资源无码免费 日本阿v片在线播放免费 | 中文字幕不卡在线高清 | 日本粉嫩学生毛绒绒 | 被男按摩师添的好爽在线直播 | 欧美亚洲日韩国产在线在线 | 视频一区二区中文字幕 | 9420高清免费观看在线大全 | 日本午夜看x费免 | 欧洲-级毛片内射八十老太婆 | 亚洲精品无码一区二区三区四虎 | 快播成电影人网址 | 色聚网久久综合 | 国产成人在线视频观看 | 捏奶动态图吃奶动态图q | 亚洲成人一区 | 中国少妇内射XXXHD免费 | 动听968 | 野花韩国中文版免费观看 | 用震蛋调教女性下面视频 | 亚洲中文字幕永久在线全国 | 偷偷鲁手机在线播放AV | 国产人妻久久久精品麻豆 | 免费鲁丝片一级在线观看 | 呜呜别塞了啊抽插 | 无码任你躁久久久久久老妇双奶 | www.久久久| 久久精品一区二区三区资源网 | 欧美特级午夜一区二区三区 | 国产人成精品综合欧美成人 | 你的欲梦裸身在线播放 | 涩涩视频www在线观看入口 | 国产成人无码免费精品果冻传媒 | 久久久精品久久久久特色影视 | 91久久精品国产亚洲 | 色久久综合视频本道88 |