基於內容的過濾(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...