知识图谱和neo4j的基本 *** 作

知识图谱和neo4j的基本 *** 作,第1张

概述一.知识图谱的简介 1.知识图谱是什么 知识图谱本质上是语义网络(Semantic Network)的知识库 可以理解为一个关系图网络。 2.什么是图 图(Graph)是由节点(Vertex)和边(E 一.知识图谱的简介1.知识图谱是什么

知识图谱本质上是语义网络(Semantic Network)的知识库

  可以理解为一个关系图网络。

2.什么是图

图(Graph)是由节点(Vertex)和边(Edge)来构成,多关系图一般包含多种类型的节点和多种类型的边。

3.什么是Schema

限定待加入知识图谱数据的格式;相当于某个领域内的数据模型,包含了该领域内有意义的概念类型以及这些类型的属性

二.知识图谱的构建1.数据来源

结构化数据和非结构化数据,前者可能是本地数据库中的信息,后者主要是在网页上抓取的信息。

2.涉及的技术

命名实体识别,关系抽取等自然语言处理技术。

三.知识图谱的存储
一种是基于RDF的存储;另一种是基于图数据库的存储。

  RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。其中Neo4j系统目前仍是使用率最高的图数据库,它拥有活跃的社区,而且系统本身的查询效率高,但唯一的不足就是不支持准分布式。

 

 四.Neo4j的介绍

Neo4j为常用的图数据库之一。

  Neo4j的安装很简单,先到官方网站Neo4j下载,下载完压缩包之后直接解压缩,然后配置好环境变量,可以按照这篇博客的方法https://www.cnblogs.com/jpfss/p/10874303.HTML。

  之后我们在浏览器内输入http://127.0.0.1:7474/browser/就进入了Neo4j的界面。

 

 

 

 五.Neo4j的基本 *** 作

 

//删库MATCH (n) DETACH DELETE n创建人物结点CREATE (n:Person {name:'John'}) RETURN n创建地区结点 CREATE (n:Location {city:Miami',state:FL})创建朋友关系MATCH (a:Person {name:liz}),(b:Person {name:Mike})   MERGE (a)-[:FRIENDS]->(b)创建出生地关系 MATCH (a:Person {name:'}),(b:Location {city:Boston'}) MERGE (a)-[:BORN_IN {year:1978}]->(b);  MATCH (a:Person {name:1981}]->(b);按照出生地查询MATCH (a:Person)-[:BORN_IN]->(b:Location {city:}) RETURN a,b查询所有对外有关系的结点和类型 MATCH (a)-[r]->() RETURN a.name,type(r)查询所有婚姻关系的结点  MATCH (n)-[:MARRIED]-() RETURN n查找某人朋友的朋友MATCH (a:Person {name:'})-[r1:FRIENDS]-()-[r2:FRIENDS]-(frIEnd_of_a_frIEnd) RETURN frIEnd_of_a_frIEnd.name AS fofname增加或者修改结点属性MATCH (a:Person {name:'}) SET a.age=34删除结点属性  MATCH (a:Person {name:'}) SET a.test=test;  MATCH (a:Person {name:'}) REMOVE a.test;

 

六.在python中 *** 纵neo4j1.neo4j模块
  # step 1:导入 Neo4j 驱动包  from neo4j import GraphDatabase   step 2:连接 Neo4j 图数据库  driver = GraphDatabase.driver("bolt://localhost:7687",auth=(neo4jpassword"))   添加 关系 函数  def add_frIEnd(tx,name,frIEnd_name):      tx.run(MERGE (a:Person {name: $name}) "            MERGE (a)-[:KNowS]->(frIEnd:Person {name: $frIEnd_name}),name=name,frIEnd_name=frIEnd_name)   定义 关系函数   print_frIEnds(tx,name):      for record in tx.run(MATCH (a:Person)-[:KNowS]->(frIEnd) WHERE a.name = $name "                          RETURN frIEnd.name ORDER BY frIEnd.namename):          print(record[frIEnd.name])   step 3:运行  with driver.session() as session:      session.write_transaction(add_frIEnd,ArthurGuinevere)      session.write_transaction(add_frIEnd,1)">Lancelotmerlin)      session.read_transaction(print_frIEnds,1)">")

 注意这里的密码要改成自己的,否则无法正常登陆。运行完上面的脚本后,就出现了如下的结点和边:

 

 2.py2neo模块
 step 1:导包from py2neo  Graph,Node,Relationship step 2:构建图g = Graph(http://localhost:7474)) step 3:创建节点tx = g.begin()a = Node(PersonAlice)tx.create(a)b = Node(Bob) step 4:创建边ab = Relationship(a,1)">KNowS step 5:运行tx.create(ab)tx.commit()

 

 

 

 

 

 

 

 

 

 

总结

以上是内存溢出为你收集整理的知识图谱和neo4j的基本 *** 作全部内容,希望文章能够帮你解决知识图谱和neo4j的基本 *** 作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1189846.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存