国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

手把手教你做關鍵詞匹配項目(搜索引擎)---- 第十九天

2019-11-15 01:47:01
字體:
來源:轉載
供稿:網友
手把手教你做關鍵詞匹配項目(搜索引擎)---- 第十九天

客串:屌絲的坑人表單神器

走過的那些事兒:數據庫那點事兒

探討:探討負載均衡

面向對象的認識:面向對象的認識----新生的初識、面向對象的番外----思想的夢游篇(1)

起點:手把手教你做關鍵詞匹配項目(搜索引擎)---- 第一天

回顧:手把手教你做關鍵詞匹配項目(搜索引擎)---- 第十八天

第十九天

上回我們一直提到字典的構建,以及寶貝屬性的特殊處理,提得太多,導致現在整個系統還不能完全的運行起來。

小帥帥要多在這方面下功夫了。

就算上次我們提到的用SQL語句里面的對屬性LIKE,對黑名單NOT LIKE也無法解決所有的問題,我們只是把需要匹配的關鍵詞縮小了范圍。

我們拿一個實例來說明下:

有個寶貝是雪紡連衣裙,那么雪紡連衣裙a 、新潮雪紡連衣裙a、韓版雪紡女裙a、高仿雪紡女裙、正品女裙等這些詞能用嗎?

小帥帥、于老大、小樂樂、小歡歡以及小哼哼一致認為需要為每個關鍵詞跟寶貝屬性(字典)做匹配,當匹配度處于某個值,比如>=80%的時候可用。

小帥帥又納悶了,怎么做到為每個關鍵詞跟寶貝屬性(字典)做匹配呢?

當時于老大就提到用關鍵詞拆分算法,這個算法其實很簡單,原理如下:

把關鍵詞按業務詞匯拆成詞組或者單詞,對每個單詞或者詞組算出在整個關鍵詞所占的比例,比如:雪紡連衣裙a 那么會被拆分成雪紡、連衣裙和a,那么相應的比例為33%、50%和17%。

然后再根據所拆成的詞組或者單詞同寶貝屬性(字典)做對比,那么算出匹配成功的總比例來決定是否可用。比如寶貝是雪紡連衣裙,那么雪紡連衣裙a,所得到的匹配度為33%+50%=83%。

當這個算法一講解完畢,小帥帥就迫不急待的寫了代碼,代碼如下:

<?phpclass Splitter {    /**     * 獲取類目下分詞的詞組數據,按字符串長度比較排序     * @param $cid     * @return array     */    public static function getWordSegmentation($cid){        $ret = array();        $sql = "select word from category_linklist where cid='$cid'";        $words = DB::makeArray($sql);        foreach($words as $strWords){            $words = explode(",",$strWords);            foreach($words as $word){               if(self::isPhrase($word)){                    $ret[] = $word;                }            }        }        usort($ret,function($a,$b){            return (strlen($a)<strlen($b))?1:-1;        });        return $ret;    }    /**     * 檢測是否為詞組     * @param $word     * @return bool     */    public static function isPhrase($word){        if(

小帥帥寫這個也是一點一點經過多次重構而得來的結果,他不想讓于老大失望,所以一再精益求精。

小帥帥把代碼拿給于老大看的時候,于老大會有什么反應呢,請看下回分解.


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 广河县| 杭州市| 关岭| 澎湖县| 开平市| 金沙县| 农安县| 连江县| 兴和县| 日照市| 乐昌市| 宝坻区| 峨山| 磐石市| 北票市| 福安市| 永春县| 三江| 乌拉特后旗| 丹东市| 安图县| 雅江县| 内乡县| 万宁市| 乌兰县| 兴化市| 厦门市| 门源| 开阳县| 定西市| 昌都县| 辽源市| 兴化市| 大埔区| 扬中市| 乌兰县| 兴业县| 南华县| 习水县| 兰坪| 海晏县|