Neo4j 做推荐 (2)—— 基于内容的过滤

原文地址:Neo4j 做推荐 (2)—— 基于内容的过滤

基于内容的过滤(Content-based filtering):该技术通过比较商品之间的相似性或者相关性进行推荐。这种方式忽略用户的购买行为,只考虑商品之间的相似关系。

MATCH p=(m:Movie {title: "Net, The"})-[:ACTED_IN|:IN_GENRE|:DIRECTED*2]-() RETURN p LIMIT 25

运行结果如下图:

分析:

Cypher 语句的意思是:找出25条记录,该记录满足以下条件之一:

该记录中的电影是电影m 有相同的流派(IN_GENRE)

出演过电影m的演员,出演过该电影(ACTED_IN)

执导过电影m的导演,执导过该电影(DIRECTED)

注意:此语句返回的记录P,是一条关系链,并不仅仅是某一部电影。

另外,关系的运算,用到了 | 或。:DIRECTED*2 中的 *2 表示关系长度为2的关系。

这里举个例子:

MATCH p=(m:Movie {title: "Net, The"})-[:DIRECTED]-() RETURN relationships(p) as r

返回结果:

╒════╕

│"r"    │

╞════╡

│[{}    ]│

└────┘

 MATCH p=(m:Movie {title: "Net, The"})-[:DIRECTED*2]-() RETURN relationships(p) as r

返回结果:

╒═══════╕

│"r"    │

╞═══════╡

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

└───────┘

MATCH p=(m:Movie {title: "Net, The"})-[:DIRECTED*]-() RETURN relationships(p) as r

返回结果:

╒═══════╕

│”r” │

╞═══════╡

│[{}] │

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

└───────┘

从上面可以看出,[:DIRECTED] 表示一层关系, [:DIRECTED*2]表示2层关系,[:DIRECTED*]表示任意多层关系。

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 做推荐 (2)—— 基于内容的过滤)