首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Cypher推荐分数

Cypher推荐分数
EN

Stack Overflow用户
提问于 2019-11-01 02:47:42
回答 1查看 49关注 0票数 0

查看来自GrandStack电影研讨会https://github.com/grand-stack/grand-stack-movies-workshop/blob/master/neo4j-database/answers.md的示例

这里推荐的电影查询

代码语言:javascript
运行
复制
MATCH (m:Movie) WHERE m.movieId = $movieId
MATCH (m)-[:IN_GENRE]->(g:Genre)<-[:IN_GENRE]-(movie:Movie)
WITH m, movie, COUNT(*) AS genreOverlap
MATCH (m)<-[:RATED]-(:User)-[:RATED]->(movie:Movie)
WITH movie,genreOverlap, COUNT(*) AS userRatedScore
RETURN movie ORDER BY (0.9 * genreOverlap) + (0.1 * userRatedScore)  DESC LIMIT 3

这个查询会不会有偏差,因为它只会计算与Id为$movieId的电影至少有一个流派的电影的userRatedScore?

独立计算这两个分数的重写查询会是什么样子,这意味着它仍然会计算给定电影的userRatedScore,即使它不与Id为$movieId的电影共享类型

EN

回答 1

Stack Overflow用户

发布于 2019-11-01 18:36:38

如果你想忽略Genre提供的权重,那么你可以去掉查询中寻找它的部分,比如:

代码语言:javascript
运行
复制
MATCH (m:Movie) WHERE m.movieId = $movieId, (m)<-[:RATED]-(:User)-[:RATED]->(movie:Movie)
WITH movie, COUNT(*) AS userRatedScore
RETURN movie ORDER BY (0.1 * userRatedScore)  DESC LIMIT 3
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58649577

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档