999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Neo4j的用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫的應用

2021-10-16 16:01:54柴源
現(xiàn)代信息科技 2021年7期
關鍵詞:可視化

摘要:為了實現(xiàn)一維用戶閱讀數(shù)據(jù)的關聯(lián)化與可視化,分析了圖數(shù)據(jù)庫在數(shù)據(jù)挖掘方面的優(yōu)勢,以西安航空學院2020年的202 941條用戶閱讀數(shù)據(jù)為數(shù)據(jù)源,基于圖數(shù)據(jù)模型,采用Neo4j技術,定義了7類實體、6類關系及其屬性,構建了用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫。結合查詢功能,討論了Neo4j用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫在數(shù)據(jù)查詢、圖書推薦等方面的應用,希望為圖書館資源與服務建設等提供有效的數(shù)據(jù)支持及技術指導。

關鍵詞:Neo4j圖數(shù)據(jù)庫;用戶閱讀數(shù)據(jù);數(shù)據(jù)庫設計;可視化

中圖分類號:TP311.13? ? ? ?文獻標識碼:A 文章編號:2096-4706(2021)07-0095-07

Application of User Reading Data Graph Database Based on Neo4j

CHAI Yuan

(Library of Xian Aeronautical University,Xian? 710077,China)

Abstract:In order to realize the association and visualization of one-dimensional user reading data,the advantages of graph database in data mining are analyzed. Taking 202 941 pieces of user reading data of Xian Aeronautical University in 2020 as the data source,based on the graph data model,Neo4j technology is used to define 7 types of entities,6 types of relationships and their attributes,build a user reading data graph database. Combined with the query function,this paper discusses the application of Neo4j user reading data graph database in data query,book recommendation,etc.,hoping to provide effective data support and technical guidance for the construction of library resources and services.

Keywords:Neo4j graph database;user reading data;database design;visualization

收稿日期:2021-03-21

基金項目:2019陜西省教育廳科研計劃項目(19JK0334);陜西省教育廳2020年度一般專項科學研究計劃項目(20JK0199)

0? 引? 言

圖數(shù)據(jù)庫(Graph Database)是基于圖論實現(xiàn)的一種新型的非關系型數(shù)據(jù)庫(NoSQL)[1],在圖數(shù)據(jù)庫中,數(shù)據(jù)與數(shù)據(jù)之間的關系通過節(jié)點和關系構成一個圖結構并在此結構上實現(xiàn)數(shù)據(jù)的創(chuàng)建、讀取、更新、刪除等[2]。因此,只要是反映節(jié)點和關系的任何數(shù)據(jù),都可以用圖數(shù)據(jù)庫技術重構與分析。

圖書館用戶閱讀數(shù)據(jù)屬于一維線性組織,只描述學生、圖書等信息,不區(qū)分實體和關系,關聯(lián)化和可視化程度較低。鑒于此,本文應用Neo4j圖數(shù)據(jù)庫技術,構建了用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫,并進行了應用分析。

1? Neo4j圖數(shù)據(jù)庫的優(yōu)勢

1.1? Neo4j的基本術語

Neo4j是由Java實現(xiàn)的開源NoSQL圖數(shù)據(jù)庫,是圖數(shù)據(jù)庫中較為流行的一款,它提供了完整的數(shù)據(jù)庫特性,包括ACID事務的支持、集群支持、備份與故障轉移等[3]。Neo4j的數(shù)據(jù)模型主要由節(jié)點、關系及其屬性構成。

節(jié)點(Node):用以表示一個實體記錄,在圖數(shù)據(jù)庫中用○表示。

關系(Relationship):用以表示節(jié)點之間的聯(lián)系,在圖數(shù)據(jù)庫中用-表示無向關系,->表示有向關系。

屬性(Property):用以表示節(jié)點和關系的特征,它以key-value對的形式存在。例如,ISBN、題名、出版社、分類號是圖書的屬性。

1.2? Neo4j圖數(shù)據(jù)庫的主要優(yōu)勢

1.2.1? 圖結構式存儲

關系型數(shù)據(jù)庫將數(shù)據(jù)存儲在一個預定義好的、結構固定的二維表格中,數(shù)據(jù)之間的關系靠各個表格行列之間的相互關聯(lián)實現(xiàn)。Neo4j采用圖存儲結構,節(jié)點和關系記錄由指向聯(lián)系和屬性列表的指針I(yè)D構成,且都用固定大小記錄,任何記錄都可以根據(jù)指針I(yè)D快速計算出來。

1.2.2? 免索引鄰接式查詢

關系型數(shù)據(jù)庫使用全局索引連接各個節(jié)點,這些索引對每個遍歷都會增加一個中間層,因此會導致非常大的計算成本。Neo4j圖數(shù)據(jù)庫具有免索引鄰接特性,每個節(jié)點都會維護與它相鄰節(jié)點的引用,即每個節(jié)點相當于與它相鄰節(jié)點的微索引,查詢時間和圖的整體規(guī)模無關,只與它附近節(jié)點的數(shù)量成正比。

1.2.3? Cypher聲明式查詢語言

關系型數(shù)據(jù)庫采用命令式的SQL查詢語言,復雜性會隨著連接數(shù)據(jù)查詢所需的join操作的數(shù)量而增加。Cypher是一種聲明式的模式匹配查詢語言,提供了描述關系查詢的最有效表達方式。

1.2.4? 圖數(shù)據(jù)可視化

關系型數(shù)據(jù)庫中,一般通過列表、表格、結構化報告和匯總分析與數(shù)據(jù)交互,需要閱讀和認知所有的數(shù)據(jù)才能完全理解數(shù)據(jù)的整體模式。Neo4j圖數(shù)據(jù)庫用可視化的方式對數(shù)據(jù)應用進行建模和管理[4],可以更加直觀地與數(shù)據(jù)交互。

2? 圖書館用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫的設計

2.1? 數(shù)據(jù)來源

以西安航空學院2020年的用戶閱讀數(shù)據(jù)為數(shù)據(jù)源,共202 941條記錄,包括7類、123 268個實體,涉及學生13 659個、年級4類、圖書63 124種、圖書作者44 613個、主題詞1 822個、專業(yè)34個、學院12個;包含6類、429 074個實體關系,涉及借閱關系202 941個、屬于關系34個、修讀關系13 659個、學業(yè)水平關系13 659個、標引關系122 941個、寫作關系75 840個。本文的構建圖數(shù)據(jù)模型如圖1所示。

2.2? 實體的構建

2.2.1? 數(shù)據(jù)編碼

數(shù)據(jù)編碼主要是為每一節(jié)點賦予一個唯一確定的指針I(yè)D,學生、專業(yè)、學院采用學號、專業(yè)代碼、學院代碼作為ID。年級ID為gra_01、gra_02、gra_03、gra_04,名稱分別對應為大一、大二、大三、大四;對圖書主題詞、作者進行編碼時,分別提取所有圖書的主題詞、作者,經(jīng)過去重,按照sub_0001、sub_0002、…sub_1822的順序賦予主題詞ID,按照aut_00001、aut_00002、…、aut_44613的順序賦予圖書作者ID。

2.2.2? 實體定義

抽取所有節(jié)點信息,分別創(chuàng)建student、book、grade、major、department、subject、author數(shù)據(jù)集,并以CSV格式存放到neo4j的import文件夾中。使用LOAD CSV WITH HEADERS FROM "file:///URL" AS line命令加載,URL即數(shù)據(jù)集的位置,“l(fā)ine”為指定變量。使用MERGE語句,創(chuàng)建節(jié)點并指定標簽和屬性。

例如,創(chuàng)建學生節(jié)點的命令為:

(s:Student{stu_ID:line.stu_ID,stu_name:line.stu_name})

命令中,()表示節(jié)點,s表示節(jié)點變量,Student表示節(jié)點標簽,用于節(jié)點分類并創(chuàng)建子圖,{}中的命令是節(jié)點的屬性。文中的部分節(jié)點創(chuàng)建如表1所示。

2.3? 關系的構建

創(chuàng)建student_to_book、major_to_department、student_to_major、student_to_grade、author_to_book數(shù)據(jù)集,并以CSV格式存放到neo4j的import文件夾中。確定(from)->(to)模

式,即將前一個節(jié)點的ID作為起點(from),后一個節(jié)點的ID作為終點(to),使用match語句檢索數(shù)據(jù)庫。使用MERGE語句,創(chuàng)建關系并指定標簽和屬性。

例如,借閱關系命令為:

match (from:Student{stu_ID:line.stu_ID}),(to:Book{ISBN: line.ISBN}) merge (from)-[r:借閱{stu_ID:line.stu_ID,ISBN:line. ISBN}]->(to)

命令中,(from:Student{stu_ID:line.stu_ID})表示起點節(jié)點,(to:Book{ISBN:line.ISBN})表示終點節(jié)點,from、to表示變量,Student、Book表示節(jié)點標簽,{}中的命令表示屬性,[]中的命令表示關系,r表示關系變量,借閱表示關系標簽。本文部分關系創(chuàng)建如表2所示。

實體、關系構建完成后,使用Cypher查詢語言運行并可視化顯示,部分結果如圖2所示。

圖2包括查詢命令和顯示區(qū)域,它提供了圖形(Graph)、表格(Table)、文本(Text)、代碼(Code)四種顯示方式。節(jié)點、關系可以設置不同的顏色及大小。點擊任意元素可以查看其屬性、關系網(wǎng)絡等,也可以進行拖動、隱藏、鎖定等功能操作,如點擊學生項子軼的姓名,可以查看其借閱的圖書《易》理,以及該書的作者陶有浩、標引的主題詞先秦哲學等。

3? 圖書館用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫的應用

3.1? 數(shù)據(jù)查詢

3.1.1? 單一關系查詢

Neo4j用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫將學生、年級、專業(yè)、學院、圖書、主題、作者等節(jié)點通過借閱、修讀、學業(yè)水平、屬于、標引、寫作等關系連接起來,既可以通過單一關系、多維度關系查詢節(jié)點的直接關系,又可以通過路徑查詢發(fā)現(xiàn)節(jié)點間的潛在關系:

(1)查詢學生的借閱情況,了解閱讀偏好,分析閱讀興趣。例如,查詢“蔣嘯龍”所借閱的圖書,統(tǒng)計圖書的分類號,并按降序排列,命令為:

match (b{stu_name:'蔣嘯龍'})-[:借閱]->(n:Book)

return n.CLC,count(n.CLC) as q

order by q DESC

查詢結果如圖3、表3所示。

由圖3、表3可見,蔣嘯龍共借閱圖書14種,分類號主要集中在B-4(哲學教育與普及)、B82倫理學(道德哲學)、B0哲學理論、B2中國哲學、I267(中國當代作品)、A75(毛澤東)、H319.4(外文讀物)等,可見,蔣嘯龍的閱讀興趣集中在中國哲學、當代文學及相關英文讀物方面。

(2)查詢圖書的被借閱情況,統(tǒng)計圖書的利用率。例如,查詢“譯林出版社”出版的《資本論》(中)的借閱情況,命令為:

match (n)-[:借閱]->(b:Book{title:資本論(中)',publisher:'譯林出版社'})

return n,b

查詢結果如圖4所示,這本書被借閱過15次。

統(tǒng)計題名中含有“資本論”的圖書被借閱的次數(shù),命令為:

match (n:Student)-[:借閱]->(b:Book)

where b.title contains '資本論'

return count(n)

結果顯示,共計75次,則《資本論》(中)在同類書中的利用率是20%,略低。

3.1.2? 多維度關系查詢

查詢“計算機科學與技術”專業(yè)各年級學生借閱圖書的主題,大一年級的查詢命令如下,其他年級類似:

match (g{gra_name:大一})<-[:學業(yè)水平]-(n)-[:修讀]-> (m{maj_name:'計算機科學與技術'}), (n)-[:借閱]->(b)<—[:標引]-(l:Subject)

return l.sub_name, count(*) as q

order by q DESC limit 10

3.1.3? 路徑查詢

(1)最短路徑查詢。通過shortestPath函數(shù)發(fā)現(xiàn)兩個節(jié)點之間的最短路徑[5],例如,尋找張凱與《平凡的世界》間的最短路徑,命令如下,限制輸出3條:

match (s:Student{stu_name:'張凱'}),(b:Book{title:'平凡的世界'}),p=allShortestPaths((s)-[*]-(b))

return p limit 3

查詢結果如圖5所示。

由圖5可見,路徑1:張凱—飛行器設計與工程—王佳翔—走向衰榮·明—小說集—平凡的世界。路徑2:張凱—大二—王佳翔—走向衰榮·明—小說集—平凡的世界。路徑3:張凱—大二—趙超—走向衰榮·明—小說集—平凡的世界。

(2)變長路徑查詢。如果節(jié)點或關系的屬性發(fā)生變化,聯(lián)系也發(fā)生變化。Neo4j提供變長路徑查詢,表示方式是:[*N..M],N和M表示路徑長度的最小值和最大值[6]。例如,查詢與《深度學習的數(shù)學》路徑長度的最大值是4的學生及專業(yè),限制輸出5個。命令為:

MATCH (b:Book {title:"深度學習的數(shù)學"? })-[*..4]-(n: Student)-[:修讀]-(m)

return n.stu_name,m.maj_name limit 5

查詢結果,如表4所示。

3.2? 資源推薦

3.2.1? 基于借閱記錄的推薦

根據(jù)讀者的借閱歷史,發(fā)現(xiàn)相同的閱讀偏好,進行圖書推薦。例如,s1、s2的借閱記錄中有相同的圖書,則將s1(s2)借閱記錄中s2(s1)沒有借閱的圖書推薦給s2(s1)。查詢命令為:

match (s1:Student)-[:借閱]->(b1:Book)<-[:借閱]-(s2:Student)- [:借閱]->(b2:Book)

where not ((s1)-[:借閱]->(b2))

return s1.stu_name as FirstPerson,s2.stu_name as Second Person,b1.title as CommonBook,b2.title as RecommendedBook limit 1

命令中,match語句查詢s1、s2的借閱記錄b1、b2;where not添加約束條件,即過濾掉b2中s1借閱的圖書;返回s1、s2的姓名并指定標簽為FirstPerson、SecondPerson,返回b1的題名作為相同圖書(CommonBoo),b1的題名作為推薦圖書(RecommendedBook),數(shù)據(jù)量比較大,所以限制輸出1行,查詢結果如表5所示。

由表5可見,賀詠仙與涂永孟都借閱了圖書《中國震撼:一個“文明型國家”的崛起》,推斷出二者可能具有相似的閱讀偏好,所以將涂永孟借閱過的而賀詠仙沒有借閱的《周恩來總理生涯》等10種圖書推薦給后者,實現(xiàn)基于借閱記錄的圖書個性化推薦。

3.2.2? 基于主題或作者忠誠度的推薦

在借閱行為中,讀者多次表現(xiàn)出來對某個主題或作者有偏向性的(而非隨意的)行為反應。例如,讀者s已借閱了一本“航空”主題的圖書,那么他很可能對這一主題的其他圖書也感興趣。查詢命令為:

match (s:Student)-[:借閱]->(b1:Book)<-[:標引]-(y:Subject {sub_name:'航空'})-[:標引]->(b2:Book)

with s,y,b2,count(b1) as f

where not ((s)-[:借閱]->(b2)) and f>2

return s.stu_name as Student,collect(b2.title limit 5) as RecommendedBooks

order by student DESC limit 5

命令中,統(tǒng)計s借閱的航空類圖書,設定閾值f>2,提高s與“航空”主題的相似性,增強推薦圖書對s的吸引力。應用collect函數(shù)將推薦的圖書(RecommendedBooks )以列表的形式返回,限制推薦5種。s按f降序排列,限制輸出5個。查詢結果如表6所示。

表6中,student借閱了航空類圖書,推斷出可能是專業(yè)學習需要或者興趣使然,所以將相關圖書推薦給他們。

3.2.3? 基于社交網(wǎng)絡的推薦

讀者所在的年級、專業(yè)、學院等元素構成一個社交網(wǎng)絡,相同社交網(wǎng)絡中相同的元素具有相似的閱讀偏好和閱讀行為。例如,找出借閱過某本書的學生,發(fā)現(xiàn)沒有借閱過這些圖書并對此圖書感興趣的學生。命令為:

match (b1:Book)<-[:借閱]-(s1:Student)-[:修讀]->(m:Major {maj_name:'計算機科學與技術'})<-[:修讀]-(s2:Student)-[:借閱]->(b2:Book),(s1)-[:學業(yè)水平]->(g:Grade{gra_name:'大二'})<-[:學業(yè)水平]-(s2)

where not((s2)-[:借閱]->(b1))

return s1.stu_name as Student,b1.title as RecommendedBook, collect(s2.stu_name limit 5) as ForS2? limit 5

命令中,s1、s2都是計算機科學與技術專業(yè)中大二的學生,s1、s2的借閱集合分別是b1、b2,過濾掉b1中s2的借閱記錄,發(fā)現(xiàn)對b1中其他圖書感興趣的學生集合ForS2,進行圖書推薦,如表7所示。

4? 結? 論

Neo4j圖數(shù)據(jù)庫采用圖結構式存儲、免索引鄰接查詢、圖可視化顯示、Cypher聲明式查詢語言等,提供高效的查詢和數(shù)據(jù)關系處理功能。本文以西安航空學院2020年的202 941條用戶閱讀數(shù)據(jù)為數(shù)據(jù)源,采用Neo4j技術構建了相關圖數(shù)據(jù)庫,實現(xiàn)了一維用戶閱讀數(shù)據(jù)的關聯(lián)化與可視化。結合查詢功能,深入分析了Neo4j用戶閱讀數(shù)據(jù)圖數(shù)據(jù)庫在數(shù)據(jù)查詢、Jaccard相似度計算、圖書推薦等方面的作用,希望為圖書館資源建設、閱讀推廣、學科服務等提供有效的數(shù)據(jù)支持及技術指導。

參考文獻:

[1] ROBINSON I,WEBBER J,EIFREM E. Graph Databases [M].2th ed.Cambridge:OReilly Media,2015.

[2] HANS M,CHRISTIAN B,DRAGOS S D,et al. Using Graph Databases to Investigate Trends in Structure-Activity Relationship Networks [J].Journal of chemical information and modeling,2020,60(12):6120-6134.

[3] VUKOTIC A,WATT N,ABEDRABBO T,et al. Neo4j in Action [M].張秉森,孔倩,張晨策,譯.北京:機械工業(yè)出版社,2016.

[4] SHI Cheng,JIA JieShen,QUAN Shi,et al. Xianyi Cheng. Research on the construction of three level customer service knowledge graph [J].IOP Conference Series:Materials Science and Engineering,2017,242(1):1-6.

[5] 于娟,黃恒琪,席運江,等.基于圖數(shù)據(jù)庫的人物關系知識圖譜推理方法研究 [J].情報科學,2019,37(10):8-12.

[6] 李金陽.圖數(shù)據(jù)庫在圖書館的應用研究 [J].圖書館,2020(11):109-115.

作者簡介:柴源(1985—),男,漢族,陜西西安人,館員,碩士,研究方向:知識組織與知識管理。

猜你喜歡
可視化
無錫市“三項舉措”探索執(zhí)法可視化新路徑
基于CiteSpace的足三里穴研究可視化分析
自然資源可視化決策系統(tǒng)
北京測繪(2022年6期)2022-08-01 09:19:06
三維可視化信息管理系統(tǒng)在選煤生產(chǎn)中的應用
選煤技術(2022年2期)2022-06-06 09:13:12
思維可視化
師道·教研(2022年1期)2022-03-12 05:46:47
基于Power BI的油田注水運行動態(tài)分析與可視化展示
云南化工(2021年8期)2021-12-21 06:37:54
自然資源可視化決策系統(tǒng)
北京測繪(2021年7期)2021-07-28 07:01:18
基于CGAL和OpenGL的海底地形三維可視化
可視化閱讀:新媒體語境下信息可視化新趨勢
“融評”:黨媒評論的可視化創(chuàng)新
傳媒評論(2019年4期)2019-07-13 05:49:14
主站蜘蛛池模板: 亚洲一本大道在线| 澳门av无码| 日韩亚洲综合在线| 国产在线98福利播放视频免费| 国产高清无码麻豆精品| 中文字幕在线播放不卡| 欧美综合区自拍亚洲综合绿色| 四虎永久免费在线| 伊人久久久久久久| 91蝌蚪视频在线观看| 欧美亚洲日韩中文| 婷婷综合缴情亚洲五月伊| 毛片在线看网站| 日韩色图区| 在线一级毛片| 国产真实二区一区在线亚洲| 欧美一级在线| 亚洲日本中文字幕乱码中文| 无码高潮喷水在线观看| 成人亚洲天堂| 色国产视频| 情侣午夜国产在线一区无码| 秘书高跟黑色丝袜国产91在线 | 老司国产精品视频| 日韩av在线直播| 国内精品视频在线| 国产精品一区二区不卡的视频| 国产精品一区在线观看你懂的| 91色在线观看| 婷婷色中文网| 小蝌蚪亚洲精品国产| 91探花在线观看国产最新| 女同国产精品一区二区| 无码综合天天久久综合网| 国产欧美在线观看视频| 国产激爽爽爽大片在线观看| 午夜高清国产拍精品| 色网站免费在线观看| 日韩区欧美区| 精品伊人久久久久7777人| 欧美成人综合视频| 手机在线看片不卡中文字幕| 色屁屁一区二区三区视频国产| 日韩无码真实干出血视频| 色呦呦手机在线精品| 91视频国产高清| 国产三级视频网站| 红杏AV在线无码| 毛片免费在线视频| 又粗又硬又大又爽免费视频播放| 99国产精品国产| 亚洲一区免费看| 无码一区中文字幕| 亚洲成人精品在线| 国产在线91在线电影| 免费高清a毛片| 午夜视频免费试看| 18禁黄无遮挡网站| 国产69囗曝护士吞精在线视频| 国产精品视频白浆免费视频| 久久久久久久久亚洲精品| 中文字幕在线播放不卡| 天天色综合4| 日韩毛片免费视频| 精品国产污污免费网站| 免费av一区二区三区在线| 免费国产黄线在线观看| 美女免费黄网站| 99成人在线观看| 久久精品人人做人人爽电影蜜月 | 伊人久综合| 大香网伊人久久综合网2020| 亚洲国产综合第一精品小说| 精品国产成人av免费| 人妻精品久久无码区| 97青青青国产在线播放| 国产成人免费| 国产成人在线无码免费视频| 欧美精品黑人粗大| 乱人伦视频中文字幕在线| 日韩毛片免费| 青青操国产|