除了考慮計算相似性的類型之外,還有更多的特征,如演員和導演。讓我們使用加權(quán)總和根據(jù)他們共同的演員、流派和導演的數(shù)量對建議進行評分,以提高分數(shù)。根據(jù)重疊特征的數(shù)量和類型計算加權(quán)和:
// 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, (5gs)+(3as)+(4*ds) AS score ORDER BY score DESC LIMIT 100
分析:
首先把movie選擇出來
把相同流派的電影找出來,并計算流派的總和
同理計算出演員和導演
根據(jù)流派占比5,演員占比3,導演占比4來計算總分值
由此得出與電影 m 具有相似特征的其他電影的排名。
運行結(jié)果如下:

Neo4j 做推薦 (1)—— 基礎(chǔ)數(shù)據(jù)
Neo4j 做推薦 (4)—— 基于內(nèi)容的過濾(續(xù))
Neo4j 做推薦 (6)—— 加權(quán)內(nèi)容算法
Neo4j 做推薦 (7)—— 基于內(nèi)容的相似度量標準
Neo4j 做推薦 (8)—— 協(xié)同過濾(利用電影評級)
Neo4j 做推薦 (9)—— 協(xié)同過濾(人群的智慧)
Neo4j 做推薦 (10)—— 協(xié)同過濾(皮爾遜相似性)