Code前端首页关于Code前端联系我们

如何构建和使用Neo4j知识图谱-以MeSH(A)为例

terry 2年前 (2023-09-26) 阅读数 49 #后端开发

1.知识图谱简介:

知识图谱是人工智能技术的一个重要分支,用于描述物理世界。符号形式的概念及其相互关系。本文捕获了使用 Neo4j 工具构建、显示和使用知识图的整个过程。

2. 知识图谱基本概念

2.1 知识基本单位图:

由“实体”和“关系”组成的三元组“实体-关系-单位”是知识的基本单位知识。同时,一个“实体”具有“属性”,一个完整的“实体”是通过“属性”来表示的。知识图谱由若干个“实体属性”通过“关系”连接起来,形成网络化的知识结构。 以“猫吃老鼠”为例: “猫吃老鼠”是一个“实体-关系-实体”三元组。同时,“动物”、“宠物”等“属性”可以用来描述“实体”、“猫”;诸如“动物”和“害虫”等属性可以用来描述“实体”和“老鼠”。 Neo4j知识图谱搭建与使用方法——MeSH(A)为例

2.2 知识图谱构建流程:

知识图谱构建流程主要包括: 1.原始数据采集:原始数据采集,也称为语料库采集质量,是最好的方式。知识图谱构建。基本步骤。 2。原始数据处理:不同结构的原始数据必须通过适当的方法进行处理,以获得必要的“实体”、“属性”和“关系”信息。这一步是最难的一步,直接决定了能否从对应的语料库构建出知识图谱。 3。构建知识图谱:使用不同的软件将实体-关系-实体三元组构建为知识图谱。常用的创建知识图的软件有:Protégé和Neo4j。 4。知识图谱应用:知识图谱可以通过图数据库查询语言(如Cypher)对知识图谱进行搜索和查询,实现包括:“搜索”、“问答”、“辅助大数据分析”等功能。 Neo4j知识图谱搭建与使用方法——MeSH(A)为例

3. 知识图谱构建

3.1 语料库显示:

Neo4j知识图谱搭建与使用方法——MeSH(A)为例

Neo4j知识图谱搭建与使用方法——MeSH(A)为例 从 NIH 获得的 MeSH (A) 有以下字段文本,level2_,“..” level1__ 文本:“..” level10_text"、"level11_text";"level1_url"、"level2_url"..."level10_url"、"level11_url"。Neo4j知识图谱搭建与使用方法——MeSH(A)为例    包含的信息包括:

信息名称 分类
Level_text♿♓‷‷‷Ent 属性s
爱沙尼亚语名称属性
中文翻译属性 2. Neo4j有一个可视化网页,您可以直接在Neo4j网页上创建知识图。和查询。网址如下:https://workspace-preview.neo4j.io/workspace/query 完成Neo4j可视化网站注册后,您将获得一个免费实例。 Neo4j知识图谱搭建与使用方法——MeSH(A)为例登录后,进入Neo4j Web界面,创建知识图谱并进行查询。 ?知识图谱。
部分 信息名称 信息类别 内容
节点 1节点 1。 解剖级别 2
Unique_ ID属性D001829
Enlish_name属性身体部位
chinese_translation属性属性❓❓❓❓属性 A01
关系(level_url 到 level_url)D059925
英文名称属性解剖标志
中文翻译属性解剖标志
Level_ID属性.111A.添加属性:
MATCH (n:Anatomylevel2) SET n.Unique_ID='D001829' RETURN n;
Neo4j知识图谱搭建与使用方法——MeSH(A)为例
MATCH (n:Anatomylevel2) SET n.Enlish_name='Body Regions', n.Chinese_Translation='身体部位' RETURN n;
Neo4j知识图谱搭建与使用方法——MeSH(A)为例 3.构建节点+属性:
CREATE(n:Anatomylevel2{Unique_ID:'D001829',Enlish_name:'Body Regions',Chinese_Translation:'身体部位',Level_ID:'A01'}) RETURN n
Neo4j知识图谱搭建与使用方法——MeSH(A)为例(提示:无论节点是否已存在,创建命令都必须创建一个新节点,如果原节点已经存在,则必须使用合并命令合并该节点) 4. 合并节点:
MATCH (n:Anatomylevel2) WITH collect(n) AS nodes CALL apoc.refactor.mergeNodes(nodes) yield node RETURN *;
5.创建关系:Neo4j知识图谱搭建与使用方法——MeSH(A)为例Neo4j知识图谱搭建与使用方法——MeSH(A)为例Neo4j知识图谱搭建与使用方法——MeSH(A)为例
MATCH(a:Anatomylevel2),(b:Anatomylevel3) CREATE (a)-[r:link]->(b) RETURN r
Neo4j知识图谱搭建与使用方法——MeSH(A)为例Neo4j知识图谱搭建与使用方法——MeSH(A)为例6.删除关系:Neo4j知识图谱搭建与使用方法——MeSH(A)为例
MATCH(a:Anatomylevel2)-[r:link]->(b:Anatomylevel3) DELETE r
Neo4j知识图谱搭建与使用方法——MeSH(A)为例7.删除节点:(删除节点前,必须删除所有节点关系)Neo4j知识图谱搭建与使用方法——MeSH(A)为例
MATCH(b:Anatomylevel3) DELETE b
Neo4j知识图谱搭建与使用方法——MeSH(A)为例8.删除地图: Neo4j知识图谱搭建与使用方法——MeSH(A)为例
MATCH(n) DETACH DELETE n
Neo4j知识图谱搭建与使用方法——MeSH(A)为例Tips:可以使用MERGE创建元素和边,详情参见:https://zhuanlan.zhihu.com/p/398323729

3.3.2 使用Python py2neo包构建知识图谱:

将“Py2neo”canone“属性”和“关系”批量导入neo4j,灵活快速,构建知识图谱。您可以通过Re包使用正则表达式来灵活提取您需要的内容。? ”和“NodeMatch”方法在创建(关系)时报错,官方文档没有提供解决方案。因此,在创建关系的过程中,建议使用Cypher语言的Run方法来创建(也可以使用Run方法创建节点实体)

3.3 .3 使用py2neo快速构建知识图:

Py2neo包还提供了批量导入实体和关系的方法,可以快速创建知识图谱,具体可以看以下网址:https://blog.csdn.net/qiang12qiang12/article/details/127692314

iv.第四部分主要记录简单实用“WITH”、“UNWIND”、“WHERE”、“ORDER BY”、“SKIP”和“MERGE”等查询和语法,请参见网站:https://zhuanlan.zhihu.com /p/398323729

4.1查询节点:

1.查询指定实体:
MATCH (a:Anatomylevel2)RETURN a
Neo4j知识图谱搭建与使用方法——MeSH(A)为例2.根据属性查询实体:
MATCH (a:Anatomylevel2{Unique_ID:"D001829"})-->(b) RETURN a,b
Neo4j知识图谱搭建与使用方法——MeSH(A)为例3.根据路径查询实体类(未定义):
MATCH (a:Anatomylevel2{Unique_ID:"D001829"})-->(b)RETURN b
Neo4j知识图谱搭建与使用方法——MeSH(A)为例4、根据路径查询实体类(定义):
MATCH (a:Anatomylevel2{Unique_ID:"D001829"})-[r:link]->(b)RETURN b
Neo4j知识图谱搭建与使用方法——MeSH(A)为例

4.2 查询属性:

MATCH (a:Anatomylevel2)RETURN a.Chinese_Translation
Neo4j知识图谱搭建与使用方法——MeSH(A)为例

4.3 查询关系:♾:4。 1.询问最短路线:
MATCH p =shortestPath((a:Anatomylevel2{Unique_ID:"D001829"})-[*1..2]->(b:Anatomylevel3{Unique_ID:"D059925"})) RETURN p
Neo4j知识图谱搭建与使用方法——MeSH(A)为例2。固定深度查询路径:
MATCH p =(a:Anatomylevel2{Unique_ID:"D001829"})-[*1..2]->(b) RETURN p
Neo4j知识图谱搭建与使用方法——MeSH(A)为例

版权声明

本文仅代表作者观点,不代表Code前端网立场。
本文系作者Code前端网发表,如需转载,请注明页面地址。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

热门