知识图谱的构建及用Neo4j和grapheco/InteractiveGraph实现知识图谱的可视化

Posted 魏晓蕾

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识图谱的构建及用Neo4j和grapheco/InteractiveGraph实现知识图谱的可视化相关的知识,希望对你有一定的参考价值。

1、什么是知识图谱

知识图谱就是将现实世界中的知识,包括文字、图像,甚至现实生活中的实体对象和他们之间的关系用图形化进行表达,形成一个图状的结构,用以描述实体对象间的关系,并依据这些关系进行推荐系统、关联搜索(搜索到与输入词相关的词或文章)、问答系统、社交网络构建等等。

2、知识图谱的构建

知识图谱的构建步骤如下:
(1)知识建模:根据所需要构建的领域知识,对知识建模,包括实体定义、关系定义、事件定义等,建模出我们需要的知识包括哪些部分。
(2)知识获取:对于需要的知识,运用自然语言处理从文字中,或运用图像分类识别方式从图像中,提取出我们需要的数据,包括运用大数据分析方式进行结构化和非结构化的数据提取、运用爬虫技术爬取网络上的半结构化数据。
(3)知识抽取:将获取到的文本和图像信息进行知识抽取,包括实体抽取(抽取出知识所描述的实体对象)、关系抽取(抽取出实体之间存在的关系)、属性抽取(抽取出实体所拥有的属性),形成知识单元(包括实体、关系及属性三个知识要素)。
(4)知识表示:将抽取出的知识用图状结构表示出来,形成一个网状的结构,用以展示知识单元中的实体、关系及实体拥有的属性。
(5)知识融合:将不同来源的、质量不同的知识去粗取精、整合、加工,形成更有针对性的、效率更高的、高质量的知识,优化知识库
(6)知识存储:将构建的知识库中的知识进行存储,采用HBase、ClickHouse、Redis等构建分布式数据库,将构建好的知识库存储下来。
(7)知识计算:在构建好的知识库中发现实体之间隐含的关系及更多的知识,比如知识推理、图最短路径查询等方式。
(8)知识应用:应用于推荐系统、关联搜索(搜索到与输入词相关的词或文章)、问答系统、社交网络构建等等场景。

3、Neo4j Sandbox 构建知识图谱

图形数据库:是以图形结构的形式存储数据的数据库。 它以节点,关系和属性的形式存储应用程序的数据。 正如RDBMS以表的“行,列”的形式存储数据,GDBMS以“图形”的形式存储数据。
Neo4j是一个很常用的图数据库。

> MATCH (n:Person) RETURN n

> MATCH (n:Movie) RETURN n

> MATCH (n) RETURN n

> MATCH (n) DETACH DELETE n

CREATE (n1:Teacher name:"Mr.Lee)
CREATE (n2:Student name:"Alice")
CREATE (n1)-[r:BASIC]->(n2)
RETURN n1, n2

4、Neo4j Desktop 构建知识图谱

Neo4j 官网下载 Neo4j Desktop 并安装。

> :play movie-graph

> MATCH (n) DETACH DELETE n

CREATE (TheMatrix:Movie title:'The Matrix', released:1999, tagline:'Welcome to the Real World')
CREATE (Keanu:Person name:'Keanu Reeves', born:1964)
CREATE (Carrie:Person name:'Carrie-Anne Moss', born:1967)
CREATE (Laurence:Person name:'Laurence Fishburne', born:1961)
CREATE (Hugo:Person name:'Hugo Weaving', born:1960)
CREATE (LillyW:Person name:'Lilly Wachowski', born:1967)
CREATE (LanaW:Person name:'Lana Wachowski', born:1965)
CREATE (JoelS:Person name:'Joel Silver', born:1952)
CREATE
(Keanu)-[:ACTED_IN roles:['Neo']]->(TheMatrix),
(Carrie)-[:ACTED_IN roles:['Trinity']]->(TheMatrix),
(Laurence)-[:ACTED_IN roles:['Morpheus']]->(TheMatrix),
(Hugo)-[:ACTED_IN roles:['Agent Smith']]->(TheMatrix),
(LillyW)-[:DIRECTED]->(TheMatrix),
(LanaW)-[:DIRECTED]->(TheMatrix),
(JoelS)-[:PRODUCED]->(TheMatrix)

CREATE (Emil:Person name:"Emil Eifrem", born:1978)
CREATE (Emil)-[:ACTED_IN roles:["Emil"]]->(TheMatrix)

CREATE (TheMatrixReloaded:Movie title:'The Matrix Reloaded', released:2003, tagline:'Free your mind')
CREATE
(Keanu)-[:ACTED_IN roles:['Neo']]->(TheMatrixReloaded),
(Carrie)-[:ACTED_IN roles:['Trinity']]->(TheMatrixReloaded),
(Laurence)-[:ACTED_IN roles:['Morpheus']]->(TheMatrixReloaded),
(Hugo)-[:ACTED_IN roles:['Agent Smith']]->(TheMatrixReloaded),
(LillyW)-[:DIRECTED]->(TheMatrixReloaded),
(LanaW)-[:DIRECTED]->(TheMatrixReloaded),
(JoelS)-[:PRODUCED]->(TheMatrixReloaded)

CREATE (TheMatrixRevolutions:Movie title:'The Matrix Revolutions', released:2003, tagline:'Everything that has a beginning has an end')
CREATE
(Keanu)-[:ACTED_IN roles:['Neo']]->(TheMatrixRevolutions),
(Carrie)-[:ACTED_IN roles:['Trinity']]->(TheMatrixRevolutions),
(Laurence)-[:ACTED_IN roles:['Morpheus']]->(TheMatrixRevolutions),
(Hugo)-[:ACTED_IN roles:['Agent Smith']]->(TheMatrixRevolutions),
(LillyW)-[:DIRECTED]->(TheMatrixRevolutions),
(LanaW)-[:DIRECTED]->(TheMatrixRevolutions),
(JoelS)-[:PRODUCED]->(TheMatrixRevolutions)

CREATE (TheDevilsAdvocate:Movie title:"The Devil's Advocate", released:1997, tagline:'Evil has its winning ways')
CREATE (Charlize:Person name:'Charlize Theron', born:1975)
CREATE (Al:Person name:'Al Pacino', born:1940)
CREATE (Taylor:Person name:'Taylor Hackford', born:1944)
CREATE
(Keanu)-[:ACTED_IN roles:['Kevin Lomax']]->(TheDevilsAdvocate),
(Charlize)-[:ACTED_IN roles:['Mary Ann Lomax']]->(TheDevilsAdvocate),
(Al)-[:ACTED_IN roles:['John Milton']]->(TheDevilsAdvocate),
(Taylor)-[:DIRECTED]->(TheDevilsAdvocate)

CREATE (AFewGoodMen:Movie title:"A Few Good Men", released:1992, tagline:"In the heart of the nation's capital, in a courthouse of the U.S. government, one man will stop at nothing to keep his honor, and one will stop at nothing to find the truth.")
CREATE (TomC:Person name:'Tom Cruise', born:1962)
CREATE (JackN:Person name:'Jack Nicholson', born:1937)
CREATE (DemiM:Person name:'Demi Moore', born:1962)
CREATE (KevinB:Person name:'Kevin Bacon', born:1958)
CREATE (KieferS:Person name:'Kiefer Sutherland', born:1966)
CREATE (NoahW:Person name:'Noah Wyle', born:1971)
CREATE (CubaG:Person name:'Cuba Gooding Jr.', born:1968)
CREATE (KevinP:Person name:'Kevin Pollak', born:1957)
CREATE (JTW:Person name:'J.T. Walsh', born:1943)
CREATE (JamesM:Person name:'James Marshall', born:1967)
CREATE (ChristopherG:Person name:'Christopher Guest', born:1948)
CREATE (RobR:Person name:'Rob Reiner', born:1947)
CREATE (AaronS:Person name:'Aaron Sorkin', born:1961)
CREATE
(TomC)-[:ACTED_IN roles:['Lt. Daniel Kaffee']]->(AFewGoodMen),
(JackN)-[:ACTED_IN roles:['Col. Nathan R. Jessup']]->(AFewGoodMen),
(DemiM)-[:ACTED_IN roles:['Lt. Cdr. JoAnne Galloway']]->(AFewGoodMen),
(KevinB)-[:ACTED_IN roles:['Capt. Jack Ross']]->(AFewGoodMen),
(KieferS)-[:ACTED_IN roles:['Lt. Jonathan Kendrick']]->(AFewGoodMen),
(NoahW)-[:ACTED_IN roles:['Cpl. Jeffrey Barnes']]->(AFewGoodMen),
(CubaG)-[:ACTED_IN roles:['Cpl. Carl Hammaker']]->(AFewGoodMen),
(KevinP)-[:ACTED_IN roles:['Lt. Sam Weinberg']]->(AFewGoodMen),
(JTW)-[:ACTED_IN roles:['Lt. Col. Matthew Andrew Markinson']]->(AFewGoodMen),
(JamesM)-[:ACTED_IN roles:['Pfc. Louden Downey']]->(AFewGoodMen),
(ChristopherG)-[:ACTED_IN roles:['Dr. Stone']]->(AFewGoodMen),
(AaronS)-[:ACTED_IN roles:['Man in Bar']]->(AFewGoodMen),
(RobR)-[:DIRECTED]->(AFewGoodMen),
(AaronS)-[:WROTE]->(AFewGoodMen)

CREATE (TopGun:Movie title:"Top Gun", released:1986, tagline:'I feel the need, the need for speed.')
CREATE (KellyM:Person name:'Kelly McGillis', born:1957)
CREATE (ValK:Person name:'Val Kilmer', born:1959)
CREATE (AnthonyE:Person name:'Anthony Edwards', born:1962)
CREATE (TomS:Person name:'Tom Skerritt', born:1933)
CREATE (MegR:Person name:'Meg Ryan', born:1961)
CREATE (TonyS:Person name:'Tony Scott', born:1944)
CREATE (JimC:Person name:'Jim Cash', born:1941)
CREATE
(TomC)-[:ACTED_IN roles:['Maverick']]->(TopGun),
(KellyM)-[:ACTED_IN roles:['Charlie']]->(TopGun),
(ValK)-[:ACTED_IN roles:['Iceman']]->(TopGun),
(AnthonyE)-[:ACTED_IN roles:['Goose']]->(TopGun),
(TomS)-[:ACTED_IN roles:['Viper']]->(TopGun),
(MegR)-[:ACTED_IN roles:['Carole']]->(TopGun),
(TonyS)-[:DIRECTED]->(TopGun),
(JimC)-[:WROTE]->(TopGun)

CREATE (JerryMaguire:Movie title:'Jerry Maguire', released:2000, tagline:'The rest of his life begins now.')
CREATE (ReneeZ:Person name:'Renee Zellweger', born:1969)
CREATE (KellyP:Person name:'Kelly Preston', born:1962)
CREATE (JerryO:Person name:"Jerry O'Connell", born:1974)
CREATE (JayM:Person name:'Jay Mohr', born:1970)
CREATE (BonnieH:Person name:'Bonnie Hunt', born:1961)
CREATE (ReginaK:Person name:'Regina King', born:1971)
CREATE (JonathanL:Person name:'Jonathan Lipnicki', born:1996)
CREATE (CameronC:Person name:'Cameron Crowe', born:1957)
CREATE
(TomC)-[:ACTED_IN roles:['Jerry Maguire']]->(JerryMaguire),
(CubaG)-[:ACTED_IN roles:['Rod Tidwell']]->(JerryMaguire),
(ReneeZ)-[:ACTED_IN roles:['Dorothy Boyd']]->(JerryMaguire),
(KellyP)-[:ACTED_IN roles:['Avery Bishop']]->(JerryMaguire),
(JerryO)-[:ACTED_IN roles:['Frank Cushman']]->(JerryMaguire),
(JayM)-[:ACTED_IN roles:['Bob Sugar']]->(JerryMaguire),
(BonnieH)-[:ACTED_IN roles:['Laurel Boyd']]->(JerryMaguire),
(ReginaK)-[:ACTED_IN roles:['Marcee Tidwell']]->(JerryMaguire),
(JonathanL)-[:ACTED_IN roles:['Ray Boyd']]->(JerryMaguire),
(CameronC)-[:DIRECTED]->(JerryMaguire),
(CameronC)-[:PRODUCED]->(JerryMaguire),
(CameronC)-[:WROTE]->(JerryMaguire)

CREATE (StandByMe:Movie title:"Stand By Me", released:1986, tagline:"For some, it's the last real taste of innocence, and the first real taste of life. But for everyone, it's the time that memories are made of.")
CREATE (RiverP:Person name:'River Phoenix', born:1970)
CREATE (CoreyF:Person name:'Corey Feldman', born:1971)
CREATE (WilW:Person name:'Wil Wheaton', born:1972)
CREATE (JohnC:Person name:'John Cusack', born:1966)
CREATE (MarshallB:Person name:'Marshall Bell', born:1942)
CREATE
(WilW)-[:ACTED_IN roles:['Gordie Lachance']]->(StandByMe),
(RiverP)-[:ACTED_IN roles:['Chris Chambers']]->(StandByMe),
(JerryO)-[:ACTED_IN roles:['Vern Tessio']]->(StandByMe),
(CoreyF)-[:ACTED_IN roles:['Teddy Duchamp']]->(StandByMe),
(JohnC)-[:ACTED_IN roles:['Denny Lachance']]->(StandByMe),
(KieferS)-[:ACTED_IN roles:['Ace Merrill']]->(StandByMe),
(MarshallB)-[:ACTED_IN roles:['Mr. Lachance']]->(StandByMe),
(RobR)-[:DIRECTED]->(StandByMe)

CREATE (AsGoodAsItGets:Movie title:'As Good as It Gets', released:1997, tagline:'A comedy from the heart that goes for the throat.')
CREATE (HelenH:Person name:'Helen Hunt', born:1963)
CREATE (GregK:Person name:'Greg Kinnear', born:1963)
CREATE (JamesB:Person name:'James L. Brooks', born:1940)
CREATE
(JackN)-[:ACTED_IN roles:['Melvin Udall']]->(AsGoodAsItGets),
(HelenH)-[:ACTED_IN roles:['Carol Connelly']]->(AsGoodAsItGets),
(GregK)-[:ACTED_IN roles:['Simon Bishop']]->(AsGoodAsItGets),
(CubaG)-[:ACTED_IN roles:['Frank Sachs']]->(AsGoodAsItGets),
(JamesB)-[:DIRECTED]->(AsGoodAsItGets)

CREATE (WhatDreamsMayCome:Movie title:'What Dreams May Come', released:1998, tagline:'After life there is more. The end is just the beginning.')
CREATE (AnnabellaS:Person name:'Annabella Sciorra', born:1960)
CREATE (MaxS:Person name:'Max von Sydow', born:1929)
CREATE (WernerH:Person name:'Werner Herzog', born:1942)
CREATE (Robin:Person name:'Robin Williams', born:1951)
CREATE (VincentW:Person name:'Vincent Ward', born:1956)
CREATE
(Robin)-[:ACTED_IN roles:['Chris Nielsen']]->(WhatDreamsMayCome),
(CubaG)-[:ACTED_IN roles:['Albert Lewis']]->(WhatDreamsMayCome),
(AnnabellaS)-[:ACTED_IN roles:['Annie Collins-Nielsen']]->(WhatDreamsMayCome),
(MaxS)-[:ACTED_IN roles:['The Tracker']]->(WhatDreamsMayCome),
(WernerH)-[:ACTED_IN roles:['The Face']]->(WhatDreamsMayCome),
(VincentW)-[:DIRECTED]->(WhatDreamsMayCome)

CREATE (SnowFallingonCedars:Movie title:'Snow Falling on Cedars', released:1999, tagline:'First loves last. Forever.')
CREATE (EthanH:Person name:'Ethan Hawke', born:1970)
CREATE (RickY:Person name:'Rick Yune', born:1971)
CREATE (JamesC:Person name:'James Cromwell', born:1940)
CREATE (ScottH:Person name:'Scott Hicks', born:1953)
CREATE
(EthanH)-[:ACTED_IN roles:['Ishmael Chambers']]->(SnowFallingonCedars),
(RickY)-[:ACTED_IN roles:['Kazuo Miyamoto']]->(SnowFallingonCedars),
(MaxS)-[:ACTED_IN roles:['Nels Gudmundsson']]->(SnowFallingonCedars),
(JamesC

以上是关于知识图谱的构建及用Neo4j和grapheco/InteractiveGraph实现知识图谱的可视化的主要内容,如果未能解决你的问题,请参考以下文章

花卉知识图谱KG构建-Neo4j数据库导入篇

python+neo4j构建基于知识图谱的电影知识智能问答系统

快速入门知识图谱 - Neo4J Cypher查询语言教程

快速入门知识图谱 - Neo4J Cypher查询语言教程

快速入门知识图谱 - Neo4J Cypher查询语言教程

安装Neo4j构建知识图谱+处理连接错误:ServiceUnavailable: WebSocket connection failure. Due to security constraints i