您的位置:首页 > 移动开发 > 微信开发

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

2017-07-17 00:23 281 查看
数据库

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":"小说"}]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  小程序