Neo4j 做推薦 (6)—— 加權內容演算法
阿新 • • 發佈:2018-11-16
除了考慮計算相似性的型別之外,還有更多的特徵,如演員和導演。讓我們使用加權總和根據他們共同的演員、流派和導演的數量對建議進行評分,以提高分數。根據重疊特徵的數量和型別計算加權和:
// Find similar movies by common genres MATCH (m:Movie) WHERE m.title = "Wizard of Oz, The" MATCH (m)-[:IN_GENRE]->(g:Genre)<-[:IN_GENRE]-(rec:Movie) WITH m, rec, COUNT(*) AS gs OPTIONAL MATCH (m)<-[:ACTED_IN]-(a:Actor)-[:ACTED_IN]->(rec) WITH m, rec, gs, COUNT(a) AS as OPTIONAL MATCH (m)<-[:DIRECTED]-(d:Director)-[:DIRECTED]->(rec) WITH m, rec, gs, as, COUNT(d) AS ds RETURN rec.title AS recommendation, (5*gs)+(3*as)+(4*ds) AS score ORDER BY score DESC LIMIT 100
分析:
1. 首先把movie選擇出來
2. 把相同流派的電影找出來,並計算流派的總和
3. 同理計算出演員和導演
4. 根據流派佔比5,演員佔比3,導演佔比4來計算總分值
由此得出與電影 m 具有相似特徵的其他電影的排名。
執行結果如下: