Neo4j 應用案例——科研導圖

1. 存在問題

目前,我國已經是科技大國,但是我國科研界也存在明顯的痛點問題:

  • 重複科研問題
  • 科研資料搜索技術智能水平較低
  • 科研社交問題
  • 科研成果抄襲問題

Neo4j無疑是解決上上述提及的科研痛點問題的有力工具。

2. 創建科研導圖示範案例

(1)功能:本案例用於描述研究人員、論文、關鍵詞、學術期刊等之間的關係。
(2)執行程序。

create
(張教授:研究人員{姓名:"張教授"}),
(李老師:研究人員{姓名:"李老師"}),
(王老師:研究人員{姓名:"王老師"}),
(論文1:論文{論文名:'論文1'}),
(論文2:論文{論文名:'論文2'}),
(論文3:論文{論文名:'論文3'}),
(論文4:論文{論文名:'論文4'}),
(論文5:論文{論文名:'論文5'}),
(論文6:論文{論文名:'論文6'}),
(論文7:論文{論文名:'論文7'}),
(論文8:論文{論文名:'論文8'}),
(學術期刊1:學術期刊{刊名:'學術期刊1'}),
(學術期刊2:學術期刊{刊名:'學術期刊2'}),
(學術期刊3:學術期刊{刊名:'學術期刊3'}),
(關鍵詞1_1:關鍵詞{詞名:'關鍵詞1_1'}),
(關鍵詞1_2:關鍵詞{詞名:'關鍵詞1_2'}),
(關鍵詞1_3:關鍵詞{詞名:'關鍵詞1_3'}),
(關鍵詞2_1:關鍵詞{詞名:'關鍵詞2_1'}),
(關鍵詞2_2:關鍵詞{詞名:'關鍵詞2_2'}),
(關鍵詞2_3:關鍵詞{詞名:'關鍵詞2_3'}),
(關鍵詞3_1:關鍵詞{詞名:'關鍵詞3_1'}),
(關鍵詞3_2:關鍵詞{詞名:'關鍵詞3_2'}),
(關鍵詞3_3:關鍵詞{詞名:'關鍵詞3_3'}),
(張教授)-[:作者]->(論文1),
(張教授)-[:作者]->(論文2),
(張教授)-[:作者]->(論文3),
(張教授)-[:作者]->(論文4),
(張教授)-[:作者]->(論文5),
(張教授)-[:作者]->(論文6),
(張教授)-[:作者]->(論文7),
(張教授)-[:作者]->(論文8),
(李老師)-[:作者]->(論文1),
(李老師)-[:作者]->(論文2),
(王老師)-[:作者]->(論文5),
(王老師)-[:作者]->(論文6),
(論文1)-[:發表]->(學術期刊1),
(論文2)-[:發表]->(學術期刊1),
(論文3)-[:發表]->(學術期刊1),
(論文4)-[:發表]->(學術期刊2),
(論文5)-[:發表]->(學術期刊2),
(論文6)-[:發表]->(學術期刊2),
(論文7)-[:發表]->(學術期刊3),
(論文8)-[:發表]->(學術期刊3),

(論文1)-[:關鍵詞]->(關鍵詞1_1),
(論文1)-[:關鍵詞]->(關鍵詞1_2),
(論文1)-[:關鍵詞]->(關鍵詞1_3),
(論文2)-[:關鍵詞]->(關鍵詞2_1),
(論文2)-[:關鍵詞]->(關鍵詞2_2),
(論文2)-[:關鍵詞]->(關鍵詞2_3),
(論文3)-[:關鍵詞]->(關鍵詞2_3),
(論文4)-[:關鍵詞]->(關鍵詞1_2),
(論文5)-[:關鍵詞]->(關鍵詞3_1),
(論文5)-[:關鍵詞]->(關鍵詞3_2),
(論文5)-[:關鍵詞]->(關鍵詞3_3),
(論文6)-[:關鍵詞]->(關鍵詞2_1),
(論文7)-[:關鍵詞]->(關鍵詞3_1),
(論文8)-[:關鍵詞]->(關鍵詞3_2)
return *

(3)執行結果
在這裏插入圖片描述
(4)彙總計算三位作者所發表的文章數量。

執行下面程序:

match (p:研究人員)-[a:作者]->(論文) return p.姓名 as 作者姓名,
count(論文) as 發表論文數 order by 發表論文數 desc

程序執行結果如下圖。
在這裏插入圖片描述

3. 文獻搜索

(1)需求描述
科研文獻檢索是每個科研工作者在日常科研工作中常常需要面臨的的問題,但是現存的檢索系統往往採用全文檢索,全文檢索的好處是精度較高,可是也存在效率較低,並且可靠性關聯度不高的問題。
如果使用Neo4j進行檢索,不僅可以快速檢索出匹配度最高的論文,還可以把關聯度較高的論文也一同檢索出來,極大地豐富了檢索內容的多樣性。
(2)功能:創建相似論文圖譜。
(3)執行程序。

create
(論文1:論文圖譜{論文名:'論文1'}),
(論文2:論文圖譜{論文名:'論文2'}),
(論文3:論文圖譜{論文名:'論文3'}),
(論文4:論文圖譜{論文名:'論文4'}),
(論文5:論文圖譜{論文名:'論文5'}),
(論文6:論文圖譜{論文名:'論文6'}),
(論文7:論文圖譜{論文名:'論文7'}),
(論文1)-[:相似]->(論文2),
(論文1)-[:相似]->(論文3),
(論文2)-[:相似]->(論文4),
(論文2)-[:相似]->(論文5),
(論文3)-[:相似]->(論文5),
(論文5)-[:相似]->(論文6),
(論文7)-[:相似]->(論文2),
(論文7)-[:相似]->(論文6)
return *

(4)執行結果
在這裏插入圖片描述
(5)找出論文1與論文6這兩篇論文之間相似傳遞的路徑。

執行程序:

match n = allshortestpaths((論文1:論文圖譜{論文名:'論文1'})
-[*..6]->(論文6:論文圖譜{論文名:'論文6'})) return n;

執行結果
在這裏插入圖片描述

4. 科研合作圖譜

(1)需求描述
在科研導圖的分析中還有一項重要的工作,那就是研究不同科研人員之間的合作和不同科研機構之間的合作。當某個科研人員或者某個科研機構有意向尋找合作伙伴時,合作圖譜可以起到較大的輔助作用。
(2)功能:創建科研合作知識圖譜。
(3)執行程序。

create
(作者1:論文作者{作者名:'作者1'}),
(作者2:論文作者{作者名:'作者2'}),
(作者3:論文作者{作者名:'作者3'}),
(作者4:論文作者{作者名:'作者4'}),
(作者5:論文作者{作者名:'作者5'}),
(作者6:論文作者{作者名:'作者6'}),
(作者1)-[:論文合作]->(作者2),
(作者1)-[:論文合作]->(作者3),
(作者2)-[:論文合作]->(作者4),
(作者2)-[:論文合作]->(作者5),
(作者3)-[:論文合作]->(作者5),
(作者5)-[:論文合作]->(作者6)
return *

(4)執行結果
在這裏插入圖片描述
(5)找到兩位作者的最短路徑。
執行程序:

match n =allshortestpaths((作者1:論文作者{作者名:'作者1'})
-[*..6]->(作者5:論文作者{作者名:'作者5'})) return n;

執行結果。
在這裏插入圖片描述

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