1.Cypher查询
Cypher作为Neo4j的查询语言,是一个描述性的图形查询语言,允许不必编写图形结构的遍历代码对图形存储有表现力和效率的查询。
在前面我们构建好的图数据库中,查询症状可以输入语句:
MATCH (d:Disease)-【HAS_SYMPTOM】->(s) WHERE d.name=“糖尿病” RETURN d,s
返回结果如下:
2.代码结构
这部分功能主要是主体类 AnswerSearching实现的。其框架结构如下:
classAnswerSearching:
def__init__(self)
pass
主要是根据不同的实体和意图构造cypher查询语句
defquestion_parser(self, data)
主要是根据不同的实体和意图构造cypher查询语句
return:
pass
将问题转变为cypher查询语句
deftransfor_to_sql(self, label, entities, intent)
将问题转变为cypher查询语句
param entities:实体列表
pass
执行cypher查询,返回结果
defsearching(self, sqls)
执行cypher查询,返回结果
param sqls:
pass
defanswer_template(self, intent, answers)
param answers: 知识图谱查询结果
return: str
Pass
3.源码介绍
首先安装py2neo,pip install py2neo
连接上neo4j数据库
from py2neo import Graph
3.1.根据不同的实体和意图构造cypher查询语句
def question_parser( data)
主要是根据不同的实体和意图构造cypher查询语句
return:
sqls =
ifdata:
forintent indata “intentions”:
sql_ = {}
sql_ “intention” = intent
sql =
ifdata. get “Disease”:
sql = transfor_to_sql( “Disease” data “Disease”, intent)
elif data. get “Alias”:
sql = transfor_to_sql( “Alias” data “Alias”, intent)
elif data. get “Symptom”:
sql = transfor_to_sql( “Symptom” data “Symptom”, intent)
elif data. get “Complication”:
sql = transfor_to_sql( “Complication” data “Complication”, intent)
3.2将问题转变为cypher查询语句
6.执行cypher查询,返回结果
7.根据不同意图,返回不同模板的答案
本文相关词条概念解析:
查询
cháxún[question;interrogate;inquireabout]查考询问查chá考察:检查。调查。查验。查访。查阅。古同“槎”,水中浮木。询(询)xún问,征求意见:询问。询察。查询。质询。咨询。询事考言(查问考核言行是否相符)。查问;调查。清薛福成《滇缅分界大概情形疏》:“每有查询,朝电夕报。”郭鹏《刘亚生》:“我们立即向各方面展开了广泛的查询,然而,回答只有一个:没有见到这样的一位同志。”查询的意思就是查找、寻找指在某一个或几个地方找出自己所要的东西可做名词、动词[计算机]查询是从数据表中检索数据的主要方法,查询可以分为选择查询、参数查询、交叉查询和操作查询四类。
TL恶搞,虽然开幕式卡莎的形象不是很好,阿Bin剑姬5杀的图[详情]
Quicksql——更简单,更安全,更快速的跨数据源统一SQL查询引擎 概述 日益复杂的场景让业务加工数据效率低下 使用统一的抽[详情]
腾讯数据总监教学: 仅用5步, 即可从0-1构建大数据知识体系[详情]