用户读书喜好推荐数据分析

数据库

borrow表

这里写图片描述

book表
这里写图片描述

其中tag中的数据

[{"count":3312,"name":"女性","title":"女性"},{"count":3254,"name":"林奕含","title":"林奕含"},{"count":2120,"name":"小说","title":"小说"},{"count":2056,"name":"伤痛","title":"伤痛"},{"count":1801,"name":"台湾文学","title":"台湾文学"},{"count":1471,"name":"社会","title":"社会"},{"count":1431,"name":"台湾","title":"台湾"},{"count":1024,"name":"小說","title":"小說"}]
[{"count":5772,"name":"历史","title":"历史"},{"count":5391,"name":"小说","title":"小说"},{"count":4763,"name":"外国文学","title":"外国文学"},{"count":4297,"name":"肯·福莱特","title":"肯·福莱特"},{"count":3348,"name":"好书,值得一读","title":"好书,值得一读"},{"count":2757,"name":"英国小说","title":"英国小说"},{"count":2330,"name":"经典","title":"经典"},{"count":2321,"name":"英国","title":"英国"}]
[{"count":111,"name":"科幻","title":"科幻"},{"count":56,"name":"特德·姜","title":"特德·姜"},{"count":31,"name":"科幻小说","title":"科幻小说"},{"count":30,"name":"小说","title":"小说"},{"count":22,"name":"美国","title":"美国"},{"count":15,"name":"特德·蒋","title":"特德·蒋"},{"count":12,"name":"蒸汽朋克","title":"蒸汽朋克"},{"count":8,"name":"TedChiang","title":"TedChiang"}]

分析该用户喜欢阅读的读书分类

<?php
    require_once 'config.php';
    header('Content-type: application/json; charset=UTF-8');
    if(isset($_GET['openid'])){
        $openid=$_GET['openid'];
        $sql="SELECT bookid FROM borrow WHERE openid = '$openid'";
        $array=array();
        if($result=mysqli_query($conn,$sql)) {
            $array=array();
            while ($row = mysqli_fetch_array($result)) {
                $sql1="SELECT tag from book where bookid='$row[0]'";
                $result1=mysqli_query($conn,$sql1);
                $row2=mysqli_fetch_row($result1);
                $data=json_decode($row2[0]);
                foreach($data as $k){
                    //var_dump($k);
                    //echo $k->{'title'}.' ';
                    $array[]=$k->{'title'};
                }
            }
            $arr=array_count_values($array);
            //arsort($arr);//排序按照值大小
            //$a=max(array_flip($arr));//并列最大只输出一个,不采用
            $a=array_keys($arr, max($arr));//$a为数组,可以输出并列最大
            $arrays=array();
            foreach($a as $key=>$val){
                $arrays[]=array(
                    'url'=>'/tag/'.$val,
                    'name'=>$val,
                );
            }
            echo json_encode($arrays,JSON_UNESCAPED_UNICODE);
        }
    }
?>

根据用户id在borrow表中查找出所借书的全部bookid,再根据bookid查找出所有tag集合起来,后期数据过大,可以使用hadoop的wordcount统计一下tag分类,此处数据小,仅使用php即可实现。

array(50) {
  ["女性"]=>
  int(1)
  ["林奕含"]=>
  int(1)
  ["小说"]=>
  int(10)
  ["伤痛"]=>
  int(1)
  ["台湾文学"]=>
  int(1)
  ["社会"]=>
  int(1)
  ["台湾"]=>
  int(1)
  ["小說"]=>
  int(1)
  ["历史"]=>
  int(1)
  ["外国文学"]=>
  int(5)
  ["肯·福莱特"]=>
  int(1)
  ["好书,值得一读"]=>
  int(1)
  ["英国小说"]=>
  int(1)
  ["经典"]=>
  int(4)
  ["英国"]=>
  int(2)
  ["科幻"]=>
  int(5)
  ["特德·姜"]=>
  int(1)
  ["科幻小说"]=>
  int(5)
  ["美国"]=>
  int(4)
  ["特德·蒋"]=>
  int(1)
  ["蒸汽朋克"]=>
  int(1)
  ["TedChiang"]=>
  int(1)
  ["罗伯特·索耶"]=>
  int(1)
  ["加拿大"]=>
  int(1)
  ["未来闪影"]=>
  int(1)
  ["科幻穿越"]=>
  int(1)
  ["丹·西蒙斯"]=>
  int(1)
  ["海伯利安四部曲"]=>
  int(1)
  ["海伯利安"]=>
  int(1)
  ["太空歌剧"]=>
  int(1)
  ["节奏紧凑,可读性强"]=>
  int(1)
  ["皮尔斯·布朗"]=>
  int(1)
  ["Kindle版"]=>
  int(1)
  ["银河系漫游指南"]=>
  int(1)
  ["道格拉斯?亚当斯"]=>
  int(1)
  ["幽默"]=>
  int(1)
  ["路遥"]=>
  int(1)
  ["平凡的世界"]=>
  int(1)
  ["中国文学"]=>
  int(1)
  ["人生"]=>
  int(1)
  ["茅盾文学奖"]=>
  int(1)
  ["文学"]=>
  int(3)
  ["百年孤独"]=>
  int(1)
  ["加西亚·马尔克斯"]=>
  int(1)
  ["拉美文学"]=>
  int(1)
  ["魔幻现实主义"]=>
  int(1)
  ["黑色幽默"]=>
  int(1)
  ["美国文学"]=>
  int(1)
  ["外国小说"]=>
  int(1)
  ["库尔特·冯内古特"]=>
  int(1)
}

取最大值返回

[{"url":"\/tag\/小说","name":"小说"}]

猜你喜欢

转载自blog.csdn.net/xbw12138/article/details/75213452