Neo4j 做推薦 (8)—— 協同過濾(利用電影評級)
阿新 • • 發佈:2018-11-16
協同過濾:
使用網路中其他使用者的首選項,評級和操作來查詢要推薦的專案。
(買這個東西的使用者,還買了那個東西)
使用者Misty Williams的所有評分
// Show all ratings by Misty Williams
MATCH (u:User {name: "Misty Williams"})
MATCH (u)-[r:RATED]->(m:Movie)
RETURN *;
查詢Misty的平均評分:
// Show all ratings by Misty Williams MATCH (u:User {name: "Misty Williams"}) MATCH (u)-[r:RATED]->(m:Movie) RETURN avg(r.rating) AS average;
哪些是Misty 評分超過平均分的電影:
// What are the movies that Misty liked more than average?
MATCH (u:User {name: "Misty Williams"})
MATCH (u)-[r:RATED]->(m:Movie)
WITH u, avg(r.rating) AS average
MATCH (u)-[r:RATED]->(m:Movie)
WHERE r.rating > average
RETURN m;
由此,通過計算Misty 評過分的電影,而且找出受到他好評的電影,推薦給其他使用者,就是協同過濾最基本的做法。