影视软件开发定制/长春做网站公司长春seo公司
笔记整理:郭爱博,国防科技大学博士
论文发表会议:The 31th ACM International Conference on Information and Knowledge Management,CIKM 2022
动机
随着社交、电子商务、金融等行业的快速发展,现实世界编织出一张庞大而复杂的网络。然而,图(或网络)数据难以管理和挖掘,特别是对于经典的关系型数据库,这推动了图数据库的发展,Neo4j就是其中最流行的产品之一。Neo4j的查询语言Cypher(简称CQL)可实现对图的高效查询。但是CQL 的复杂操作和语法对用户的学习成本要求较高。因此,本文提出并定义了一种类似于Text-to-SQL的新任务Text-to-CQL。Text-to-CQL是一种新的语义解析任务,即将用户的自然语言查询转化为CQL查询,以帮助降低用户的学习和使用成本,提升图数据库与用户的交互友好度。同时,本文还为该任务构建了首个数据集SpCQL。
亮点
本文的亮点主要包括:
(1)提出并正式定义了Text-to-CQL任务,该任务目的是将用户自然语言查询自动转化为CQL查询,降低图数据库与使用者交互的学习和使用成本;
(2)构建了首个Text-to-CQL任务数据集SpCQL。
任务定义
Text-to-CQL 任务的目的是设计一个能够将自然语言查询转化为 CQL 查询的模型,如图 1 所示。
它可以正式表示为
其中是给定的Neo4j数据库。数据库存储格式为
,其中E代表节点集,V代表关系集。q表示用户提出的自然语言查询,记为
。每个 表示自然语言查询的一个token,n表示token的总数。结果c是生成的CQL。
SpCQL数据集介绍
下面对SpCQL数据集进行介绍。
1.数据集概述
SpCQL包含两个主要部分:一个Neo4j图形数据库和10,000个NL查询-CQL对。在图2中展示的是一个查询对示例和对应的图数据。
2.数据采集
图数据库资源主体采用OwnThink。OwnThink是一个基于Neo4j的大规模开源知识图谱。这个知识图谱包含1.4亿个三元组,涵盖了人、组织、时间、活动和许多通用元素。
CQL查询通过网络爬虫从CSDN和Neo4j社区等技术论坛站点获取了Neo4j数据库中大约6,000个自然语言问题作为查询。为了确保数据库内容可以涵盖这些查询,作者调整了数据库中不存在的实体或关系。同时,还人工撰写了一些自然语言查询作为补充。
最后,经过数据清洗,获得10,000个自然语言查询。
3.CQL标注
为了准确地标注自然语言查询对应的CQL,邀请了10位精通Neo4j数据库和CQL语言的专业人员进行标注。为了确保NL查询-CQL对的多样性、自然性并且符合人类实际使用习惯,允许标注者在不改变语义的情况下进行微调。标注过程没有设计任何模板或脚本来生成CQL。标注后,进行交叉审查,以确保每个NL查询-CQL对满足使用和句法要求。
4.CQL分析
分三个部分介绍CQL查询的组件。
函数和运算符(Functions and Operators)
函数代表 CQL 查询中的主要功能关键字。最基本的有MATCH,WHERE和RETURN,它们与 SQL 的组成有些相似。其他包括但不限于OPTINAL MATCH,START,Aggregation,ORDER BY,LIMIT,SKIP。WITH,UNION等。
运算符可以对值、字符、列表等进行操作,也可以进行比较、匹配等操作。详情如表1所示。
模式(Patterns)
模式是 CQL 中最重要的概念,也是与 SQL 最大的区别。模式的引入不仅提高了用户路径查询的效率,而且相比 SQL 更加人性化。表 2 中列举出了所有模式及其相应的注释。
需要说明的是,CQL查询中存在方向规范,即有向关系查询。例如,(n)->(m)表示从n到m的关系。这种有向关系的查询对模型生成 CQL 提出了更大的挑战。
分类统计
本文分析了 SpCQL 数据集中的NL查询-CQL 对,以表明该数据集反映了真实世界的使用场景。首先统计每个查询中的函数和运算符的数量。直观地说,函数和运算符越多,对应于该查询的 CQL 就越复杂。统计结果见表3。
从统计数据可以看出,SpCQL 数据集中的查询通常包含多个函数和运算符。这使得 CQL 生成更加困难,因为涉及的组件更多。
此外,还统计到SpCQL数据集中总共 6,874 个查询涉及到模式。很容易理解,由于 Neo4j 数据库最大的特点是在图数据上查询路径(即模式),因此数据集中的大多数查询都与模式有关。模式查询相比于多函数/运算符的情况更具有挑战性。
考虑到模式的转换是一个更严峻的挑战,本文对涉及模式的查询进行了更深入的统计,分为三类,包括 1).无向边查询(Ud),2).有向边查询 (D) 和 3).限制路径长度查询和最短路径查询(RS)。三种类型的模式数量分别为 1,645、2,916 和 2,313。有向边查询的情况更多,因为用户通常指定一个人或组织作为查询的起点。此外,在查询过程中,对于限定路径(模式)长度的查询也是一种非常常见的使用场景。
实验分析
基线方法
该论文参考Text-to-SQL任务的基础解决方法,提供了三个Baseline,分别是Seq2Seq[1]、Seq2Seq+Attention[1]和Seq2Seq+Copying[2]。
测试指标
测试指标采用Text-to-SQL任务一致的Logical Accuracy和Execution Accuracy。
Logical Accuracy将模型生成的CQL查询与GOLDCQL的逻辑形式进行比较。它可能包含由条件顺序引起的误报,因为不排除WHERE子句中条件顺序的影响。它计算为
Execution Accuracy将模型生成的CQL查询结果与GOLDCQL执行结果进行比较。由于WHERE子句中的条件顺序不影响结果,因此可以忽略条件顺序的影响。它计算为
基线效果分析
表4中展示了上述三个Baseline的效果。
以Seq2Seq为基础的模型性能都很差,这是由于在解决复杂CQL查询场景时,无法正确地解码出CQL查询组件或内容。对于CQL包含模式甚至有向图关系的情况尤其如此,这是使用CQL进行查询时最常见的场景。此外,由于Seq2Seq模型存在重复解码等缺陷,因此及时添加注意力和复制机制并没有太大帮助。
本文还特意对模式查询问题进行了对比实验,比较了三种Baseline在三种模式查询下的性能,结果如表5所示。可以发现结果并不理想,尤其是在解析有向边CQL和限制边长和最短路径的查询等复杂查询时。
总结
本文构建了首个数据集SpCQL。SpCQL由两部分组成——存储在Neo4j中的图数据库和10000个NL查询-CQL对。基于这个数据集,正式定义了一个新的具有挑战性和现实意义的语义解析任务Text-to-CQL,即将自然语言查询转换为CQL查询。
基于此数据集可以推进此任务的研究,可以提升图数据库的用户友好性,并将降低学习和使用成本。考虑到SQL和CQL之间的根本差异,这一新数据集有望为Text-to-CQL任务提供研究基础。此外,Text-to-CQL的重要性不局限于Neo4j数据库,而是影响所有使用CQL作为操作语言的数据库。
参考文献
[1]DongL,LapataM.LanguagetoLogicalFormwithNeuralAttention[J].OfficeforOfficialPublicationsoftheEuropeanCommunities,2016.
[2]GuJ,LuZ,LiH,etal.IncorporatingCopyingMechanisminSequence-to-SequenceLearning[J].2016.
OpenKG
OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。
点击阅读原文,进入 OpenKG 网站。
相关文章:

论文浅尝 | SpCQL: 一个自然语言转换Cypher的语义解析数据集
笔记整理:郭爱博,国防科技大学博士论文发表会议:The 31th ACM International Conference on Information and Knowledge Management,CIKM 2022动机随着社交、电子商务、金融等行业的快速发展,现实世界编织出一张庞大而…...

MongoDB 使用规范与限制及最佳实践
MongoDB 灵活文档的优势 灵活库/集合命名及字段增减同一字段可存储不同类型数据Json 文档可多层次嵌套文档对于开发而言最自然的表达 MongoDB 灵活文档的烦恼 数据库集合字段名千奇百怪同一字段数据类型各不一样业务异常可能写入“脏”数据 1.1 库命名规范 不能为空字符串 &…...

第五十六章 树状数组(一)
第五十六章 树状数组一、前缀和的缺陷二、树状数组1、作用2、算法分析3、算法实现(1)lowbits()(2)插入(3)查询三、例题1、问题题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示2、代码一、前缀和…...

kubernetes教程 --Pod控制器详解
Pod控制器详解 介绍 Pod是kubernetes的最小管理单元,在kubernetes中,按照pod的创建方式可以将其分为两类: 自主式pod:kubernetes直接创建出来的Pod,这种pod删除后就没有了,也不会重建控制器创建的pod&am…...

N2750A Agilent Keysight HP 差分探头1.5GHz
N2750A Agilent Keysight HP 差分探头13554860890 N2750A 是 Agilent Keysight HP 的 1.5 GHz 差分探头。 特征: N2750A:1.5 GHz 衰减比:2:1 或 10:1(可切换) 动态范围: 5 V 或 10 Vpp(10:1 时…...

一文搞懂Linux内核进程CPU调度基本原理
为什么需要调度 进程调度的概念比较简单,我们假设在一个单核处理器的系统中,同一时刻只有一个进程可以拥有处理器资源,那么其他的进程只能在就绪队列中等待,等到处理器空闲之后才有计划获得处理器资源来运行。在这种场景下&#…...

java ssm爱宠宠物医院挂号预约系统管理系统设计与实现
本课题所实现的宠物医院网站是基于网页,它可以实现网上预约挂号,评价等基本功能。用户只要手边有一部手机或者一台电脑,可以上网浏览网页,便可以使用本系统,没有时间和地点的限制,使得就医预约,…...

自动化测试工具_Jmeter
【课程简介】 接口测试是测试系统组件间接口的一种测试,接口测试天生为高复杂性的平台带来高效的缺陷监测和质量监督能力,平台越复杂,系统越庞大,接口测试的效果越明显。在接口测试大行其道的今天,测试工具也愈发重要,Jmeter作为一款纯 Java 开发的测试…...

不是所有人都适合职场
一个读者的提问: 洋哥,我目前工作五年在一家大厂,属于那种什么事情上手都很快的人,并且搞定新问题能产生沉浸般的快感。我的本职是程序员,但运营思路产品方法也都会一些,甚至有时候提出的方案效果比产品&a…...

JSP 和 JSTL
文章目录🍓摘要🍓一、JSP🍉1.1 JSP的基础语法🍫1.1.1 简介🍫1.1.2 依赖🍫1.1.3 注释🍫1.1.4 Scriptlet 脚本🍉1.2 JSP的指令标签🍫1.2.1 include 静态包含🍫1…...

数据分析| Pandas200道练习题,使用Pandas连接MySQL数据库
文章目录使用Pandas连接数据库编码环境依赖包read_sql_query()的使用read_sql_table()的使用read_sql() 函数的使用to_sql()写入数据库的操作删除操作更新操作总结:使用Pandas连接数据库 通过pandas实现数据库的读,写操作时,首先需要进行数据…...

【Node.js】全局可用变量、函数和对象
文章目录前言_dirname和_filename变量全局函数setTimeout(cb,ms)clearTimeout(t)setInterval(cb,ms)clearInterval(t)setImmediate(cb)clearImmediate()console对象console.info([data][,...])console.error([data][,...])console.warn([data][,...])console.dir(obj[,options]…...

package.json 开发依赖与运行时依赖
文章目录前言一、生产环境与开发环境二、dependencies二、devDependencies总结前言 我已经使用npm接近两年了, 但对于package.json内的dependencies 和devDependencies也只是知道什么依赖该放什么部分, 至于为什么放到这个部分, 我不是很了解… 呃, 还是去了解一下. 一、生产环…...

关于最短路径算法中边的权值的思考
关于最短路径算法中边的权值的思考 不管是单源最短路径算法:Dijkstra Bellman-ford 还是多源最短路径算法:floyed Johnson 我们都绕不开的一件事就是,边的权值wi,jw_{i,j}wi,j 下面我们从多个角度谈边的权值 1.权值恒定 它是指对于每条边…...

LVGL开发教程:二、ESP-IDF 使用CmakeList管理自己的文件以及文件夹
本文需要已经安装了Vscode+IDF插件没有安装的请提前安装一下,IDF插件为乐鑫的插件不需要翻墙。需要环境搭建请看下面链接。 环境搭建: VScode+platformIO和Vscode+ESP-IDF两种开发环境搭建 项目例程下载地址: IDF-CmakeTes,密码:8888 另外,由于你和我的路径不一致,下载的工…...

与感受野相关的几种网络结构
一、Inception 1. Inception v1 目的 通过设计一个稀疏网络结构,但是能够产生稠密的数据,既能增加神经网络表现,又能保证计算资源的使用效率。 结构 图1-1 Inception v1结构图 特点 共4个通道,其中3个卷积通道分别使用111111…...

day19_抽象类丶接口
由来 当我们声明一个几何图形类:圆、矩形、三角形类等,发现这些类都有共同特征:求面积、求周长、获取图形详细信息。那么这些共同特征应该抽取到一个公共父类中。但是这些方法在父类中又无法给出具体的实现,而是应该交给子类各自…...

【网安神器篇】——系统指纹探测工具finger
作者名:白昼安全主页面链接: 主页传送门创作初心: 以后赚大钱座右铭: 不要让时代的悲哀成为你的悲哀专研方向: web安全,后渗透技术每日鸡汤: 我不想停下,因为这次出发的感觉太好了一…...

Prometheus离线tar包安装
Prometheus离线tar包安装实验环境一、部署前操作二、Master2.1下载2.2解压2.3更改服务目录名称2.4创建系统服务启动文件2.5配置修改2.6启动并设置开机自启2.7访问2.8添加node节点2.8.1 添加方法2.8.2修改Prometheus配置(Master)————————————…...

PostgreSQL查询引擎——SELECT STATEMENTS SelectStmt
SelectStmt: select_no_parens %prec UMINUS| select_with_parens %prec UMINUS select_with_parens:( select_no_parens ) { $$ $2; }| ( select_with_parens ) { $$ $2; } 该规则返回单个SelectStmt节点或它们的树,表示集合操作树(set-operation tree…...

零信任-易安联零信任介绍(11)
目录 易安联零信任公司介绍 易安联零信任发展路线 易安联零信任产品介绍 易安联零信任架构 易安联零信任解决方案 易安联零信任发展展望 易安联零信任公司介绍 易安联是一家专业从事网络信息安全产品研发与销售,是行业内领先的“零信任”解决方案提供商&…...

C++ STL——map和set的使用
文章目录1. 关联式容器1.1 键值对1.2 树形结构的关联式容器2. set2.1 set的介绍2.2 set的插入2.3 set的删除和查找2.4 lower_bound和upper_bound3. multiset3.1 count4. map4.1 map的介绍4.2 map的插入4.3 map的遍历4.4 map的[ ]5. multimap1. 关联式容器 我们之前学的vector、…...

【Python】thread使用
目录1、Condition条件变量使用2、event通信3、Semaphore信号量使用4、setDaemon设置守护线程5、threadPool_map使用6、threadPool使用7、threadingTimer1、Condition条件变量使用 # encoding:utf-8 Condition 提供了一种多线程通信机制, 假如线程 1 需要数据&#…...

计网传输层协议:UDP和TCP
文章目录一. 应用层和传输层的联系二. UDP协议三. TCP协议1. TCP报头介绍2. TCP实现可靠传输的核心机制2.1 确认应答2.2 超时重传3. 连接管理(三次握手, 四次挥手)3.1 建立连接(三次握手)3.2 断开连接(四次挥手)4. 滑动窗口5. 流量控制6.拥塞控制7. 延时应答8. 捎带应答9. 面向…...

一文讲明TCP网络编程、Socket套接字的讲解使用、网络编程案例
文章目录1 Socket讲解2 基于Socket的TCP编程3 客户端Socket的工作过程包含以下四个基本的步骤3.1 客户端创建Socket对象4 服务器程序的工作过程包含以下四个基本的步骤:4.1 服务器建立ServerSocket对象5 案例实现 客户端和服务端通信5.1 代码实现5.2 实现结果6 更多…...

Java中print和println的区别
1 问题在最开始学习Java的时候学到soutenter键可以输出结果,显示的是System.out.println();而在Python中是直接使用print。那么在Java中print和println有什么区别?2 方法Print输出会自动将括号中的内容转换成字符串输出,如果括号中…...

RocketMq使用规范(纯技术和实战建议)
概述: 使用规范主要从,生产、可靠性、和消费为轴线定义使用规范;kafka使用核心:削峰、解耦、向下游并行广播通知(无可靠性保证)和分布式事务,本规范仅从削峰、解耦、向下游并行广播通知论述&am…...

matlab离散系统仿真分析——电机
目录 1.电机模型 2.数字PID控制 3.MATLAB数字仿真分析 3.1matlab程序 3.2 仿真结果 4. SIMULINK仿真分析 4.1simulink模型 4.2仿真结果 1.电机模型 即: 其中:J 0.0067;B 0.10 2.数字PID控制 首先我们来看一下连续PID࿱…...

一文学会进程控制
目录进程的诞生fork函数fork的本质fork的常规用法fork调用失败的原因进程的死亡进程退出的场景常见的进程退出方法正常终止(代码跑完)echo $?main函数返回调用exit调用_exitexit和_exit的区别进程等待进程等待的重要性进程等待的函数waitwaitpid进程退出…...

5.2 BGP水平分割
5.2.2实验2:BGP水平分割 1. 实验目的 熟悉BGP水平分割的应用场景掌握BGP水平分割的配置方法 2. 实验拓扑 实验拓扑如图5-2所示: 图5-2:BGP水平分割 3. 实验步骤 (1)配置IP地址 R1的配置 <Huawei>…...