1. 程式人生 > >Neo4j 做推薦 (8)—— 協同過濾(利用電影評級)

Neo4j 做推薦 (8)—— 協同過濾(利用電影評級)

協同過濾:

使用網路中其他使用者的首選項,評級和操作來查詢要推薦的專案。

(買這個東西的使用者,還買了那個東西)

 

使用者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 評過分的電影,而且找出受到他好評的電影,推薦給其他使用者,就是協同過濾最基本的做法。