知識圖譜-Neo4j構建你的第一個知識圖譜

知識圖譜-Neo4j的下載安裝----參考

目標:根據已有數據集,構建一個用戶-商品的知識圖譜
在這裏插入圖片描述

1.尋找數據

構建知識圖譜時首先需要獲取數據。可以自己在網上爬取數據,也可以用現有的數據集
本文使用的是Women’s E-Commerce Clothing Reviews------>原始數據下載

數據集屬性對應如下:
在這裏插入圖片描述
數據集包括23486行和10個特徵向量。分別對應

服裝ID:整數分類變量,指的是要查看的特定作品。
年齡:評論者年齡的正整數變量。
標題:評論標題的字符串變量。
評論文本:評論正文的字符串變量。
評分:客戶授予的產品的評分,從1到5。
推薦的IND:1表示客戶推薦,0表示客戶不推薦。
積極的反饋計數:發現該評論爲積極評論的客戶數量。
部門名稱:產品高級部門的分類名稱。
部門名稱:產品部門名稱的分類名稱。
類名稱:產品類名稱的分類名稱。

2.節點分析

每一條評論代表一條購買記錄,這裏假設每條記錄對應一個消費者,即一個消費者購買一件衣服,一件衣服可以被多個用戶購買。在實際情況中肯定是多對多的關係,這裏只做知識圖譜的構建

用戶購買服裝,所以需要兩個節點,<消費者> <衣服>,數據中含有評論,評分,是否推薦等含關聯的屬性,這裏在加一個 <購買行爲> 的節點,講數據集分爲三個節點數據集。如下。
<消費者 cus.csv>
label爲節點標籤
在這裏插入圖片描述
<衣服 clo.csv>

在這裏插入圖片描述
<購買行爲 buy.csv>
在這裏插入圖片描述

3.知識圖譜的構建

3.1 安裝並打開Neo4j

可以參考知識圖譜-Neo4j的下載安裝

3.2 導入節點

把文件放入Neo4j安裝目錄下的import目錄下F:\neo4j-community-3.5.16\import
1.導入Customer節點
輸入

LOAD CSV FROM "file:///cus.csv" AS line
create (c:Customer{ID:line[0],Age:line[1],Review_Text:line[2],Recommended_IND:line[3],Positive_Feedback_Count:line[4]})

在這裏插入圖片描述
可以輸入下面的CQL查看導入的節點

MATCH (n:Customer) RETURN n LIMIT 25

在這裏插入圖片描述

可以根據自己的需求更改節點顯示的屬性,顏色,還有大小

2.導入Cloth節點

LOAD CSV FROM "file:///clo.csv" AS line
create (c:Cloth{Clothing_ID:line[0],Title:line[1],Division_Name:line[2],Department_Name:line[3],Class_Name:line[4]})

MATCH (n:Cloth) RETURN n LIMIT 25
MATCH (n:Cloth) RETURN n LIMIT 25

3.導入Shopping節點

備註:如果不想導入shopping節點,直接建立用戶和服裝的購買關係,需要在最前面重新建立兩個索引
CREATE INDEX ON :Customer(ID);
CREATE INDEX ON :Cloth(Clothing_ID);
然後在導入buy.csv之後,
LOAD CSV WITH HEADERS FROM “file:/buy.csv” AS row
MATCH (customer:Customer{ID: row.ID})
MATCH (Clothing_ID:Cloth {Clothing_ID: row.Clothing_ID})
MERGE (customer)-[:點擊]->(cloth)
就可以直接生成用戶和服裝的購買關係,中間沒有多餘的shopping節點

LOAD CSV WITH HEADERS FROM "file:///buy.csv" AS row
CREATE (n:Shopping)
SET n = row
MATCH (n:Shopping) RETURN n LIMIT 25

在這裏插入圖片描述

3.3 導入節點之間的關係

節點Shopping和節點Cloth建立關係

MATCH (s:Shopping),(c:Cloth)
WHERE c.Clothing_ID = s.Clothing_ID
CREATE (s)-[:buy]->(c)

在這裏插入圖片描述

節點Shopping和節點Customer建立關係

MATCH (s:Shopping),(c:Customer)
WHERE c.ID = s.ID
CREATE (c)-[:buy]->(s)

在這裏插入圖片描述

3.查看並操作知識圖譜

MATCH p=()-->()-->() RETURN p LIMIT 500

如果後面的節點數設置太大,瀏覽器會崩潰,看情況設置,查看圖譜數量

這裏因爲在數據處理方面我設置了一個客戶只夠買一件服裝,所以在圖譜中顯示的是很分離的,很多實際過程都是多對多的關係,需要設計好知識的節點和關係,這樣纔可以構建更好的知識圖譜

Neo4j本身具有查詢功能,可以用CQL語句進行相應的操作了
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章