Neo4j 做推薦 (2) 基於內容的過濾

2021-08-28 23:47:25 字數 1466 閱讀 6800

基於內容的過濾(content-based filtering):該技術通過比較商品之間的相似性或者相關性進行推薦。這種方式忽略使用者的購買行為,只考慮商品之間的相似關係。

match p=(m:movie )-[:acted_in|:in_genre|:directed*2]-()

return p limit 25

執行結果如下圖:

分析:cypher 語句的意思是:找出25條記錄,該記錄滿足以下條件之一:

1. 該記錄中的電影是電影m 有相同的流派(in_genre)

2. 出演過電影m的演員,出演過該電影(acted_in)

3. 執導過電影m的導演,執導過該電影(directed)

注意:此語句返回的記錄p,是一條關係鏈,並不僅僅是某一部電影。

另外,關係的運算,用到了 | 或。:directed*2 中的 *2 表示關係長度為2的關係。

這裡舉個例子:

match p=(m:movie )-[:directed]-() return relationships(p) as r

返回結果:

╒════╕

│"r" │

╞════╡

│[{}]│

└────┘

match p=(m:movie )-[:directed*2]-() return relationships(p) as r

返回結果:

╒═══════╕

│"r" │

╞═══════╡

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

└───────┘

match p=(m:movie )-[:directed*]-() return relationships(p) as r

返回結果:

╒═══════╕

│"r" │

╞═══════╡

│[{}] │

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

├───────┤

│[{},{}]│

└───────┘

從上面可以看出,:directed 表示一層關係, :directed*2表示2層關係,:directed*表示任意多層關係。

Neo4j 做推薦 (6) 加權內容演算法

除了考慮計算相似性的型別之外,還有更多的特徵,如演員和導演。讓我們使用加權總和根據他們共同的演員 流派和導演的數量對建議進行評分,以提高分數。根據重疊特徵的數量和型別計算加權和 find similar movies by common genres match m movie where m.ti...

neo4j安裝 基於Neo4j的知乎關係爬蟲

首先交代一下爬蟲所用到的資料庫和環境 neo4j使用類似sql的查詢語言cypher,關於cypher的使用和簡單demo,可以參考cypher查詢語言 neo4j中的sql。當然,為了減少學習cypher的時間成本,我在python環境中安裝了py2neo,pip install py2neo。p...

Neo4j學習(2) Win系統安裝Neo4j

neo4j 是目前最流行的圖形資料庫,支援完整的事務,在屬性圖中,圖是由頂點 vertex 邊 edge 和屬性 property 組成的,頂點和邊都可以設定屬性,頂點也稱作節點,邊也稱作關係,每個節點和關係都可以由乙個或多個屬性。neo4j建立的圖是用頂點和邊構建乙個有向圖,其查詢語言cypher...