有应用价值的对话系统,需要引入外部知识辅助决策分析
知识图谱就是结构化的语义知识库,是一种基于图的数据结构,用于描述物理世界中的概念及其相互关系。
既然是图就有边和节点,边指的是事物之间的关系,而节点这里简单地分成两种:实体 + 属性,属性可以分为对象属性和数据属性。
三元组:< header entity, relation, tail entity >
比如:"小明是一个大学生"可以表示为< 小明, 当前学历, 大学生 >
Neo4j 开发文档
在这里插入图片描述
node是Neo4j的基本概念,以下是Neo4j的一个单一节点:
在这里插入图片描述
Neo4j的node和之前讲到的知识图谱中的节点不同,它不仅仅是一个单一的实体或者属性,它包括了labelproperty。其中label是Neo4j引入的一个新概念,它的作用是根据label把node划分成一个个集合,比如说"学生"可以是一个label,“国家"也可以是一个label,label具体是什么由我们来设计,我们可以通过指定label对这一批数据进行特定的操作。
一个node可以拥有多个label,为node设计什么label,主要还是要根据实际情况判断,看如何设计能方便数据的查询和修改等操作:
在这里插入图片描述
relationship就是连接两个node的边,而且这是有向边,relationship中包含relationship type,比如"acted_in”,就是表示Tom Hanks是Forrest Gump中的一个演员:
在这里插入图片描述
property是一个键值对,在之前node的介绍中也提到,node由label和property构成,需要注意的是,node和relationship都可以有property,比如上方的ACTED_IN中就通过property说明了Tom Hanks在Forrest Gump中扮演的角色是Forrest。
property中比较特别的是name,一个node没有name的话,在可视化界面是不会显示这个node的名称的,但从Neo4j的逻辑来看,一个node不一定需要name这个property,所以我们应该把Neo4j中的node看成是一个更抽象的node,而不是知识图谱中的实体。
Neo4j Desktop安装教程
neo4j安装使用(windows10)
可以通过Cypher或者python对Neo4j进行操作,Cypher就相当于mysql那种数据库操作语言,这里有Cypher详细教程,使用上Cypher和python可以结合使用。

py2neo连接neo4j demo

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐