数据的查询方法、装置和服务器
文献发布时间:2023-06-19 11:39:06
技术领域
本说明书属于大数据处理技术领域,尤其涉及数据的查询方法、装置和服务器。
背景技术
在许多数据处理场景(例如,转账查询场景等)中,数据量庞大的业务数据往往会被集中存储于数据库中。当用户想要查询数据库中的某个具体数据(例如,关系数据、业务数据等)时,基于现有的数据查询方法,需要用户具备一定的编程基础,能够自己先编写出相应的查询语句代码,再利用该查询语句代码访问数据库,以查询得到所需要的数据。
可见,现有方法在实施时,对用户的门槛要求较高,用户查询数据的过程较为繁琐、操作难度较大,影响用户的使用体验。
针对上述问题,目前尚未提出有效的解决方案。
发明内容
本说明书提供了一种数据的查询方法、装置和服务器,以简化用户的查询过程,降低用户操作难度,使得用户能够较为高效、便捷地完成数据查询。
本说明书提供了一种数据的查询方法,包括:
获取用户提供的基于自然语言的初始查询语句;
根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;
确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;
根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;
根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;
根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
在一个实施例中,获取用户提供的基于自然语言的初始查询语句,包括:
通过终端设备采集用户发出的语音指令;并调用预设的语音识别模型,对所述语音指令进行语音识别,以得到所述初始查询语句;
或,
通过终端设备向用户展示预设的查询界面;并通过所述预设的查询界面接收用户输入的文本指令,作为所述初始查询语句。
在一个实施例中,根据预设的处理规则,处理所述初始查询语句,得到主体文本语句,包括:
对所述初始查询语句进行分词处理,得到按顺序排列的多个词组;
过滤所述多个词组中的无意义词组,并将过滤后的词组进行拼接,得到所述主体文本语句。
在一个实施例中,确定所述主体文本语句所对应的目标查询场景,包括:
检索所述主体文本语句,并提取出目标关键词组;
根据所述目标关键词组,从多个预设的查询场景中确定出相匹配的目标查询场景。
在一个实施例中,所述目标特征要素包括以下至少之一:数据对象的身份标识、数据对象的属性信息、数据对象之间的数据关系的属性信息、数据对象之间的关系深度。
在一个实施例中,提取出所述主体文本语句所包含的目标特征要素,包括:
从多个预设的语义识别模型中确定出与所述目标查询场景匹配的目标语义识别模型;
调用所述目标语义识别模型对所述主体文本语句进行语义识别,得到目标语义识别结果;
从所述目标语义识别结果中提取出与所述目标查询场景匹配的目标特征要素。
在一个实施例中,提取出所述主体文本语句所包含的目标特征要素,包括:
从多个预设的语句模板中筛选出相匹配的目标语句模板;
根据所述目标语句模板,从所述主体文本语句中筛选出与目标语句模板中的特征要素相匹配的词组,作为所述目标特征要素。
在一个实施例中,在提取出所述主体文本语句所包含的目标特征要素之后,所述方法还包括:
检测所述目标特征要素是否包含数据对象的身份标识;
在确定所述目标特征要素不包含数据对象的身份标识的情况下,生成报错提示。
在一个实施例中,根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句,包括:
根据所述目标生成规则,获取对应的基于Gremlin语言的预设的模板代码;
识别出预设的模板代码中的特征字符;
根据预设的映射规则,将所述预设的模板代码中的特征字符替换成相对应的目标特征要素,以得到所述目标查询语句。
在一个实施例中,根据所述目标查询语句,通过查询预设的图数据库,得到查询结果之后,所述方法还包括:将所述查询结果发送至终端设备,并通过所述终端设备向用户展示所述查询结果。
在一个实施例中,所述目标查询场景包括以下至少之一:转账查询场景、收益查询场景、交易查询场景。
本说明书还提供了一种数据的查询装置,包括:
获取模块,用于获取用户提供的基于自然语言的初始查询语句;
第一处理模块,用于根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;
第二处理模块,用于确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;
确定模块,用于根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;
生成模块,用于根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;
查询模块,用于根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
本说明书还提供了一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现所述数据的查询方法的相关步骤。
本说明书还提供了一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现所述数据的查询方法的相关步骤。
本说明书提供的数据的查询方法、装置和服务器,用户可以不需要具备专业的编程知识,直接向服务器提供基于自然语言的初始查询语句;相应的,服务器可以先根据预设的处理规则,处理该初始查询语句,得到排除了干扰影响、相对较为简要的主体文本语句;再确定出该主体文本语句所对应的目标查询场景,并提取出主体文本语句中的目标特征要素;进一步,服务器可以根据目标查询场景、目标特征要素,确定出相匹配的目标生成规则;并根据该目标生成规则,结合目标特征要素,自动生成基于Gremlin语言的目标查询语句;进而服务器可以根据上述目标查询语句查询预设的图数据库,以得到对应的查询结果。从而可以有效地简化用户的数据查询过程,降低用户操作难度,使得用户能够较为高效、便捷地完成数据查询,提高了用户的使用体验。
附图说明
为了更清楚地说明本说明书实施例,下面将对实施例中所需要使用的附图作简单地介绍,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是应用本说明书实施例提供的数据的查询方法的系统的结构组成的一个实施例的示意图;
图2是本说明书的一个实施例提供的数据的查询方法的流程示意图;
图3是本说明书的一个实施例提供的服务器的结构组成示意图;
图4是本说明书的一个实施例提供的数据的查询装置的结构组成示意图;
图5是在一个场景示例中,应用本说明书实施例提供的数据的查询方法的一种实施例的示意图;
图6是在一个场景示例中,应用本说明书实施例提供的数据的查询方法的一种实施例的示意图;
图7是在一个场景示例中,应用本说明书实施例提供的数据的查询方法的一种实施例的示意图;
图8是在一个场景示例中,应用本说明书实施例提供的数据的查询方法的一种实施例的示意图。
具体实施方式
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
考虑到基于现有的数据查询方法,往往对用户的技术要求较高,需要具备一定专业的编程知识,由用户自己编写并利用相应的查询语句(代码语句),来访问数据库,查询得到所需要的数据。这样势必会使得用户的数据查询过程变得较为繁琐,增加了用户的操作难度;同时也影响用户的数据查询效率,使得用户的使用体验较差。
进一步,又考虑到随着数据量的大规模增长,以及用户对数据交互要求的提升,常规的数据库由于建模方面的缺陷,往往难以满足当前具体的场景应用需求。
因此,在许多数据处理场景中,人们开始逐渐倾向将常规数据先转换为包含有数据对象和数据关系等信息的图数据;再以图数据的形式进行存储、管理,以建立相应的图数据库,代替常规的数据库。从而可以解决常规数据库建模方面的缺陷,构建得到大规模的关系数据网络。
但是,对于上述图数据库中所存储的图数据,通常使用的是Gremlin语言,该语言使用的又是链式查询逻辑,逻辑性相对更差,用户使用时较为复杂、繁琐。并且,针对图数据库的查询,相对于针对常规的数据库的查询,在技术实现上也更加的复杂,对用户的技术要求更高、操作难度更大,导致目前大部分用户都不具有针对图数据库的数据查询技术,往往无法独立地实现针对图数据库的数据查询。
针对产生上述问题的根本原因,本说明书提供一种面向普通用户(包括不具备专业知识的用户)较为简便、高效的数据的查询方法。基于该方法,用户可以根据具体的查询需求,直接基于自然语言向服务器提供相应的初始查询语句。相应的,服务器可以先根据预设的处理规则,处理该初始查询语句,以得到排除了干扰、较为简要的主题文本语句;接着,服务器可以确定出主体文本语句所对应的目标查询场景,并提取出主体文本语句中的目标特征要素,再确定出相匹配的目标生成规则;进而服务器可以根据目标生成规则,利用目标特征要素,自动生成符合要求的基于Gremlin语言的目标查询语句。进一步,服务器可以利用上述目标查询语句自动查询预设的图数据库,以得到对应的查询结果,反馈给用户。从而可以有效地简化数据查询过程,降低用户的操作难度,提高用户的使用体验。
本说明书实施例提供一种数据的查询方法,该方法具体可以应用于包含有服务器和终端设备的系统中。具体的,可以参阅图1所示,服务器与终端设备可以通过有线或无线的方式相连。
在实施例中,服务器还与预设的图数据库相连。其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
在本实施例中,所述服务器具体可以包括一种应用于数据处理平台一侧,能够实现数据传输、数据处理等功能的后台服务器。具体的,所述服务器例如可以为一个具有数据运算、存储功能以及网络交互功能的电子设备。或者,所述服务器也可以为运行于该电子设备中,为数据处理、存储和网络交互提供支持的软件程序。在本实施例中,并不具体限定所述服务器的数量。所述服务器具体可以为一个服务器,也可以为几个服务器,或者,由若干服务器形成的服务器集群。
在本实施例中,所述终端设备具体可以包括一种应用于用户一侧,能够实现数据采集、数据传输等功能的前端设备。具体的,所述终端设备例如可以为台式电脑、平板电脑、笔记本电脑、智能手机等。或者,所述终端设备也可以为能够运行于上述电子设备中的软件应用。例如,可以是在安装并运行于智能手机上的某数据查询APP等。
具体的,用户可以通过终端设备所展示预设的查询界面,基于自己的查询需求,使用自然语言,在预设的查询界面中的查询输入框内输入相应的文本语句,例如“我要查询下用户A昨天对用户B的转账数据”。
相应的,终端设备可以通过上述预设的查询界面采集上述文本语句,作为该用户提供的初始查询语句。并生成携带有上述初始查询语句的数据查询请求。
终端设备可以将上述查询请求发送至服务器。服务器接收查询请求,并通过数据解析获取该查询请求所携带的初始查询语句,例如“我要查询下用户A昨天对用户B的转账数据”。
接着,服务器可以响应该查询请求,根据预设的处理规则,处理上述初始查询语句,得到排除了语义干扰、较为简要的主体文本语句,例如“用户A昨天对用户B的转账”。
进一步,服务器可以通过识别并根据主体文本语句中所包含的关键词组,从多个预设的查询场景中确定出相匹配的目标查询场景。例如,根据所识别出的关键词组“转账”,确定出对应的目标查询场景为转账查询场景。
同时,服务器可以从上述主体文本语句中,提取出以下多个目标特征要素。例如,提取得到以下所示的目标特征要素:用户A(一个数据对象的身份标识)、用户B(另一个数据对象的身份标识)、昨天(数据关系的属性信息)。
然后,服务器可以根据上述目标特征要素,从与转账查询场景对应的多个预设的生成规则中,筛选出相匹配的目标生成规则。并根据上述目标生成规则,利用所提取得到的目标特征要素,自动生成对应的基于Gremlin语言的目标查询语句。
具体的,例如,服务器首先可以根据目标生成规则中所携带的地址参数,下载获取预先设置好的相对应的基于Gremlin语言的预设的模板代码,例如“g.V().has('数据对象的身份标识','X')..repeat(bothE().has('关系数据的属性信息','M').otherV())”。然后,服务器可以检测并识别出预设的模板代码中的特征字符“X”和“M”;根据预设的映射跪下,将预设的模板代码中的特征字符替换成相对应的目标特征要素。例如,根据预设的替换规则,可以将预设的模板代码中的“X”替换成“A|B”;同时将“M”替换成“昨天”。从而服务器可以自动生成符合要求的,针对预设的图数据库的目标查询语句。
进而,服务器可以根据上述目标查询语句查询预设的图数据库,以得到查询结果。
具体的,例如,服务器可以先根据目标查询场景,从多个预设的图数据库中找到与转账查询场景相匹配的,用于存储转账过程的业务数据的目标图数据库。接着,服务器可以根据目标查询语句中的数据对象的身份标识,在该目标图数据库中找到分别对应用户A和用户B的两个节点,并确定出上述两个节点之间的连边。然后,服务器可以根据目标查询语句中的数据关系的属性信息,有针对性检索上述两个节点之间的连边所携带的数据关系的属性信息,找到携带有“昨天”(转账时间)这个数据关系的属性信息的连边作为目标连边。进一步,服务器可以进一步查询该目标连边,以获取该目标连边所携带的其他的数据关系的属性信息,例如:“5元”(转账金额)、“RMB”(转账币种)、“饮食”(转账原因)等,作为查询结果。
最终,服务器可以将上述查询结果发送给终端设备。终端设备可以通过查询结果展示界面向用户展示出上述查询结果。
通过上述系统,用户不需要具备专业的编程知识,可以直接基于人类的自然语言提供初始查询语句;相应的,服务器可以根据上述初始查询语句,自动生成基于Gremlin语言的目标查询语句,再根据该目标查询语句查询预设的图数据,以得到用户所需要的查询结果。从而可以有效地简化用户的查询过程,降低用户操作难度,使得用户能够较为高效、便捷地完成数据查询,提高了用户的使用体验。
参阅图2所示,本说明书实施例提供了一种数据的查询方法。其中,该方法具体应用于服务器一侧。具体实施时,该方法可以包括以下内容。
S21:获取用户提供的基于自然语言的初始查询语句。
S22:根据预设的处理规则,处理所述初始查询语句,得到主体文本语句。
S23:确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素。
S24:根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则。
S25:根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句。
S26:根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
通过上述实施例,在用户一侧,可以允许用户根据具体的查询需求,灵活、简便地使用人类的自然语言向服务器提供相应的初始查询语句;在服务器一侧,可以根据上述基于自然语言的初始查询语句,先自动且精准地生成基于Gremlin语言的目标查询语句,进而可以根据上述目标查询语句查询预设的图数据库,以得到较为准确的查询结果反馈给用户。从而可以有效地简化用户的数据查询过程,降低用户操作难度,提高查询效率,使得用户能够较为高效、便捷地完成数据查询,得到所需要的查询结果,提高了用户的使用体验。
在一些实施例中,上述自然语言(Natural language)具体可以是指一种区别于编程语言的,自然地随文化演化得到、为人类普通交流时所使用的语言。例如,汉语、英语、日语等。
在一些实施例中,基于本说明书提供的方法,用户可以不需要具备专业的编程知识(例如,用户可以不懂相关的编程语言),用户可以根据具体的查询需求,灵活、便捷地使用自然语言来向服务器提供相应的初始查询语句。其中,上述初始查询语句用于描述用户具体的查询需求。
在一些实施例中,上述获取用户提供的基于自然语言的初始查询语句,具体实施时,可以包括以下内容:通过终端设备采集用户发出的语音指令;并调用预设的语音识别模型,对所述语音指令进行语音识别,以得到所述初始查询语句;或,通过终端设备向用户展示预设的查询界面;并通过所述预设的查询界面接收用户输入的文本指令,作为所述初始查询语句。
通过上述实施例,可以允许用户根据具体情况和个人喜好,选择多样化的方式,向服务器提供基于自然语言的初始查询语句,从而可以进一步提高用户的使用体验。
在一些实施例中,终端设备具体可以设置有收音模块(例如,麦克风等)。通常终端设备可以控制收音模块处于监听状态下。当用户有查询需求时,可以先发出用于激活的语音指令,例如“我要查询”。终端设备可以响应该语音指令,控制收音模块采集用户下一句语音指令作为初始查询语句。接着,终端设备可以将所采集到的初始查询语句发送给服务器。相应的,服务器接收并获取初始查询语句。
在一些实施例中,终端设备具体还可以设置有显示模块(例如,显示器等)。通常终端设备可以接收并响应用户在有查询需求时所发起的触发操作,例如,点击了显示模块中展示的“查询”图标,控制显示模块向用户展示出预设的查询界面。其中,预设的查询界面中设置有文本输入框。用户可以在上述文本输入框中,根据具体的查询需求,使用自然语言输入相应的文本语句作为文本指令。终端设备可以通过上述预设的查询界面接收用户输入的文本指令作为初始查询语句,并将该初始查询语句发送至服务器。
在一些实施例中,根据预设的处理规则,处理所述初始查询语句,得到主体文本语句,具体实施时,可以包括以下内容:对所述初始查询语句进行分词处理,得到按顺序排列的多个词组;过滤所述多个词组中的无意义词组,并将过滤后的词组进行拼接,得到所述主体文本语句。
通过上述实施例,服务器可以根据预设的处理规则,通过处理初始查询语句,来排除初始查询语句中存在的干扰、影响,得到冗余信息相对较少,较为精要的主体文本语句,以便后续可以基于上述主体文本语句,更加精准、快速地生成对应的目标查询语句。
在一些实施例中,具体实施时,首先,服务器可以根据预设的处理规则,将初始查询语句进行分词处理,得到按顺序排列的多个词组。例如,可以通过对初始查询语句“我要查询下用户A昨天对用户B的转账数据”进行分词处理,得到以下所示的多个词组:“我”-“要”-“查询”-“下”-“用户A”-“对”-“用户B”-“的”-“转账”-“数据”。
进一步,服务器可以根据预设的处理规则,通过对上述多个词组分别进行词性和语法分析,以过滤掉诸如助词、语气词、连接词、停顿词等不能表征实际内容含义的无意义词组。此外,服务器还可以利用预先基于大量历史查询语句训练得到的过滤模型对上述多个词组进行进一步过滤,以过滤掉诸如“我”、“查询”、“数据”等能够表征实际内容含义,但在后续数据查询过程中没有实际用处的无意义词组。最终,服务器可以得到过滤后的词组;并将过滤后的词组进行拼接,从而可以得到排除了的干扰影响、较为简要,且对后续的数据查询有效的主体文本语句。例如,得到主体文本语句“用户A对用户B转账”。
在一些实施例中,上述确定所述主体文本语句所对应的目标查询场景,具体实施时,可以包括以下内容:检索所述主体文本语句,并提取出目标关键词组;根据所述目标关键词组,从多个预设的查询场景中确定出相匹配的目标查询场景。
通过上述实施例,可以检索并根据主体文本语句中的关键词组,较为快速、准确地确定出与主体文本语句相匹配的目标查询场景。
在一些实施例中,具体实施前,服务器可以将所接入的批量业务数据根据业务类型进行分类,得到对应多个不同业务类型的数据集。例如,对应转账类业务数据的数据集、对应收益类业务数据的数据集、对应交易类业务数据的数据集等。
进一步,服务器可以根据对应不同业务类型的数据集所保存的业务数据,解析并确定出相应的数据关系;进而可以根据上述数据关系,构建相应的多个预设的图数据库。其中,每一个预设的图数据库分别与一个预设的查询场景对应。上述预设的图数据库具体可以用于以图数据的形式存储并管理基于业务数据所得到的与业务数据相关联的数据对象、数据关系等数据信息。
基于上述方式,可以构建出对应多个不同预设的查询场景的预设的图数据库。其中,所述多个预设的查询场景具体可以包括:转账查询场景、收益查询场景、交易查询场景等等。
相应的,所述目标查询场景具体可以包括以下至少之一:转账查询场景、收益查询场景、交易查询场景等。
通过上述实施例,可以将本说明书提供的数据的查询方法进一步拓展、应用到多种类型不同的查询场景中,以满足用户多样化的查询需求。
在一些实施例中,服务器在确定目标查询场景时,可以先检索主体文本语句,以从主体文本语句所包含的多个词组中识别并提取出目标关键词组;进一步,可以计算该目标关键词组分别与多个预设的查询场景的语义近似度;筛选出近似度最高的预设的查询场景作为与该主体文本语句匹配的目标查询场景。
在一些实施例中,在确定目标查询场景的同时,还可以提取出主体文本语句中所包含的目标特征要素。
在一些实施例中,上述目标特征要素具体可以包括以下至少之一:数据对象的身份标识、数据对象的属性信息、数据对象之间的数据关系的属性信息、数据对象之间的关系深度等。
在本实施例中,上述目标特征要素具体可以理解为后续在生成目标查询语句时需要使用到的参数数据。
通过上述实施例,可以从主体文本语句中提取出效果较好的目标特征要素,以便后续可以利用上述目标特征要素生成更加精准、可靠的查询语句。
在一些实施例中,上述数据对象的身份标识具体可以是用于指示数据对象的标识信息。具体的,上述数据对象身份标识可以是用户的姓名,也可以是用户的身份证号,还可以是用户的账户名等。
上述数据对象的属性信息具体可以是用于描述数据对象的属性特征的信息。具体的,上述数据对象的属性信息可以是用户的职业,也可以是用户的住址,还可以是用户的年龄等。
上述数据对象之间的数据关系的属性信息具体可以是用于描述不同数据对象之间的数据关系的属性特征的信息。具体的,对应不同类型的数据关系,上述数据关系的属性信息的具体内容也可以存在区别。以转账关系为例,数据关系的属性信息具体可以包括:转账金额、转账原因、转账时间、转账币种等等。
上述数据对象之间的关系深度具体可以是一种用于表征两个数据对象之间是通过多少层数据关系联系在一起的参数数据。具体的,例如,以数据关系为转账关系为例。用户C向用户D转账了5元,用户D向用户E转账了4元。可见,用户C与用户D之间是通过一层转账关系联系在一起的,因此可以认为用户C与用户D之间的关系深度为1。而用户C与用户E之间是通过用户C与用户D之间的转账关系,以及用户D与用户E之间的转账关系两层转账关系联系在一起的,因此可以认为用户C与用户E之间的关系深度为2。
在一些实施例中,上述提取出所述主体文本语句所包含的目标特征要素,具体实施时,可以包括以下内容:从多个预设的语义识别模型中确定出与所述目标查询场景匹配的目标语义识别模型;调用所述目标语义识别模型对所述主体文本语句进行语义识别,得到目标语义识别结果;从所述目标语义识别结果中提取出与所述目标查询场景匹配的目标特征要素。
通过上述实施例,可以利用预先训练好的语义识别模型较为精准地从主体文本语句中提取出相应的目标特征要素。
在一些实施例中,具体实施前,可以针对不同的预设的查询场景,分别获取相应的文本语句作为样本数据。接着,可以在上述样本数据所包含的词组中标注出的特征要素,得到标注后的样本数据。进一步,可以针对不同的预设的查询场景,利用相应的标注后的样本数据进行模型训练,得到对应不同的预设的查询场景的多个预设的语义识别模型。
在一些实施例中,具体实施时,服务器可以从多个预设的语义识别模型中找到与目标查询场景匹配的预设的语义识别模型作为目标语义识别模型。
在一些实施例中,上述提取出所述主体文本语句所包含的目标特征要素,具体实施时,还可以包括以下内容:从多个预设的语句模板中筛选出相匹配的目标语句模板;根据所述目标语句模板,从所述主体文本语句中筛选出与目标语句模板中的特征要素相匹配的词组,作为所述目标特征要素。
通过上述实施例,服务器还可以利用预先构建好的语句模板,较为快速地从主体文本语句中提取出目标特征要素。
在一些实施例中,具体实施前,可以针对不同的预设的查询场景,分别获取相应的文本语句作为样本数据。接着,可以针对不同的预设的查询场景,通过对样本数据进行聚类处理,以提取出该预设的查询场景中的样本数据所普遍包含的特征要素,并进行组合,得到与该预设的查询场景对应的预设的语句模板。
在一些实施例中,以转账查询场景为例,所对应的多个预设的语句模板可以包括:模板A(数据对象的身份信息/数据对象的属性信息/数据对象之间的数据关系的属性信息/数据对象之间的关系深度)、模板B(数据对象的身份信息/数据对象之间的数据关系的属性信息/数据对象之间的关系深度)、模板C(数据对象的身份信息/数据对象之间的数据关系的属性信息)、模板D(数据对象的身份信息)共四种预设的语句模板。
在一些实施例中,具体实施时,服务器可以先找到与目标查询场景相匹配的多个预设的语句模板;同时,可以通过对主体文本语句进行词性分析和语义识别,初步判断出主体文本语句中所包含的特征要素的种类数;进而可以从与目标查询场景相匹配的多个预设的语句模板中进一步筛选出所包含的特征要素的种类数与主体文本语句所包含的特征要素的种类数相同的预设的语句模板作为相匹配的目标语句模板。
在一些实施例中,具体实施时,可以利用目标语句模板对主体文本句中的所包含的各个词组逐一进行判别,以确定出各个词组是否属于特征要素;在确定词组属于特征要素的情况下,进一步根据目标语句模板判别该词组具体属于哪一种特征要素。进而可以从主体文本语句中提取出多个特征要素,作为目标特征要素。
在一些实施例中,在提取出所述主体文本语句所包含的目标特征要素之后,所述方法还包括:检测所述目标特征要素是否包含数据对象的身份标识;在确定所述目标特征要素不包含数据对象的身份标识的情况下,生成报错提示。
在本实施例中,考虑到通常针对预设的图数据库的查询操作大多都是针对基于业务数据所形成的关系数据的查询,而关系数据本身往往又是种需要依赖数据对象才能存在的数据。因此,在涉及关系数据的数据查询过程中,如果没有数据对象的身份标识作为锚点,进行数据查询往往会比较困难,也容易出现误差。
针对上述问题,在本实施例中,可以通过预先检测所提取出的目标特征要素中是否包含有数据对象的身份标识来判定是否要基于当前所提取出的目标特征要素继续进行后续的数据查询流程。
如果确定目标特征要素中包含有数据对象的身份标识,则可以继续进行后续的数据查询。相反,如果确定目标特征要素中不包含数据对象的身份标识,可以判断后续的数据查询会比较困难、容易出现误差,则可以暂停后续的数据查询;并生成报错提示反馈给用户,以便用户提供了相对更加完整、准确的初始查询语句之后,再进行数据查询。从而可以有效避免后续数据查询出现错误,提高查询效率。
在一些实施例中,具体实施时,可以根据所述目标查询场景、所述目标特征要素,从多个预设的生成规则中确定出相匹配的目标生成规则。
具体实施时,服务器可以先根据目标查询场景,检索出与目标查询场景匹配的多个预设的生成规则;再根据目标特征要素,从上述与目标查询场景匹配的多个预设的生成规则中进一步筛选出相匹配的目标生成规则。
其中,每一个预设的生成规则至少携带有一个地址参数,基于该地址参数可以下载获取对应的基于Gremlin语言的预设的模板代码。上述预设的生成规则还包含有关于如何利用所对应的预设的模板代码,拼接组合出对应的查询语句的规则数据。
上述Gremlin语言具体可以是一种针对图数据的图遍历语言,通常使用链式查询逻辑。上述预设的模板代码具体可以是服务器预先通过对与目标查询场景、目标特征要素相匹配的历史查询语句代码进行聚类所得到的。
在一些实施例中,上述根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句,具体实施时,可以包括以下内容:根据所述目标生成规则,获取对应的基于Gremlin语言的预设的模板代码;识别出预设的模板代码中的特征字符;根据预设的映射规则,将所述预设的模板代码中的特征字符替换成相对应的目标特征要素,以得到所述目标查询语句。
通过上述实施例,服务器可以利用预设的模板代码,自动且高效地生成能够满足用户的查询需求、应用效果较好的基于Gremlin语言的目标查询语句。
在一些实施例中,上述预设的映射规则分别与一个预设的模板代码对应,上述预设的映射规则中具体可以记载有所对应的预设的模板代码中的特征字符与目标特征要说之间的映射关系。
在一些实施例中,服务器可以根据目标生成规则所携带的地址参数,下载获取预设的模板代码。进一步,可以根据预设的映射规则,将预设的模板代码中的特征字符,分别替换成对应的之前由主体文本语句中提取出目标特征要素,从而可以得到相应的基于Gremlin语言的查询语句代码,作为所述目标查询语句。
在一些实施例中,在根据所述目标查询语句,通过查询预设的图数据库,得到查询结果之后,所述方法具体实施时,还可以包括以下内容:将所述查询结果发送至终端设备,并通过所述终端设备向用户展示所述查询结果。
通过上述实施例,服务器可以较为高效查询得到准确度较高、满足用户的查询需求的查询结果,并及时地将该查询结果反馈给用户,提高用户的使用体验。
在一些实施例中,具体实施时,服务器可以将查询结果发送至终端设备。终端设备接收并向用户展示上述查询结果。同时,终端设备还可以采集用户针对所展示的查询结果的反馈信息(例如,用户发出的针对查询结果表示肯定的相关操作等);并将所采集到的反馈信息发送回服务器。服务器可以每隔预设的时间段,根据该时间段所采集到的反馈信息对所使用的算法、模型进行调整,以使得查询结果能够更加符合用户需求。
由上可见,基于本说明书实施例提供的数据的查询方法,用户可以不需要具备专业的编程知识,直接向服务器提供基于自然语言的初始查询语句;相应的,服务器可以先根据预设的处理规则,处理该初始查询语句,得到排除了干扰后、相对较为简要的主体文本语句;再确定出该主体文本语句所对应的目标查询场景,并提取出主体文本语句中的目标特征要素;进一步,服务器可以根据目标查询场景、目标特征要素,确定出相匹配的目标生成规则;并根据该目标生成规则,结合目标特征要素,自动生成基于Gremlin语言的目标查询语句;进而服务器可以根据上述目标查询语句查询预设的图数据库,以得到对应的查询结果。从而可以有效地简化用户的查询过程,降低用户操作难度,使得用户能够较为高效、便捷地完成数据查询,提高了用户的使用体验。
本说明书实施例还提供一种服务器,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器具体实施时可以根据指令执行以下步骤:获取用户提供的基于自然语言的初始查询语句;根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
为了能够更加准确地完成上述指令,参阅图3所示,本说明书实施例还提供了另一种具体的服务器,其中,所述服务器包括网络通信端口31、处理器32以及存储器33,上述结构通过内部线缆相连,以便各个结构可以进行具体的数据交互。
其中,所述网络通信端口31,具体可以用于获取用户提供的基于自然语言的初始查询语句。
所述处理器32,具体可以用于根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
所述存储器33,具体可以用于存储相应的指令程序。
在本实施例中,所述网络通信端口31可以是与不同的通信协议进行绑定,从而可以发送或接收不同数据的虚拟端口。例如,所述网络通信端口可以是负责进行web数据通信的端口,也可以是负责进行FTP数据通信的端口,还可以是负责进行邮件数据通信的端口。此外,所述网络通信端口还可以是实体的通信接口或者通信芯片。例如,其可以为无线移动网络通信芯片,如GSM、CDMA等;其还可以为Wifi芯片;其还可以为蓝牙芯片。
在本实施例中,所述处理器32可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。本说明书并不作限定。
在本实施例中,所述存储器33可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。
本说明书实施例还提供了一种基于上述数据的查询方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现:获取用户提供的基于自然语言的初始查询语句;根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
在本实施例中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。
在本实施例中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。
参阅图4所示,在软件层面上,本说明书实施例还提供了一种数据的查询装置,该装置具体可以包括以下的结构模块:
获取模块41,具体可以用于获取用户提供的基于自然语言的初始查询语句;
第一处理模块42,具体可以用于根据预设的处理规则,处理所述初始查询语句,得到主体文本语句;
第二处理模块43,具体可以用于确定所述主体文本语句所对应的目标查询场景,并提取出所述主体文本语句所包含的目标特征要素;
确定模块44,具体可以用于根据所述目标查询场景、所述目标特征要素,确定出相匹配的目标生成规则;
生成模块45,具体可以用于根据所述目标生成规则、所述目标特征要素,生成基于Gremlin语言的目标查询语句;
查询模块46,具体可以用于根据所述目标查询语句,通过查询预设的图数据库,得到查询结果;其中,所述预设的图数据库存储有多个节点和节点之间的连边,所述节点用于表征数据对象,所述节点之间的连边用于表征数据对象之间基于业务数据所形成的数据关系。
需要说明的是,上述实施例阐明的单元、装置或模块等,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。为了描述的方便,描述以上装置时以功能分为各种模块分别描述。当然,在实施本说明书时可以把各模块的功能在同一个或多个软件和/或硬件中实现,也可以将实现同一功能的模块由多个子模块或子单元的组合实现等。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
由上可见,本说明书实施例提供的数据的查询装置,可以有效地简化用户的查询过程,降低用户操作难度,使得用户能够较为高效、便捷地完成数据查询,提高了用户的使用体验。
在一个具体的场景示例中,可以基于本说明书提供的数据的查询方法,构建相应的图数据库简便查询系统,以简化用户(例如,业务人员)操作,便于用户高效、便捷地查询得到相应数据。
具体的,参阅图5所示,上述图数据库简便查询系统具体可以包括:请求数据处理单元101、文本模板匹配单元102、核心要素提取单元103、Gremlin语句拼接单元104、图数据库查询单元105、结果展示单元106。
其中,请求数据处理单元101,用于对业务人员发起的中文自然语句(例如,基于自然语言的初始查询语句)进行清洗。所述清洗,具体可以是指对业务人员请求的中文自然语句进行分词、去停用词等处理。所述中文自然语句具体可以是业务人员使用中文自然语句表述自己希望查询的数据及方式。
文本模板匹配单元102,用于将业务人员的中文自然语句匹配至已有文本模板(例如,预设的语句模板)。上述模板可以参阅表1所示。
表1
该系统具体运行时,参阅图6所示,可以按照以下步骤执行。
步骤201:开始。
步骤202:判断中文自然语句中是否包含实体ID(例如,数据对象的身份标识),如果不包含则返回错误(例如,报错提示),对应步骤203;如果包含则进入下一步。
步骤204:判断中文自然语句中是否包含深度值(例如,数据对象之间的关系深度),并进入下一步。
步骤205:判断中文自然语句中是否包含实体属性(例如,数据对象的属性信息),并进入下一步。
步骤206:判断中文自然语句中是否包含关系属性(例如,数据对象之间的数据关系的属性信息),并进入下一步。
在该步骤中,如果中文自然语句包含深度值、实体属性、关系属性,则匹配至文本模板(例如,预设的语句模板)A 207;如果中文自然语句包含深度值、关系属性,不包含实体属性,则匹配至文本模板B 208;如果中文自然语句包含关系属性,不包含实体属性、深度值,则匹配至文本模板C 209;如果中文自然语句不包含深度值、实体属性、关系属性,则匹配至文本模板D。
所述文本模板,具体可以表示为以下四种形式:模板A:实体ID/实体属性/深度值/关系属性;模板B:实体ID/深度值/关系属性;模板C:实体ID/关系属性;模板D:实体ID。
利用核心要素提取单元103可以依据文本模板提取业务人员的中文自然语句中的核心要素(例如,目标特征要素)。其中,所述核心要素可以包括:实体ID、实体属性、深度值、关系属性中一个或多个。所述实体ID,具体可以是指图数据库中实体的ID;所述实体属性,具体可以是指图数据库中实体的一个或多个属性;所述深度值,具体可以是指查询实体的关系层数,例如,邻居实体为一层关系,邻居的邻居为两层关系;所述关系属性,具体可以是指图数据库中关系的一个或多个属性。
进一步,可以利用Gremlin语句拼接单元104,依据之前通过文本模板及提取到的核心要素,将中文自然语句转换成Gremlin语句(例如,基于Gremlin语言的目标查询语句)。具体可以参阅图7所示。其中,所述Gremlin语句,可以是指图数据库专用的查询语言。
具体的,文本模板A(401)转换为Gremlin语句(402)如下所示:g.V().has('实体ID','X').has('实体属性','Y').repeat(bothE().has('关系属性','M').otherV()).times(Z)。文本模板B(403)转换为Gremlin语句(404)如下所示:g.V().has('实体ID','X').has('实体属性','Y').repeat(bothE().otherV()).times(Z)。文本模板C(405)转换为Gremlin语句(406)如下所示:g.V().has('实体ID','X').has('实体属性','Y').bothE().otherV()。文本模板D(407)转换为Gremlin语句(408)如下所示:g.V().has('实体ID','X').bothE().otherV()。
其中,X可以表示为实体ID,Y可以表示为实体属性,Z可以表示为深度值,M可以表示为关系属性。
接着,可以利用图数据库查询单元105,通过Gremlin语句从图数据库中查询所需的数据。其中,所述图数据库,具体可以是指基于图论实现的一种新型NoSQL数据库。所述所需的数据具体可以是指包括实体、关系及其中属性的数据集合,返回方式可以为json报文。
最后,可以利用结果展示单元106,通过前台页面展示图数据库返回的数据。所述展示的数据具体可以包括在页面上体现出的实体与实体之前的关系数据。
对于业务人员而言,具体查询数据时,参阅图8所示,业务人员可以利用上述图数据库简便查询系统按照以下步骤进行操作,以快速地实现数据查询。
步骤501:业务人员在前台页面输入需要查询数据的中文自然语句;
步骤502:系统分析中文自然语句,并将其匹配至现有文本模板;
步骤503:系统依据文本模板提取中文自然语句中的核心要素,再依据模板转换成Gremlin语句;
步骤504:系统使用Gremlin语句去图数据库中查询数据,并将数据通过前台页面展示。
在本场景示例中,通过构建并使用上述图数据库简便查询系统,可以克服了现有数据库查询无法查询大规模关系数据、数据库使用门槛高等缺陷,并优化针对数据库的大规模关系查询效率,还通过引入并利用自然语言处理技术将业务人员的自然语句转换为图数据库可识别的Gremlin语言,从而可以既提高数据库的查询效率,又降低了数据库的使用门槛,提高了用户的使用体验,有效简化了用户查询数据的过程,降低了用户的操作难度。
虽然本说明书提供了如实施例或流程图所述的方法操作步骤,但基于常规或者无创造性的手段可以包括更多或者更少的操作步骤。实施例中列举的步骤顺序仅仅为众多步骤执行顺序中的一种方式,不代表唯一的执行顺序。在实际中的装置或客户端产品执行时,可以按照实施例或者附图所示的方法顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至为分布式数据处理环境)。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、产品或者设备所固有的要素。在没有更多限制的情况下,并不排除在包括所述要素的过程、方法、产品或者设备中还存在另外的相同或等同要素。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。
本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内部包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构、类等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
通过以上的实施例的描述可知,本领域的技术人员可以清楚地了解到本说明书可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本说明书的技术方案本质上可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,移动终端,服务器,或者网络设备等)执行本说明书各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例采用递进的方式描述,各个实施例之间相同或相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。本说明书可用于众多通用或专用的计算机系统环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器系统、基于微处理器的系统、置顶盒、可编程的电子设备、网络PC、小型计算机、大型计算机、包括以上任何系统或设备的分布式计算环境等等。
虽然通过实施例描绘了本说明书,本领域普通技术人员知道,本说明书有许多变形和变化而不脱离本说明书的精神,希望所附的权利要求包括这些变形和变化而不脱离本说明书的精神。
- 服务器数据查询方法、云端服务器及数据查询系统
- 一种多数据源集成的数据查询方法、装置及业务服务器