Thinkphp基于标签tags做相关内容推荐

需求背景:本人有一个明星同款网站,想在商品下面推荐相关内容的商品。

数据库字段为:
id tags
1 xx,xx

model php代码如下:

/** 获取所有标签 */
   public function get_all_tags() {

   $sql = "SELECT id,tags FROM ".C('DB_PREFIX')."items WHERE pass=1";
   $item = $this->query($sql);

   $result = [];
   foreach($item as $key => $value){
        //id 做key ,值是该id下的所有tagID数组。
        $result[$value['id']] = explode(",",$value['tags']);
    }

    return $result;


    }


    
    /**
     * [更据指定文章返回相似的文章推荐]
     * @param  $id 指定的商品ID
     * @param  $top       要返回的推荐条数
     * @return Array      推荐条目数组
     */
    public function getSimilar($id, $top=6){

        $all_tags = $this->get_all_tags();//调用上面的函数返回所有文章的tags
        $finded = $all_tags[$id];//因为上面是包含所有文章了,所以肯定包含了当前文章
        unset($all_tags[$id]);//把当前文章从数组中删除,不然自己和自己肯定是相似度最高了。

        $jaccard_a
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值