知识图谱和neo4j的基本操作
一.知识图谱的简介1.知识图谱是什么
可以理解为一个关系图网络。 2.什么是图
3.什么是Schema
二.知识图谱的构建1.数据来源结构化数据和非结构化数据,前者可能是本地数据库中的信息,后者主要是在网页上抓取的信息。 2.涉及的技术命名实体识别,关系抽取等自然语言处理技术。 三.知识图谱的存储
RDF一个重要的设计原则是数据的易发布以及共享,图数据库则把重点放在了高效的图查询和搜索上。其次,RDF以三元组的方式来存储数据而且不包含属性信息,但图数据库一般以属性图为基本的表示形式,所以实体和关系可以包含属性,这就意味着更容易表达现实的业务场景。其中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() ? ? ? ? ? ? ? ? ? ? (编辑:北几岛) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |