Neo4j 做推荐 (6)—— 加权内容算法

xiaoxiao2025-04-30  10

除了考虑计算相似性的类型之外,还有更多的特征,如演员和导演。让我们使用加权总和根据他们共同的演员、流派和导演的数量对建议进行评分,以提高分数。根据重叠特征的数量和类型计算加权和:

// 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 具有相似特征的其他电影的排名。

运行结果如下:

转载请注明原文地址: https://www.6miu.com/read-5029484.html

最新回复(0)