一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

用于将自然语言查询转换为结构化查询语言的模式注释文件的自动创建的制作方法

2022-08-03 05:08:47 来源:中国专利 TAG:
1.本发明的实施例涉及将自然语言查询转换为结构化查询语言的基于规则的系统,尤其涉及基于元数据的用户注释自动生成模式注释文件以描述数据库中的关系用于处理自然语言查询的系统。2.相关技术讨论3.关系数据库管理系统可用于存储和管理结构化数据。数据库中的数据可以基于结构化查询语言中的技术知识和专业知识来访问,并且通常是复杂且时间密集的过程。为了改进对存储数据的访问,可以使用到数据库系统的自然语言接口,其允许用户通过询问自然语言问题并且从数据库接收答案来访问数据。到数据库系统的自然语言接口将自然语言表达转换成结构化查询,该结构化查询提供对数据库中的信息的简单且快速的访问。4.到数据库系统的基于规则的自然语言接口使用定义实体之间的关系的数据库元素的语义模型来操作。到数据库系统的基于规则的自然语言接口依赖于数据库的本体表示,涉及实体的分类和那些实体之间的关系的建模。5.然而,生成数据库本体通常是耗时且手工密集的过程。数据库本体利用模式来指定实体彼此之间具有的关系的类型。通常,实体之间的关系的明确性质由具有底层数据库结构和本体的深入知识的专家提供。例如,在传统方法中,创建模式注释文件是由用户执行的,该用户了解数据库结构和本体以及模式注释文件结构和所支持的短语格式以及用于创建模式注释文件的标记语句。6.创建这样的语义模型或本体是耗时的手动过程,其需要深入了解数据库结构和模式,因为每个关系是以手动方式定义的。对于大型或复杂的系统,这种方法是不可行的。7.因此,在本领域中需要解决上述问题。技术实现要素:8.从第一方面来看,本发明提供了一种使用计算设备来创建关系数据库的语义模型用于处理自然语言查询的自动化方法,该方法包括:由所述计算设备自动提取关系数据库元数据;由所述计算设备提示来自用户的针对所提取的元数据的列的文本标签;由所述计算设备基于所述关系数据库元数据和在所述列中提供的所述文本标签自动生成模式注释文件;以及使用模式注释文件处理对关系数据库的自然语言查询。9.从另一方面来看,本发明提供了一种用于在计算域中处理软件服务的系统,该系统包括:一个或多个处理器;一个或多个计算机可读存储介质;存储在所述一个或多个计算机可读存储介质上以供一个或多个计算机处理器中的至少一个计算机处理器执行的程序指令,所述程序指令包括用于以下操作的指令:由所述计算设备自动提取关系数据库元数据;由所述计算设备提示来自用户的针对所提取的元数据的列的文本标签;由所述计算设备基于所述关系数据库元数据和在所述列中提供的所述文本标签自动生成模式注释文件;以及使用模式注释文件处理对关系数据库的自然语言查询。10.从另一方面来看,本发明提供了一种用于在计算域中处理软件服务的计算机程序产品,所述计算机程序产品包括一个或多个计算机可读存储介质,所述一个或多个计算机可读存储介质共同具有共同存储在所述一个或多个计算机可读存储介质上的程序指令,所述程序指令可由计算机执行以使所述计算机:由所述计算设备自动提取关系数据库元数据;由所述计算设备提示来自用户的针对所提取的元数据的列的文本标签;由所述计算设备基于所述关系数据库元数据和在所述列中提供的所述文本标签自动生成模式注释文件;以及使用模式注释文件处理对关系数据库的自然语言查询。11.从另一方面来看,本发明提供了一种用于创建关系数据库的语义模型以便处理自然语言查询的计算机程序产品,该计算机程序产品包括计算机可读存储介质,该计算机可读存储介质可由处理电路读取并且存储用于由处理电路执行以便执行用于执行本发明的步骤的方法的指令。12.从另一方面来看,本发明提供了一种存储在计算机可读介质上并且可加载到数字计算机的内部存储器中的计算机程序,包括软件代码部分,当所述程序在计算机上运行时,用于执行本发明的步骤。13.根据本发明的实施例,提供了用于自动创建关系数据库的语义模型以处理自然语言查询的方法、系统和计算机可读介质。计算设备自动提取关系数据库元数据。计算设备提示用户输入所提取的元数据的列的文本标签,并且基于关系数据库元数据和每一列的文本标签自动生成模式注释文件。使用模式注释文件处理对关系数据库的自然语言查询。该系统可以基于自动模式注释文件生成词汇规则。与手动生成模式注释文件的传统方法相比,该方法提供了一种基于注释的元数据生成模式注释文件的自动方法。14.根据另一方面,用户在不知道关系数据库的结构或关系数据库的本体的情况下注释所提取的元数据。该方法提供了能够基于注释的元数据生成模式而无需专门了解底层数据库或本体的优点。15.在另一方面,模式注释文件被处理成具有用于关系数据库的语义注释的词汇规则。在另外的方面,从用户接收自然语言问题。使用基于语义注释生成的词汇规则将接收到的自然语言问题转换成结构化查询。基于结构化查询的结果生成对所接收的自然语言问题的回答。这些方法具有允许用户询问关于数据库的内容的问题,以及允许系统基于根据模式注释文件生成的词汇规则检索数据库的相关内容的优点。该方法不需要用户生成结构化查询来访问数据库中的内容。16.在其他方面,对所提取的元数据的注释包括文本标签,其中,所述文本标签至少包括语义类型和元素标签。这里,为了生成模式,需要最小量的注释(例如,在这里提供的示例中,仅注释了两列)。17.在其他方面,使用用户输入的自然语言处理来提取语义,创建模式注释文件,并且所提取的语义用于创建关系数据库的实体之间的关系。使用自然语言处理创建模式注释文件允许以自动的方式建立关系。18.在进一步的方面,机器学习系统可被用于创建具有语义注释的模式特定的词汇规则,其中机器学习系统基于英语语言的固定语法规则来使用模式注释文件和模板规则以创建模式特定的词汇规则。这种方法的优点是进一步自动化nlidb系统以便与用户交互。19.应当理解,该
发明内容不旨在标识本公开的实施例的关键或必要特征,也不旨在用于限制本公开的范围。通过下面的描述,本公开的其它特征将变得易于理解。附图说明20.现在将参照优选实施例仅通过示例的方式描述本发明,如以下附图所示:21.图1是根据本发明的实施例的用于自动模式生成系统的示例计算环境的示意图。22.图2是根据本发明的实施例的用于图1的计算环境的示例计算设备。23.图3a是根据本发明的实施例的提取的元数据的示例。24.图3b是根据本发明的实施例的已由用户注释的提取的元数据的示例。25.图3c是示出根据本发明的实施例的、在与用户交互的自然语言处理系统中的自动模式生成系统的操作的流程图。26.图4是根据本发明的实施例,由自动模式生成系统生成的示例模式注释文件。27.图5是示出根据本发明的实施例的确定和过滤附加关系以便包括到模式注释文件中的流程图。28.图6是根据本发明的实施例,示出自动模式注释文件系统的操作的高级流程图。具体实施方式29.提供了用于以模式注释文件(saf)的形式创建关系数据库的本体表示或语义模型的自动化技术。saf是文本文件,其可以用于使到数据库(nlidb)系统的自然语言接口适应于特定模式,并且不依赖于底层数据库结构和本体的知识。30.在实施例中,描述数据库的结构的关系数据库元数据被自动提取。用户注释(例如,提供基于文本的标签)所提取的元数据的列。基于本文提供的技术,自动注释经标记的所提取的数据库实体之间的语义关系以形成语义模型。在各实施例中,语义模型在可由任何自然语言处理(nlp)系统处理的自然语言文本中产生,以生成应用于关系数据库的词汇规则。所生成的saf可以被用来自动地使nlidb系统适应于特定的数据库模式。31.这里提供了用于创建saf形式的本体模型的技术,saf是一种表示数据库的语义模型的文本文件。基于来自用户的最少输入,并且在没有数据库的先验知识的情况下,saf可被自动生成。32.图1示出了用于本发明实施例的示例环境。具体地,该环境包括一个或多个服务器系统10、一个或多个客户端或最终用户系统20、数据库30和网络45。服务器系统10和客户端系统20可以彼此远离,并且可以通过网络45通信。该网络可以由任何数量的任何合适的通信介质实现,例如广域网(wan)、局域网(lan)、因特网、企业内部网等。或者,服务器系统10和客户端系统20可以是彼此本地的,并且可以经由任何适当的本地通信介质进行通信,例如局域网(lan)、硬连线、无线链路、内联网等。33.客户端系统20使得用户能够基于结构化数据库50提供对由服务器系统10生成的提取的元数据的注释,用于自动saf创建。服务器系统10包括自动化模式注释文件生成系统15,其包括元数据提取引擎105、用户界面引擎110、saf生成引擎115、规则生成引擎120和nlidb模块125,如本文所述。34.数据库30可以存储用于分析的各种信息,例如提取的数据32、提取的注释数据34、创建的模式36和词汇规则38等。所提取的数据32可以包括从数据库50提取的信息(例如,以表格格式、以制表符定界格式或任何其它合适的格式等)。通过用户界面引擎110将提取的数据32提供给用户,以便进行注释。一旦注释了,数据可以作为提取的注释数据34存储。自动模式注释文件生成系统15根据提取的注释数据34创建模式36,系统15还可以根据生成的模式生成词汇规则38。35.数据库系统30和结构化数据库50可以由任何常规的或其他的数据库或存储单元实现,可以位于服务器系统10和客户端系统20本地或远离它们,并且可以经由任何适当的通信介质进行通信,所述通信介质诸如局域网(lan)、广域网(wan)、因特网、硬件线路、无线链路、内联网等。客户端系统可以呈现诸如gui等图形用户界面或诸如命令行提示、菜单屏幕等其它界面,以从用户请求关于元数据注释的信息,以及nlidb模块125,通过该模块来询问问题并接收关于结构化数据库50的内容的答案。36.服务器系统10和客户端系统20可以由任何常规的或其它的计算机系统来实现,所述计算机系统优选地配备有显示器或监视器、基本体(包括至少一个硬件处理器(例如,微处理器、控制器、中央处理单元(cpu)等)、一个或多个存储器和/或内部或外部网络接口或通信设备(例如,调制解调器、网卡等)、可选输入设备(例如,键盘、鼠标或其它输入设备)以及任何商业上可用的和定制的软件(例如,服务器/通信软件、自动模式注释文件生成系统软件、浏览器/接口软件等)。作为示例,服务器/客户端包括至少一个处理器16、22,一个或多个存储器17、24和/或内部或外部网络接口或通信设备18、26,诸如调制解调器或网卡,以及用户界面19、28等。可选的输入设备可以包括键盘、鼠标或其他输入设备。37.或者,一个或多个客户端系统20可以作为独立单元执行自动软件服务分析。在独立操作模式中,客户端系统存储或访问数据,例如提取的数据32、提取的注释数据34、模式36和词汇规则38。独立单元包括自动模式注释文件生成系统15。图形用户或其它接口19、28,例如gui、命令行提示、菜单屏幕等,从相应用户请求关于元数据注释的信息,以及nlidb模块125,通过它询问问题和接收关于结构化数据库50的内容的答案。38.自动模式注释文件生成系统15可以包括一个或多个模块或单元,以执行这里描述的本发明实施例的各种功能。各种模块,元数据提取引擎105、用户界面引擎110、saf生成引擎115、规则生成引擎120和nlidb模块125等,可以由任何数量的软件和/或硬件模块或单元的任何组合来实现,并且可以驻留在服务器的存储器17内以便由处理器16执行。这些模块在下面被更详细地描述。39.元数据提取引擎105从关系数据库(例如结构化数据库50)提取元数据。元数据可以包括任何适当形式的一个或多个表。40.本文提供的技术提供了连接到数据库并提取表征数据库的元数据。元数据包括实体/概念信息,诸如存在于数据库中的表名、列名、数据类型,和/或关于用于创建表之间的关系的主键和外键的信息。用户可以利用用户证书连接到数据库,并且使用诸如jdbcapi的应用编程接口(api)来检索与数据库相关联的各种元数据信息。41.用户界面引擎110可提示用户注释来自所提取的元数据的一个或多个列。用户界面引擎从用户接收输入以生成注释的元数据。42.用户界面引擎110可以创建所提取的元数据的视图,该视图示出了存储在关系数据库中的数据的结构和关系。在一些方面,视图可以是抽象层,其中视图中的一组实体/概念与链接连接。该视图允许重命名列中的表和数据条目以提供对所提取的元数据的有意义的描述。43.在其它方面,视图还允许将计算的列添加到表。例如,如果出于报告目的频繁地添加列的值,则可添加列并将聚集值分配给该列。这种方法可以掩盖复杂性,尤其是如果使用来自多个表的值来计算这些值的话。在其他情况下,检索数据可能更慢或更复杂,因为查询可能需要复杂的过程来从单个表检索不同的数据片段,或者查询可能需要寻址许多不同的表。虽然本文提供的示例是关于单个表的,但是本技术可以扩展到多个表。44.saf生成引擎115基于注释的元数据和saf相关文件117自动地生成saf。贯穿本技术和附图(也参见图3a-3c)更详细地描述了saf生成。saf创建需要各种saf相关文件117,包括模板规则(tr)文件、解析器116、词语语义(ws)文件、不规则动词(iv)文件以及动词释义(vp)文件。每种文件类型都在下面更详细地描述。45.模板规则(tr)文件是预先存在的文件,其包含与公共句子结构和句法相匹配的模板规则,其可以用于saf生成。句子结构可以是英语或其它自然语言。46.解析器116是分析描述数据库概念的单词和短语的工具。解析器可以从注释的提取的数据中确定单词和短语的语法属性(例如,词性,诸如单词是动词形式还是名词形式等)。47.词语语义(ws)文件是包含具有示出某些属性的相关联语义类型的常见词语的列表的文件。例如,ws文件可包括身份字(例如,名称、类型、样式等)、日期类型(例如,日期、年份、日、时间、持续时间等)、位置类型(例如,城市、国家、地址、街道等)等。48.不规则动词(iv)文件包含不规则动词和它们的过去时态的列表。49.动词释义(vp)文件是saf条目中的名词及其释义动词的自动创建的文件。例如,对于对应于“雇员具有薪水”的条目,单词薪水可以与诸如赚取、挣钱、接收等动词相关联。50.使用解析器、ws文件和iv文件,saf生成引擎处理每一列的信息并产生一个或多个saf条目。saf引擎还可产生vp文件的条目,其可在与nlidb模块125相关联的问题回答过程期间使用。51.saf是每行具有一个条目的文本文件。每个条目由描述数据库中的实体/概念之间的关系的固定格式的词或短语以及描述实体/概念的一组标志组成。saf可以包含至少三种类型的条目:“属性/身份”、“关联”和“动作”条目。属性/身份条目包含识别概念/实体的信息(例如,名称、id、类型等)。关联条目包含与概念/实体相关联的信息(例如,雇用日期、管理者等),但不直接标识概念/实体。动作条目定义概念/实体(例如,通常两个实体)之间的语义关系。在许多情况下,在实体/概念之间存在多于一个关系,因此,可能需要多个条目来描述每个关系。52.下面示出了具有单个“雇员”表的人力资源(hr)模式的示例saf条目。第一条目是雇员的概念/实体的属性条目。特别地,单词/短语“雇员”后面跟随两个标记语句。第一组标志指示“雇员”由表employee和列empno标识,并且具有整数的数据类型。第二组标志示出“名称”概念/实体由表employee、列empname和串的数据类型来标识。第二和第三条目是关联条目,指示“薪水”和“雇用日期”概念与雇员标志相关联,如在第一条目中那样标识每个概念。第四、第五和第六条目是“动作”条目。这些条目描述概念/实体之间的语义关系。示例如下所示:53.雇员有姓名;tablename是employee;columnname为empno;datatype是整数;tablename1是employee;columnname1是empname;datatype1是串;54.雇员有薪水;tablename是employee;columnname为empno;datatype是整数;tablename1是employee;columnname1是salary;datatype1是串;55.雇员具有雇用日期;tablename是employee;columnname为empno;datatype是整数;tablename1是employee;columnname1是hiredate;datatype1是日期;56.管理者管理雇员;tablename是employee;columnname是mgrname;datatype是串;tablename1是employee;columnname1是empno;datatype1是整数;57.雇员在某日期被雇用;tablename是employee;columnname为empno;datatype是整数;tablename1是employee;columnname1是hiredate;datatype1是日期;58.部门雇用雇员;tablename是employee;columnname为dptname;datatype是串;tablename1是employee;columnname1是empno;datatype1是整数;59.规则生成引擎120基于所创建的saf生成词汇规则38。nlidb模块125允许用户与服务器系统10交互以接收与关于结构化数据库50的内容的问题相关的答案。这些特征和其他特征在说明书和附图中描述。60.客户端系统20和服务器系统10可以由任何合适的计算设备来实现,诸如图2中所示的用于计算环境100的计算设备212。该示例不旨在对本文所述的本发明的实施例的使用范围或功能提出任何限制。无论如何,计算设备212能够被实现和/或执行本文阐述的任何功能。61.在计算设备中,存在可与众多其它通用或专用计算系统环境或配置一起操作的计算机系统。适合与计算机系统一起使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机系统、服务器计算机系统、瘦客户端、胖客户端、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络pc、小型计算机系统、大型计算机系统、以及包括任何上述系统或设备的分布式云计算环境等。62.计算机系统212可以在计算机系统可执行指令的一般上下文中描述,诸如由计算机系统执行的程序模块(例如,自动模式注释文件生成系统15及其对应的模块)。通常,程序模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、逻辑、数据结构等。63.计算机系统212以通用计算设备的形式示出。计算机系统212的组件可以包括但不限于一个或多个处理器或处理单元155、系统存储器136以及将包括系统存储器136在内的各种系统组件耦合到处理器155的总线218。64.总线218表示若干类型的总线结构中的任何一种的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线体系结构中的任何一种的处理器或局部总线。作为示例而非限制,这些体系结构包括工业标准体系结构(isa)总线、微通道体系结构(mca)总线、增强型isa(eisa)总线、视频电子技术标准协会(vesa)局部总线和外围部件互连(pci)总线。65.计算机系统212通常包括各种计算机系统可读介质。这样的介质可以是可由计算机系统212访问的任何可用介质,并且它包括易失性和非易失性介质、可移动和不可移动介质。66.系统存储器136可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(ram)230和/或高速缓冲存储器232。计算机系统212还可以包括其它可移动/不可移动、易失性/非易失性计算机系统存储介质。仅作为示例,存储系统234可被提供用于从不可移动、非易失性磁介质(未示出,并且通常被称为“硬盘驱动器”)读取和向其写入。尽管未示出,但是可以提供用于从可移动、非易失性磁盘(例如,“软盘”)读取和向其写入的磁盘驱动器,以及用于从诸如cd-rom、dvd-rom或其它光学介质等可移动、非易失性光盘读取或向其写入的光盘驱动器。在这种情况下,每个都可以通过一个或多个数据介质接口连接到总线218。如下面将进一步描绘和描述的,存储器136可以包括至少一个程序产品,该程序产品具有一组(例如,至少一个)程序模块,该程序模块被配置成执行本发明的实施例的功能。67.具有一组(至少一个)程序模块242(例如,自动模式注释文件生成系统15和相应的模块等)的程序/实用程序240,以及操作系统、一个或多个应用程序、其他程序模块和程序数据,可以存储在存储器136中,作为示例而非限制。操作系统、一个或多个应用程序、其它程序模块和程序数据或其某种组合中的每一个可包括联网环境的实现。程序模块242通常执行如本文所述的本发明实施例的功能和/或方法。68.计算机系统212还可以与一个或多个外部设备214通信,诸如键盘、定点设备、显示器224等;一个或多个设备,其使得用户能够与计算机系统212交互;和/或使计算机系统212能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这种通信可以经由输入/输出(i/o)接口222发生。此外,计算机系统212可以经由网络适配器225与一个或多个网络通信,所述网络诸如局域网(lan)、通用广域网(wan)和/或公共网络(例如,因特网)。如所描述的,网络适配器225经由总线218与计算机系统212的其他组件通信。应当理解,尽管未示出,但是可以结合计算机系统212使用其他硬件和/或软件组件。实例包括但不限于:微码、设备驱动程序、冗余处理单元、外部磁盘驱动器阵列、raid系统、磁带驱动器和数据档案存储系统等。69.图3a示出了从单表hr数据库中提取元数据的示例。该表是通过从包括雇员特征的数据库中提取数据而生成的。在该示例中,例如使用元数据提取引擎105从关系数据库50中自动提取元数据(例如,表名、列名和数据类型)。70.例如,使用用户界面引擎110,以浏览器格式或任何其它适当的交互等效物将所提取的数据呈现给用户,从而允许用户注释所提取的数据。在该示例中,注释器通过输入对该列中的每一行的描述(例如,雇员id、雇员姓名等)来提供对列“elementlabel”的描述。注释器还可以从有效类型(例如,人、日期、钱、无等)的列表中为列“elementlabel”中的每个相应条目选择semantictype。71.在一些实施例中,向用户呈现用于注释列的指南,并且可以向用户提供支持的语义类型的列表,其中示例作为指南。使用所述指南和支持的语义类型,用户注释元数据以包括每个条目的元素标签和语义类型。在其它方面,用户还可以提供英语单词作为表的名称,如果表名称不是标准英语单词的话(例如,如果表的名称是诸如emp_table的变量名称,则用户可以修改表名称以指代“雇员”)。72.在该示例中,如图3b所示,用户基于在中间提取的列(例如,tablename、columnname和datatype)中提供的信息来注释第一列和最后一列。用户可以例如以文本格式或以可以被转换成文本的语音格式来注释所呈现的列以生成注释表。73.使用这里描述的技术来处理该信息(例如,用户注释、提取的数据等),以由自动化模式注释文件生成系统15生成saf文件。saf文件的每个条目包括描述数据库中的实体/概念之间(例如,两个实体/概念之间)的关系的固定格式短语和描述每个实体/概念的标志集合。为了生成saf文件,分析列描述和语义类型,并且确定列的语义和它们彼此的关系。saf文件可被存储为模式36。该过程被更详细地描述,例如参见图3c。74.图3c示出了用于在包括nlidb模块125的系统中自动生成saf的示例工作流程。在操作410,从数据库(例如,关系数据库)提取元数据。在操作415,提示用户注释元数据。在操作420,接收注释的元数据。75.在操作425,注释的元数据由自动模式注释文件生成系统15处理以生成saf,典型地包括多个条目。由用户提供的用于标记条目的单词和/或短语(列条目)可以被分类到一组类别中。例如,可以基于单词的类型(例如,身份、日期等)对单词进行分类。可以基于词性(例如,名词、动词等)进一步对单词进行分类。在一些方面,名词的动词形式可以被分类为动词。76.每组分类结果对应于语义关系的特定样式。例如,如果标签是“雇员姓名”,则saf条目可以是“雇员具有姓名”。作为另一示例,如果标签是“雇用日期”,则可以创建多个条目作为“雇员具有雇用日期”和“雇员在某日期被雇用”。图4示出了由自动模式注释文件生成系统15生成的saf中的条目的附加示例。缩进的条目是从标识要连接两个名词的动词的释义引擎118创建的。77.表的主要概念/实体(例如,作为“雇员”的表名)可以与具有名词分类的其它列配对,并且被发送到释义引擎118,其产生语义上连接概念/实体(例如,两个或更多单词)的动词。例如,对于实体“雇员”和“管理者”,释义引擎可产生诸如“为…工作”、“向…报告”、“由…雇用”等动词。动词可以基于它们的使用频率来排名。这些动词可用于创建描述相同表或不同列和/或表中的条目之间的关系的条目。78.如果列(元素标签)的注释包含两个或更多的单词,则系统将使用支持的语法,并且将不允许不支持的语法。例如,支持“雇员雇用/受雇日期”或“雇员的雇用/受雇日期”,但不支持“雇员的雇用/受雇的日期”。79.关于saf创建的附加细节如下提供。使用解析器116以及saf相关文件117(例如ws文件和iv文件),saf生成引擎115如下分析条目:80.a.“身份”是主表概念(例如,雇员姓名)的概念/实体?该短语是否包含表名作为概念/实体之一?81.如果是,则该条目描述与表名直接相关的概念/实体,并且将另一单词的语义类型与ws文件进行比较。如果该条目与”身份“字之一匹配,则系统确定这是身份条目。82.b.这是不同于主表名称的“身份”实体/概念(例如,“管理者名称”或“部门名称”)?83.系统使用与(a)相同的过程来评估该概念/实体,其中条目不是主表名称。84.c.这是“非身份”实体/概念(例如,“雇员薪水”、“雇员管理者”或“雇员雇用日期”)?85.如果第二概念/实体与ws文件中提供的“身份”语义不匹配,则系统使用该分析来评估该条目。如果实体/概念包含多个单词(例如,“雇用日期”),则创建单个单词的列表以表示多单词实体(例如,雇用日期、雇用等)。86.这些分类可以用于确定哪些描述性词语/短语是“唯一的”(例如,在表格列中存在单个引用,诸如“管理者”或“部门”),以及哪些词语/短语不是唯一的(例如,“名称”)。诸如语义类型“日期”的某些概念接收特殊分类。如果在表中有多个日期(例如,“雇用日期”和“离职日期”),则即使各个单词是唯一的,这些单词也指代相同概念类型“日期”,因此不被认为是唯一的。87.基于这些分类,创建saf条目,并且基于从表中提取的信息来配置标志语句。对于第一分类,为主元素创建单个“属性”条目(例如,“雇员有名字”)。88.对于第二分类,如下创建多个条目:89.a)为概念创建“属性”条目(例如“管理者具有名字”)。90.b)为主元素(即,“雇员具有管理者”)创建第二“属性”条目。91.c)解析器116提取概念/实体的属性。在这种情况下,“管理者”被示为“名词”,但也可以具有动词形式“管理”。由于存在主元素的动词形式,因此创建第三条目,其为“管理者管理雇员”。如果主元素没有动词形式,则可以用非特定的默认关键词动词创建条目(例如,对于“部门名称”列,条目可以为“部门名称-动词-雇员”,其中动词被设置为默认动词(例如,包括、雇用等))。92.d)第四条目用语法“主元素-动词-介词-名词”产生。动词和介词是默认关键词。条目将具有格式:“雇员-动词-介词-管理者”,其等同于“雇员向管理者报告”,而不指定动词和介词的特定语义。类似地,“雇员-动词-介词-部门”可以是产生的另一条目。93.e)除了saf条目之外,通过释义引擎118处理两个名词概念(例如,雇员和管理者),并且提取连接这些概念的相关动词的列表(例如,对于“雇员和部门”而言的动词“工作”,以及对于“雇员”和“薪水”而言的动词“赚取”,等等)。概念名词及其相关联的动词被添加到vp文件以在问答阶段期间使用。94.第三分类类似于第二分类,除了当描述概念和/或诸如日期的特定语义类型的多个词表征概念时:95.a)为从多个字创建的下划线的单个字创建属性条目(例如,“雇员具有雇用日期”)。96.b)属性条目是从多个字本身创建的(例如,“雇用有日期”)97.c)将多个单词与ws文件进行比较。如果单词之一具有“日期”或“位置”类型,并且解析器116检测到另一个单词的动词形式,则创建动词的过去时态或从iv文件中提取动词的过去时态,并且使用单词的动词形式创建条目。例如,“雇员雇用日期”将生产“雇员在某日被雇用”。如果有描述为“雇员的居住国家”的列,则可以将条目创建为“雇员居住在一个国家中”。所使用的介词对于日期是“在”,对于位置是“在…中”,对于其它类型是“用于”。然而,只要语法正确,则创建条目而不管所使用的特定介词。98.这个自动过程可能产生少量的具有不正确的语法或语义的条目,这些错误的语法或语义可能被词汇规则创建过程所消除。无论如何,条目的总体提供了足够的本体表示以使得能够回答大多数问题。99.在操作425,基于此处所述的注释和所提取的元数据生成saf文件(也参见图4)。解析器、ws文件和iv文件是在saf的创建期间使用的预先存在的资源。tr文件在训练阶段期间被使用,此时saf被处理以创建用于模式的语义规则。vp文件在saf创建期间产生,并且在操作阶段期间使用,以便回答用户问题。100.在操作435,创建词汇规则以自动化saf条目。一旦生成saf,就可以使用包含词汇规则的预先存在的文件来处理saf以响应用户查询。词汇规则可以用于匹配语言语法和结构。101.对于以自动方式执行的saf生成,所生成的词汇规则包括(1)将短语与精确的词汇信息匹配,以及(2)更宽且不强加精确的词汇信息来匹配短语的规则。以自动方式生成saf允许更抽象且不包含精确词汇信息的条目。102.用于将短语与精确词汇信息匹配的模板规则的示例是(第一行是规则的名称,并指定存在两个名词变量和一个动词):103.根=prop_owner_var1_var2_var3_[0104]->var2[haspartofspeech(“动词”),haslemmaform(“var2”)][0105]{subj->var1[haspartofspeech(“名词”),haslemmaform(“var1”)]}[0106]{obj->var3[haspartofspeech(“名词”),haslemmaform(“var3”)]}[0107]上述规则将任何句子与“主语动词宾语”样式匹配。第一行是规则的标题或名称。var1和var2是主语和宾语的一般表示,动词是任何动词的表示。由该模板规则创建的词法规则将匹配主语、动词和宾语的精确单词(因为该规则强加了单词的词元(lemma)形式)。[0108]在自动saf处理中使用的模板规则的一个例子是(不强加精确的词汇信息来匹配短语):[0109]根=prop_owner_var1_var2_var3_[0110]->var2[haspartofspeech(“动词”)][0111]{subj->var1[haspartofspeech(“名词”),haslemmaform(“var1”)]}[0112]{obj->var3[haspartofspeech(“名词”),haslemmaform(“var3”)]}[0113]上述规则在语法上类似于第一规则,但是没有指定动词的词元形式。结果,所创建的词汇规则不具有明确的语义信息,并且缺少动词的特定单词(在某些情况下,用默认的关键字动词创建),并且具有匹配语法的任何句子将匹配主语和宾语的单词,而不管动词的单词是什么。这些类型的规则可以如本文所述来标识。[0114]作为另一个例子,对于列“部门名称”(其产生多个saf条目),条目“部门具有名称”和“管理者管理雇员”产生精确的词汇规则。然而,“部门-动词-雇员”将匹配如下规则:[0115]根=prop_owner_department_verb_employee_[0116]-》_动词_[haspartofspeech(“动词”)][0117]{subj->部门[haslemmaform(“部门”)]}][0118]{obj-》雇员[haslemmaform(“雇员”)]}[0119]上述规则将任何句子与语法“主语动词宾语”匹配,其中主语是部门,宾语是雇员。诸如“销售部门雇用了多少雇员”的问题将匹配上述规则的派生之一,并且将得到正确的回答。然而,对于诸如“销售部门中有多少雇员退休”的问题,由于规则中的动词是非特定的,因此该问题将以与先前问题完全相同的方式来回答。为了避免不匹配,在问题处理期间,对照在saf创建过程期间创建的vp文件来检查具有非特定动词的规则。该文件使用释义引擎118来创建,并且包括将雇员与部门相关联的合理动词的列表。如果句子中的动词与为这两个名词列出的动词中的任何一个都不匹配,则将消除该规则。[0120]将词汇规则应用于saf条目以找到匹配语法。当saf条目匹配规则时,自动地用模板规则的语法创建新规则,但是用来自saf条目的词语替换一般变量。例如,将模板文件的“主语动词宾语”规则应用于上述示例的第四条目,将创建以下词汇规则:[0121]根=prop_owner_manager_manage_employee_[0122]-》管理[haspartofspeech(“动词”),haslemmaform(“管理”)][0123]{sub->管理者haslemmaform(“管理”)]})[0124]{obj-》雇员[haslemmaform(“雇员”)]}[0125]上述规则精确地匹配“管理者管理雇员”的语法和语义。对于与模板规则之一匹配的每个条目,自动创建具有不同语法和具有相同语义信息的派生规则范围,以使得能够回答不同类型的问题。例如,条目四的派生规则可以匹配“john管理多少雇员”或“哪个管理者管理jack”,或“谁管理比joe更多的雇员”。条目五派生词将支持诸如“2013年后雇用了谁”或“jim后雇用了多少雇员”等问题。[0126]在训练过程期间,模板规则可以被应用于saf条目,并且可以自动地创建与模板规则的语法相匹配但包含saf的语义信息的依赖于模式的词汇规则。[0127]在操作阶段期间,可以使用词汇规则文件,以处理从用户到sql的输入问题,如操作440、445和450所示。用于自动saf的词汇规则更广泛,并且可以将输入句子与数据库中不存在的语义相匹配。因此,处理自动创建的saf规则将需要更多的资源和算法分析来识别不正确的规则匹配。这些技术可以与手动创建的词汇规则一起使用,以匹配具有saf条目的精确语法和语义的任何输入句子。[0128]因此,数据库的自动模式和词汇规则可以用于回答用户问题。在操作445,用户可以向系统发送问题。系统可以利用词汇规则和自动模式处理问题,以获得数据库50中的答案。在操作450,系统可以提供用户问题的答案。[0129]图4示出了由自动化模式注释文件生成系统15生成的saf中的条目的示例。缩进的条目是从标识要连接两个名词的动词的释义引擎118创建的。[0130]图5示出了另一个实施例,其中语料库分析和附加资源(例如,在线资源)可以用于将概念/实体连接到本体论关系,即,使用具有相应名词作为自变量的动词。这种类型的分析可以用于管理作为单个单词的注释。[0131]根据该实施例,从关系数据库提取元数据可以在操作505发生。在操作510,条目可被注释,一些条目具有单个单词。在操作515,可以识别单个单词注释,并选择该注释用于进一步分析。在操作518提供附加本体规则。系统可以使用各种语法、本体和语义规则。[0132]在操作530,系统分析数据语料库以学习单词之间的关系。在一些方面,系统计算每个动词在特定语法位置中的出现概率,然后使用链概率方程来对候选者进行排名,从而允许确定精确的和相关的关系。[0133]作为概率计算的示例,分别对于任何名词(n)和对于任何语法位置((s)诸如主语、宾语或介词的介词宾语(例如,去往、处于、来自)和任何动词(v)),可以确定n的v和s的概率:[0134]p(v,s|n)=p(v,s,n)/p(n)~p(v|n)*p(v|s)*p(n|v,s)。[0135]可以确定来自语料库的概率p(v|n)、p(v|s)p(n|s),其可以是域特定的或一般的。对于任何两个名词(n1和n2),以及对于语法位置(s1,s2)的任何组合,可计算概率:[0136]p(v,n1,n2)~p(v,s1|n1)*p(v,s2|n2)[0137]并且动词可以基于该概率被分级。通常不考虑排名太高、太低或太频繁的动词。本体约束可以从信息源自动收集,例如从任何在线或数字化源收集,并且可以用于识别关系。[0138]在操作520,可以基于本体规则,例如通过应用语法限制、本体相似性和/或语义相似性,来过滤从语料库识别的关系。例如,本体规则包括一起共同出现的名词、与名词共同出现的动词等。作为另一示例,可以对语法组合的可能组合施加限制,使得诸如“主语主语”等的补集位置不被考虑。在操作540提供过滤关系。[0139]在其他方面,机器学习系统可被训练成创建具有语义注释的模式特定词汇规则。机器学习系统可使用基于英语语言的固定语法规则的saf和模板规则来创建模式特定词汇规则。例如,附加的词汇规则可以通过用对saf条目释义的自然语言短语的监督机器学习训练来创建。这些附加规则扩展了初始固定规则集,并创建了使得能够处理更宽范围的自然语言短语的更丰富的词汇规则集。[0140]图6是示出了这里提供的自动模式注释文件生成系统15的高级操作的操作流程图。在操作610,关系数据库元数据由计算设备自动提取。在操作620,计算设备提示输入用于元数据的列的文本标签(例如,由用户提供)。在操作630,计算设备基于关系数据库元数据和列的文本标签自动生成模式注释文件。在操作640,使用模式注释文件处理对关系数据库的自然语言查询。[0141]本发明实施例的特征包括saf的自动生成。saf文件的生成基于来自用户的最小注释,并且用户不需要知道从其获得元数据的数据库的结构或本体。此外,saf条目以比手动生成的条目更宽的方式生成。因此,saf比创建saf文件的人工方法更健壮。更进一步,模式特定的词汇规则可以从自动生成的saf创建。此处生成的saf可与例如以问答方式与用户交互的系统一起使用。例如,从自动saf生成的词汇规则被应用于用户输入问题以检测和处理用户问题的内容。所创建的saf和固定的模板规则被用来自动地创建与特定数据库模式有关的一组词汇规则。nlp引擎将这些规则应用于自然语言用户问题以检测单词之间的元素和语义关系,并创建一组中间结构化短语,该组中间结构化短语随后将被转换成sql子句。[0142]来自自动创建的saf的词汇规则是宽泛的,并且可以包含非特定的词汇信息。可以用附加信息(例如,在线或其它文本资源以从输入问题的元素中提取正确的含义)来细化词汇规则,以便构造适当的sql查询。[0143]因此,这些技术改进了计算机的操作,尤其是改进了与用户交互的nlidb系统,因为saf可以用最少的注释自动生成。saf提供了用于生成词汇规则以访问数据库内容的框架。[0144]将理解,以上描述和在附图中示出的实施例仅表示实现用于基于接收到的注释以自动方式生成saf的实施例的许多方式中的一些。[0145]本发明实施例的环境可以包括以任何期望的方式布置的任何数量的计算机或其他处理系统(例如,客户端或终端用户系统、服务器系统等)以及数据库或其他储存库,其中本发明实施例可以应用于任何期望类型的计算环境(例如,云计算、客户端-服务器、网络计算、大型机、独立系统等)。本发明实施例所采用的计算机或其它处理系统可以由任何数量的任何个人或其它类型的计算机或处理系统(例如,台式机、膝上型计算机、pda、移动设备等)来实现,并且可以包括任何商业上可用的操作系统以及商业上可用的和定制的软件(例如,浏览器软件、通信软件、服务器软件、自动模式注释文件生成系统15等)的任何组合。这些系统可以包括任何类型的监视器和输入设备(例如,键盘、鼠标、语音识别等)以输入和/或查看信息。[0146]应当理解,本发明实施例的软件(例如,自动模式注释文件生成系统15,包括元数据提取引擎105、用户界面引擎110、saf生成引擎115、规则生成引擎120和nlidb模块125等)可以以任何期望的计算机语言来实现,并且可以由计算机领域的普通技术人员基于包含在说明书中的功能描述和附图中所示的流程图来开发。此外,本文对执行各种功能的软件的任何引用一般是指在软件控制下执行这些功能的计算机系统或处理器。本发明实施例的计算机系统可以可选地由任何类型的硬件和/或其它处理电路实现。[0147]计算机或其它处理系统的各种功能可以以任何方式分布在任何数量的软件和/或硬件模块或单元、处理或计算机系统和/或电路中,其中计算机或处理系统可以彼此本地或远程地布置,并且经由任何适当的通信介质(例如,lan、wan、内联网、因特网、硬件线路、调制解调器连接、无线等)进行通信。例如,本发明实施例的功能可以以任何方式分布在各种终端用户/客户机和服务器系统和/或任何其它中间处理设备中。可以以实现这里描述的功能的任何方式来修改上面描述的和流程图中示出的软件和/或算法。另外,流程图或描述中的功能可以以实现期望操作的任何顺序来执行。[0148]本发明实施例的软件(例如,自动模式注释文件生成系统15,包括元数据提取引擎105、用户界面引擎110、saf生成引擎115、规则生成引擎120和nlidb模块125等)可以在固定或便携式程序产品装置或设备的非临时性计算机可用介质(例如,磁或光介质、磁光介质、软盘、cd-rom、dvd、存储器设备等)上获得,以与独立系统或通过网络或其他通信介质连接的系统一起使用。[0149]通信网络可以由任何数量的任何类型的通信网络(例如,lan、wan、因特网、内联网、vpn等)来实现。本发明实施例的计算机或其它处理系统可以包括任何常规或其它通信设备,以经由任何常规或其它协议通过网络进行通信。计算机或其它处理系统可以利用任何类型的连接(例如,有线、无线等)来访问网络。本地通信介质可以由任何合适的通信介质(例如,局域网(lan)、硬件线路、无线链路、内联网等)来实现。[0150]系统可以采用任何数量的任何常规或其它数据库、数据存储或存储结构(例如,文件、数据库、数据结构、数据或其它储存库等)来存储信息(例如,提取的数据32、提取的注释数据34、模式36、词汇规则38等)。数据库系统可以由任何数量的任何常规或其它数据库、数据存储或存储结构(例如,文件、数据库、数据结构、数据或其它储存库等)来实现,以存储信息(例如,提取的数据32、提取的注释数据34、模式36、词汇规则38等)。数据库系统可以包括在服务器和/或客户端系统内或耦合到服务器和/或客户端系统。数据库系统和/或存储结构可以远离计算机或其它处理系统或在计算机或其它处理系统本地,并且可以存储任何期望的数据(例如,提取的数据32、提取的注释数据34、模式36、词汇规则38等)。[0151]本发明的实施例可以采用任何数量的任何类型的用户界面(例如,图形用户界面(gui)、命令行、提示等)来获得或提供信息(例如,提取的数据32、提取的注释数据34、模式36、词汇规则38等),其中该界面可以包括以任何方式排列的任何信息。该界面可以包括布置在任何位置的任何数量的任何类型的输入或致动机制(例如,按钮、图标、字段、框、链接等),以经由任何合适的输入设备(例如,鼠标、键盘等)输入/显示信息并发起期望的动作。界面屏幕可以包括任何合适的致动器(例如,链接、选项卡等)以便以任何方式在屏幕之间导航。[0152]自动模式注释文件生成系统15的输出可以包括以任何方式排列的任何信息,并且可以基于规则或其他标准进行配置,以向用户提供期望的信息(例如,元数据、问题答案等)。[0153]本发明实施例不限于上述特定任务或算法,而是可用于其中自动模式生成有用的任何应用。此外,该方法通常可应用于各种
技术领域
:,包括但不限于人力资源、医疗、金融、营销、政府等。[0154]本文所用的术语仅是为了描述特定实施例的目的,而不是要限制本发明。如本文所用,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文另有明确指示。还应当理解,术语“包括”、“包含”、“含有”、“具有”、“带有”等在本说明书中使用时,指定所述特征、整数、步骤、操作、元件和/或部件的存在,但不排除一个或多个其它特征、整数、步骤、操作、元件、部件和/或其组合的存在或添加。[0155]以下权利要求中的所有装置或步骤加功能元件的对应结构、材料、动作和等同物旨在包括用于与如具体要求保护的其它要求保护的元件组合执行功能的任何结构、材料或动作。已经出于说明和描述的目的给出了本发明的描述,但是该描述不是穷举的或者将本发明限制为所公开的形式。在不背离本发明范围的情况下,许多修改和变化对于本领域普通技术人员来说是显而易见的。选择和描述实施例是为了最好地解释本发明的原理和实际应用,并且使本领域的其他普通技术人员能够理解本发明的具有各种修改的各种实施例,这些修改适合于所设想的特定用途。[0156]已经出于说明的目的给出了本发明的各种实施例的描述,但是其不旨在是穷尽的或限于所公开的实施例。在不背离所描述的实施例的范围的情况下,许多修改和变化对于本领域的普通技术人员将是显而易见的。选择本文所使用的术语以最好地解释实施例的原理、实际应用或对市场上存在的技术改进,或使本领域的其他普通技术人员能够理解本文所公开的实施例。[0157]本发明可以是任何可能的技术细节集成水平的系统、方法和/或计算机程序产品。计算机程序产品可以包括其上具有计算机可读程序指令的计算机可读存储介质(或多个介质),所述计算机可读程序指令用于使处理器执行本发明的各方面。[0158]计算机可读存储介质可以是能够保留和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪存)、静态随机存取存储器(sram)、便携式光盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、诸如上面记录有指令的打孔卡或凹槽中的凸起结构的机械编码装置,以及上述的任何适当组合。如本文所使用的计算机可读存储介质不应被解释为暂时性信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤线缆的光脉冲)、或通过导线传输的电信号。[0159]本文描述的计算机可读程序指令可以从计算机可读存储介质下载到相应的计算/处理设备,或者经由网络,例如因特网、局域网、广域网和/或无线网络,下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。[0160]用于执行本发明的操作的计算机可读程序指令可以是汇编指令、指令集架构(isa)指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路的配置数据,或者以一种或多种编程语言(包括面向对象的编程语言,例如smalltalk、c 等)和过程编程语言(例如“c”编程语言或类似的编程语言)的任意组合编写的源代码或目标代码。计算机可读程序指令可以完全在用户的计算机上执行,部分在用户的计算机上执行,作为独立的软件包执行,部分在用户的计算机上并且部分在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情况下,远程计算机可以通过任何类型的网络连接到用户的计算机,包括局域网(lan)或广域网(wan),或者可以连接到外部计算机(例如,使用因特网服务提供商通过因特网)。在一些实施例中,为了执行本发明的各方面,包括例如可编程逻辑电路、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化。[0161]在此参考根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本发明的各方面。将理解,流程图和/或框图的每个框以及流程图和/或框图中的框的组合可以由计算机可读程序指令来实现。[0162]这些计算机可读程序指令可以被提供给计算机或其他可编程数据处理装置的处理器以产生机器,使得经由计算机或其他可编程数据处理装置的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理装置和/或其他设备以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。[0163]计算机可读程序指令还可以被加载到计算机、其他可编程数据处理装置或其他设备上,以使得在计算机、其他可编程装置或其他设备上执行一系列操作步骤,以产生计算机实现的过程,使得在计算机、其他可编程装置或其他设备上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。[0164]附图中的流程图和框图示出了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的架构、功能和操作。在这点上,流程图或框图中的每个框可以表示指令的模块、段或部分,其包括用于实现指定的逻辑功能的一个或多个可执行指令。在一些替代实施方案中,框中所注明的功能可不按图中所注明的次序发生。例如,连续示出的两个框实际上可以作为一个步骤来实现,同时、基本同时、以部分或全部时间重叠的方式执行,或者这些框有时可以以相反的顺序执行,这取决于所涉及的功能。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由执行指定功能或动作或执行专用硬件和计算机指令的组合的专用的基于硬件的系统来实现。当前第1页12当前第1页12
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献