【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

这篇具有很好参考价值的文章主要介绍了【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

一、Cypher基本语法

Neo4j是一种基于图形结构的NoSQL数据库,它采用了Cypher查询语言来查询和操作图形数据。下面是Neo4j中语法知识的详细总结和示例:

1.创建节点和关系

在Neo4j中,可以使用CREATE语句来创建节点和关系。下面是创建一个节点的示例:

CREATE (n:Person {name: 'John', age: 30})

这将创建一个标签为Person、属性为name和age的节点。

下面是创建一个关系的示例:

MATCH (a:Person {name: 'John'}), (b:Person {name: 'Jane'})
CREATE (a)-[:FRIENDS]->(b)

这将创建一个FROM节点a到TO节点b的FRIENDS关系。

2.查询节点和关系

在Neo4j中,可以使用MATCH语句来查询节点和关系。下面是查询所有节点的示例:

MATCH (n)
RETURN n

这将返回所有节点。

下面是查询两个节点之间关系的示例:

MATCH (a:Person {name: 'John'})-[r:FRIENDS]->(b:Person {name: 'Jane'})
RETURN r

这将返回FROM节点a到TO节点b的FRIENDS关系r。

3.更新节点和关系

在Neo4j中,可以使用SET语句来更新节点和关系的属性。下面是更新节点属性的示例:

MATCH (n:Person {name: 'John'})
SET n.age = 35

这将将节点n的age属性更新为35。

下面是更新关系属性的示例:

MATCH (a:Person {name: 'John'})-[r:FRIENDS]->(b:Person {name: 'Jane'})
SET r.since = '2022-01-01'

这将将FRIENDS关系r的since属性更新为2022年1月1日。

4.删除节点和关系

在Neo4j中,可以使用DELETE语句来删除节点和关系。下面是删除节点的示例:

MATCH (n:Person {name: 'John'})
DELETE n

这将删除所有名为John的Person节点。

下面是删除关系的示例:

MATCH (a:Person {name: 'John'})-[r:FRIENDS]->(b:Person {name: 'Jane'})
DELETE r

这将删除FROM节点a到TO节点b的所有FRIENDS关系。

二、小示例

使用Neo4j创建一个包含10个用户和20个商品以及它们之间的购买关系的知识图谱,并进行查询、修改等操作。

2.1 准备数据和创建实体和关系

我们需要准备好数据。我将用以下的CSV文件作为示例数据:

注意下面所有的文件都要放在数据库对应位置,如下图
【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

users.csv

userID,name
user1,John Doe
user2,Jane Doe
user3,Bob Smith
user4,Emily Jones
user5,David Lee
user6,Samantha Brown
user7,Alice Johnson
user8,Michael Davis
user9,Kate Johnson
user10,Ryan Wilson

products.csv

productID,name,category,price
product1,iPhone,Electronics,999
product2,iPad,Electronics,599
product3,MacBook,Electronics,1299
product4,Kindle,E-Books,89
product5,Harry Potter Book,Books,10
product6,Game of Thrones Book,Books,12
product7,MacBook Pro,Electronics,1499
product8,Samsung TV,Electronics,799
product9,Sony Camera,Electronics,599
product10,Canon Printer,Electronics,199
product11,Lenovo Laptop,Electronics,799
product12,Microsoft Surface,Electronics,999
product13,Fitbit Watch,Wearable,149
product14,Apple Watch,Wearable,399
product15,Sony Headphones,Electronics,299
product16,Samsung Monitor,Electronics,199
product17,Nintendo Switch,Electronics,299
product18,Playstation 5,Electronics,499
product19,Xbox Series X,Electronics,499
product20,Bose Speakers,Electronics,349

其中,每个用户具有userIDname两个属性,每个商品具有productIDnamecategoryprice四个属性。

现在,我们将使用Neo4j的Cypher语言来创建这个知识图谱。首先,我们需要使用LOAD CSV命令将数据加载到Neo4j中。

LOAD CSV WITH HEADERS FROM "file:///users.csv" AS row
CREATE (:User {userID: row.userID, name: row.name})
phpCopy codeLOAD CSV WITH HEADERS FROM "file:///products.csv" AS row
CREATE (:Product {productID: row.productID, name: row.name, category: row.category, price: toFloat(row.price)})

接下来,我们将创建40条购买关系。我们可以使用MATCHCREATE命令来实现这一点。例如,以下命令创建了用户1购买了商品1的关系:

MATCH (u:User {userID: "user1"}), (p:Product {productID: "product1"})
CREATE (u)-[:PURCHASED]->(p)

我们可以重复执行上述命令,为每个用户和商品创建购买关系。例如,以下命令创建了用户2购买了商品3的关系:

MATCH (u:User {userID: "user2"}), (p:Product {productID: "product3"})
CREATE (u)-[:PURCHASED]->(p)

也可以使用CSV文件直接导入:

假设我们有一个名为 user_product.csv 的 CSV 文件,其中包含了用户和商品之间的购买关系。文件格式如下:

UserID,ProductID
user1,product1
user1,product2
user1,product3
user2,product1
user2,product2
user2,product4
user3,product2
user3,product3
user3,product4
user4,product3
user4,product4
user4,product5
user5,product1
user5,product3
user6,product2
user6,product3
user6,product4
user7,product1
user7,product3
user8,product2
user8,product3
user8,product5
user9,product1
user9,product3
user9,product4
user10,product2
user10,product5
user1,product11
user1,product12
user1,product13
user2,product11
user2,product12
user2,product14
user3,product12
user3,product13
user3,product14
user4,product13
user4,product14
user4,product15
user5,product11
user5,product13
user6,product20
user6,product13
user6,product14
user7,product11
user7,product13
user8,product20
user8,product13
user8,product15
user9,product10
user9,product13
user9,product14
user10,product12
user10,product15
user1,product9
user1,product7
user1,product3
user2,product19
user2,product17
user2,product18
user3,product16
user3,product15
user3,product13
user4,product17
user4,product20
user4,product10
user5,product7
user5,product9
user6,product8
user6,product10
user6,product16
user7,product17
user7,product18
user8,product20
user8,product3
user8,product5
user9,product10
user9,product9
user9,product7
user10,product8
user10,product6

现在我们要将这些关系导入到 Neo4j 中,我们可以使用 LOAD CSV 命令来实现:

LOAD CSV WITH HEADERS FROM "file:///user_product.csv" AS row
MATCH (u:User {userID:row.userID})
MATCH (p:Product {productID:row.productID})
CREATE (u)-[:PURCHASED]->(p);

上述命令首先使用 LOAD CSV 加载 user_product.csv 文件,然后使用 MATCH 命令将用户和商品节点匹配,并最终使用 CREATE 命令创建购买关系。

2.2 进行查询修改等操作

  1. 查询商品

为了查询我们的商品,我们可以使用以下Cypher语句:

MATCH (p:Product)
RETURN p

这将返回所有的商品节点。
【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

  1. 查询用户

为了查询我们的用户,我们可以使用以下Cypher语句:

MATCH (u:User)
RETURN u

这将返回我们所有的用户节点。

  1. 查询购买关系

为了查询我们的购买关系,我们可以使用以下Cypher语句:

MATCH p=()-[r:PURCHASED]->() RETURN p

这将返回所有的购买关系。
【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

接下来,让我们看一下如何修改我们的知识图谱中的数据。

  1. 修改商品名称

为了修改商品的名称,我们可以使用以下Cypher语句:

MATCH (p:Product)
WHERE p.productID = 'product1'
SET p.name = 'New_product1'
RETURN p

这将修改ID为“product1”的商品的名称,并返回修改后的节点。
【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

删除购买关系

为了删除购买关系,我们可以使用以下Cypher语句:

MATCH (u:User)-[p:PURCHASED]->(pr:Product)
WHERE u.userID = 'user1' AND pr.productID = 'product2'
DELETE p

这将删除用户ID为“user1”和商品ID为“product2”的购买关系。

【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例

上面就是一个知识图谱创建的知识和示例了,期待后面更多内容。
最后欢迎关注公众号【智能建造小硕】(分享计算机编程、人工智能、智能建造、日常学习、科研和写作经验等,欢迎大家关注交流。)文章来源地址https://www.toymoban.com/news/detail-442591.html

到了这里,关于【Neo4j与知识图谱】Neo4j的常用语法与一个简单知识图谱构建示例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • Python neo4j建立知识图谱,药品知识图谱,neo4j知识图谱,知识图谱的建立过程,智能用药知识图谱,智能问诊必备知识图谱

    Python neo4j建立知识图谱,药品知识图谱,neo4j知识图谱,知识图谱的建立过程,智能用药知识图谱,智能问诊必备知识图谱

    一、知识图谱概念 知识图谱的概念是由谷歌公司在2012年5月17日提出的,谷歌公司将以此为基础构建下一代智能化搜索引擎,知识图谱技术创造出一种全新的信息检索模式,为解决信息检索问题提供了新的思路。本质上,知识图谱是一种揭示实体之间关系的语义网络,可以对

    2024年01月17日
    浏览(11)
  • 医疗知识图谱 neo4j

    医疗知识图谱 neo4j

    开源项目: https://github.com/liuhuanyong/QASystemOnMedicalKG pip install pyahocorasick pip install py2neo 需要改的点: 1.改连接的方式 2.改读文件的方式 MedicalGraph 运行: build_medicalgraph.py 时间很长,几个小时 关闭neo4j客户端 导入文件 文件见网盘 1.首先通过ahocorasick提取出,属于哪种疾病

    2024年02月09日
    浏览(12)
  • (知识图谱学习1)neo4j基础

    (知识图谱学习1)neo4j基础

    目录 一、neo4j安装与环境配置 官网:https://neo4j.com/download-center/ 下载社区版neo4j服务 neo4j环境变量配置 jdk下载 jdk版本: 启动neo4j 二、cypher语句基本增删改查 增 删除 改 查 三、Py2neo连接neo4j 安装pip install py2neo 连接neo4j 建立节点 建立关系 匹配节点 匹配关系 删除节点 删除关系

    2024年02月10日
    浏览(14)
  • 知识图谱构建: Neo4j 常见实例应用

    知识图谱构建: Neo4j 常见实例应用

    社交网络图:存储用户之间的关系和联系,如朋友关系、粉丝关系等。 产品推荐系统:利用用户的历史购买记录和评分数据,推荐相似的产品。 客户关系管理:存储企业和客户之间的联系,包括联系信息、交易记录等。 知识图谱:存储各种实体之间的关系,如人物、事件、

    2024年02月10日
    浏览(28)
  • 基于neo4j的宠物知识图谱问答系统

    基于neo4j的宠物知识图谱问答系统

    在当前数字化的时代,人工智能技术的迅速发展为信息检索和数据处理带来了革命性的变化。特别是在宠物领域,一个智能的宠物关系图谱问答系统能够为宠物爱好者提供全面、精准的信息服务。本文将详细介绍一个基于Python、Django、Flask、Neo4j以及py2neo等技术栈实现的宠物关

    2024年02月20日
    浏览(33)
  • 再相逢【知识图谱】中文医学知识图谱CMeKG,中文产科医学知识图谱COKG | 附:图数据库Neo4j下载安装教学(遇到问题并解决) + Neo4j基本操作

      无论结果如何,请相信那些你努力游向岸的日子都有它的意义。   🎯 作者主页 : 追光者♂ 🔥          🌸 个人简介 : 计算机专业硕士研究生 💖、 2022年CSDN博客之星人工智能领域TOP4 🌟、 阿里云社区特邀专家博主 🏅、 CSDN-人工智能领域新星创作者 🏆、 预期20

    2024年02月14日
    浏览(11)
  • 知识图谱实战(03):python操作neo4j实战

    Neo4j 提供了一个Python版本的驱动包,用来连接Neo4j数据库,从而完成图数据库的增删改查操作。 1、安装指定版本的驱动包(我们这里采用Neo4.x版本,同neo4j安装包保持一致即可) $ pip install neo4j==4.4.8  --upgrade

    2024年02月03日
    浏览(13)
  • Springboot集成neo4j实现知识图谱关系图

    Springboot集成neo4j实现知识图谱关系图

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用neo4j来完成人员关系 公司项目有一个功能需要将各个人员关系列出,在参加评选的时候,进行展示和筛选 neo4j是高性能的NOSQL图形数据库,在neo4j中,社区版本只能使用一个database。在neo4j中不存在表的

    2024年02月02日
    浏览(9)
  • 基于知识图谱的电影推荐系统——Neo4j&Python

    基于知识图谱的电影推荐系统——Neo4j&Python

    选择TMDB电影数据集,Netflix Prize 数据集下载。 也可直接从这里下载:链接: https://pan.baidu.com/s/1l6wjwcUzy5G_dIlVDbCkpw 提取码: pkq6 。 执行preproc.py文件,进行数据预处理,生成5个处理后的文件: 将上面数据预处理生成的5个文件,放入import文件夹中: 修改main.py中的driver,输入自己

    2024年02月15日
    浏览(14)
  • 知识图谱1_2——下载neo4j客户端

    知识图谱1_2——下载neo4j客户端

    这里展现一种通过客户端进行操作的方法 https://neo4j.com/download/ 下载desktop客户端 填写完成后开始下载 下载完成后,在命令行输入 完成后双击即可打开(需要反应一段时间) 将下面页面中的内容粘贴到客户端框中 完成创建 以上参考 https://blog.csdn.net/qq_39918677/article/details/104

    2024年02月07日
    浏览(14)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包