除了考虑计算相似性的类型之外,还有更多的特征,如演员和导演。让我们使用加权总和根据他们共同的演员、流派和导演的数量对建议进行评分,以提高分数。根据重叠特征的数量和类型计算加权和:
1
2
3
4
5
6
7
8
9 // 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选择出来
- 把相同流派的电影找出来,并计算流派的总和
- 同理计算出演员和导演
- 根据流派占比5,演员占比3,导演占比4来计算总分值
由此得出与电影 m 具有相似特征的其他电影的排名。
运行结果如下:
- Neo4j 做推荐 (1)—— 基础数据
- Neo4j 做推荐 (2)—— 基于内容的过滤
- Neo4j 做推荐 (3)—— 协同过滤
- Neo4j 做推荐 (4)—— 基于内容的过滤(续)
- Neo4j 做推荐 (5)—— 基于类型的个性化建议
- Neo4j 做推荐 (6)—— 加权内容算法
- Neo4j 做推荐 (7)—— 基于内容的相似度量标准
- Neo4j 做推荐 (8)—— 协同过滤(利用电影评级)
- Neo4j 做推荐 (9)—— 协同过滤(人群的智慧)
- Neo4j 做推荐 (10)—— 协同过滤(皮尔逊相似性)
- Neo4j 做推荐 (11)—— 协同过滤(余弦相似度)
- Neo4j 做推荐 (12)—— 协同过滤(基于邻域的推荐)
在 “Neo4j 做推荐 (6)—— 加权内容算法” 上有 1 条评论
评论已关闭.