[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

CN112437917A - 使用自主代理和词库的数据库的自然语言接口 - Google Patents

使用自主代理和词库的数据库的自然语言接口 Download PDF

Info

Publication number
CN112437917A
CN112437917A CN201980046615.9A CN201980046615A CN112437917A CN 112437917 A CN112437917 A CN 112437917A CN 201980046615 A CN201980046615 A CN 201980046615A CN 112437917 A CN112437917 A CN 112437917A
Authority
CN
China
Prior art keywords
database
query
node
keywords
natural language
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201980046615.9A
Other languages
English (en)
Other versions
CN112437917B (zh
Inventor
B·加里斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Oracle International Corp
Original Assignee
Oracle International Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Oracle International Corp filed Critical Oracle International Corp
Publication of CN112437917A publication Critical patent/CN112437917A/zh
Application granted granted Critical
Publication of CN112437917B publication Critical patent/CN112437917B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2452Query translation
    • G06F16/24522Translation of natural language queries to structured queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/237Lexical tools
    • G06F40/247Thesauruses; Synonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本公开的一方面涉及将自然语言查询转换成原生数据库查询。例如,数据库应用从用户接收自然语言查询、将查询划分为子句、从子句确定关键字,并将查询中的关键字映射到可以查询数据库的原生查询。在自然语言查询包括未被映射的关键字的情况下,应用通过与用户设备通信来解决歧义性。在不能映射关键字的情况下,应用可以将关键字映射到自定义索引,该自定义索引包括使用成对概括或其它技术得出的同义词。一旦映射所有关键字,数据库应用就生成原生数据库查询并从数据库获得结果。

Description

使用自主代理和词库的数据库的自然语言接口
技术领域
本公开一般而言涉及数据库。更具体而言,本公开涉及将自然语言查询转换成原生数据库查询。
相关申请的交叉引用
本公开要求于2018年7月25日提交的美国临时申请号62/703,389的优先权,其全部内容为了所有目的并入本文。
背景技术
关系数据库可以由支持广泛的查询机制的现代查询语言(诸如结构化查询语言(SQL))访问。但是,对于非软件开发人员,SQL接口可能难以用这些语言来设计搜索查询。因此,这些低质量的查询会导致低质量的结果。
存在一些用于将自然语言(NL)查询转换成数据库查询的解决方案。但是这些解决方案是不足的。例如,一些解决方案可以使用经训练的神经网络来执行转换。但是这些解决方案存在问题。例如,可能需要庞大的训练数据集,并且这些解决方案是特定于领域的。
因此,需要可以将自然语言查询转换成现代查询语言的新解决方案。
发明内容
本公开涉及将自然语言查询转换成原生(native)数据库查询。例如,数据库应用从用户接收自然语言查询、将查询划分为子句(clause)、从子句确定关键字(keyword),并将查询中的关键字映射到可以对数据库进行查询的原生查询。在自然语言查询包括未被映射的关键字的情况下,该应用使用用户设备来解决这种歧义性(ambiguity)。在关键字不能以传统方式(例如,经由映射到表或字段)映射到数据库的情况下,该应用可以将关键字映射到自定义索引,该自定义索引包括使用成对概括(pair-wise generalization)或其它技术得出的同义词(synonym)。
本公开的一方面涉及一种用于经由数据库来服务自然语言查询的方法。该方法访问具有表的数据库。每个表包括字段(field)以及识别该表的标签(label),每个字段包括属性。该方法还访问自定义数据库索引,该自定义数据库索引包括实体(entity),这些实体包括字段、属性以及字段或属性的一个或多个同义词。该方法还访问自然语言搜索查询。该方法还根据自然语言搜索查询构造解析树。该解析树包括包含单词类型的至少一个终端节点和表示自然语言搜索查询的单词或短语的至少一个终端节点。解析树识别自然语言查询的句法信息(syntactic information)。该方法还从解析树中识别一个或多个子句。子句包括关键字,并且其中每个关键字是名词或动词。该方法还执行以下操作中的一个或多个:将每个关键字与表之一的标签、表之一的字段、和/或字段的属性进行匹配,以及确定关键字和自定义数据库索引之间的匹配的阈值级别。该方法还根据所映射的关键字生成数据库查询。该方法还通过向数据库提供该数据库查询来从数据库获得结果。该方法还将该结果显示给用户设备。
在另一方面,该方法确定关键字中的关键字在数据库中未匹配,并将隐式节点插入到解析树中,其中隐式节点识别该关键字。该方法将该关键字呈现给用户设备。
在另一方面,该方法从用户设备接收澄清(clarification)、基于该澄清更新解析树,并且将来自解析树的更新后的子句与数据库进行匹配。
在另一方面,映射每个关键字包括将关键字之一与表之一的标签进行匹配。
在另一方面,映射每个关键字包括将关键字之一与表之一的字段的阈值数量的单词进行匹配。
在另一方面,映射每个关键字包括确定关键字的一个或多个同义词并将该一个或多个同义词映射到表之一的字段。
在另一方面,确定匹配的阈值级别包括:通过搜索自定义数据库索引来获得多个候选者;为每个候选者确定实体与相应结果之间的匹配级别;以及确定所有实体中具有最高匹配级别的实体。
在另一方面,关键字与自定义数据库索引的实体之间的匹配级别是使用词频-逆文档频率法(term frequency-inverse document frequency)来确定的。
在另一方面,访问自定义数据库索引包括访问包括一组连接节点的词库。连接节点包括根节点和终端节点。终端节点是根节点的同义词。该方法还迭代地对于每个终端节点执行操作。该操作包括形成搜索查询,该搜索查询包括从根节点到相应终端节点的路径。该操作还包括通过将搜索查询提供给搜索引擎来获得结果集合。该操作还包括计算结果集合中的每对结果的成对概括。成对概括提取每个结果的相应对所共有的一个或多个关键字。该操作还包括从成对概括中提取单词或短语。该操作还包括提取在成对概括内以高于阈值频率的频率出现的经排序的元素的子集。该操作还包括根据提取出的元素的子集创建新节点。该操作还包括将该新节点连接到相应终端节点。
可以在计算机设备或计算机系统中实现上述方法。程序指令也可以存储在非暂态计算机可读介质上。
附图说明
图1是根据本公开的一方面的用于从自然语言查询生成数据库查询的系统的图。
图2是描绘根据本公开的一方面的用于从自然语言查询生成数据库查询的处理的示例的流程图。
图3是描绘根据本公开的一方面的用于自然语言查询的解析树的图。
图4是描绘根据本公开的一方面的用于从解析树进行子句提取的处理的示例的图。
图5是描绘根据本公开的一方面的将关键字与数据库表进行匹配的图。
图6是描绘根据本公开的一方面的用于与数据库索引进行关键字匹配的处理的图。
图7是描绘根据本公开的一方面的数据库的示例的图。
图8描绘了根据本公开的一方面的从迁移学习(transfer learning)的角度来看的经词库辅助的搜索。
图9描绘了根据本公开的一方面的词库的快照的示例。
图10描绘了根据本公开的一方面的示例搜索结果。
图11描绘了根据本公开的一方面的词库学习。
图12描绘了根据本公开的一方面的词库学习。
图13描绘了根据本公开的一方面的词库学习。
图14描绘了用于实现这些方面之一的分布式系统的简化图。
图15是根据一方面的系统环境的部件的简化框图,通过该系统环境,可以将由方面系统的部件所提供的服务作为云服务供应。
图16图示了在其中可以实现本公开的各个方面的示例性计算机系统。
具体实施方式
本公开的各方面涉及改进的数据库系统。具体地,所公开的系统通过采用语言方法和基于关键字的方法二者将自然语言查询转换成数据库查询。某些方面还识别自然语言查询中的有歧义的词语,并通过使用自主代理(“聊天机器人”)来解决这些歧义。在一些情况下,可以创建词库并将其用于将人们用来描述各种实体、动作或属性的单词与数据库表或字段进行匹配。以这种方式,相对于现有解决方案,所公开的解决方案提供了改进的数据库查询,并且因此提供了更有意义的结果。
与诸如结构化的基于关键字的搜索、基于表单的请求接口和可视查询构建器之类的流行的查询接口相比,自然语言数据库接口具有许多优势。例如,自然语言接口使新手用户能够指定复杂的查询,而无需数据库专家对用户进行培训。但是将自然语言查询映射到数据库可能很困难。例如,用户查询有时可能是有歧义的。
自主代理是自然语言接口的自然扩展,并且可以被用于澄清用户提供的歧义词语。例如,用户可以搜索“titanic”。自然语言系统尝试将词语“titanic”与现有数据库进行匹配,但是该词语是有歧义的,因为它可以指同名的电影或船。因此,在自主代理促进对数据库进行良好查询所需的语言理解中的错误纠正时,数据库和自主代理可以彼此协同操作。
某些定义
如本文所使用的,“数据库”是指数据的有组织的或结构化的集合。数据库可以被组织成列和行。
如本文所使用的,“表”是指数据库内的关系。表也可以被称为“文件”或“类”。
如本文所使用的,“查询”是指导致从服务器检索数据的一种类型的命令。结构化查询语言(SQL)查询的示例是“SELECT column1,column2 FROM table1,table2 WHEREcolumn2='value'”。
如本文所使用的,“自然语言查询”是指以自然语言(例如英语)进行的数据库查询。自然语言查询的示例是“how many employees had a raise this year?(今年有多少员工加薪?)”
如本文所使用的,数据库或数据库表的“列”或“字段”。例如,列可以是“name(名称)”、“address(地址)”或“zip code(邮政编码)”。
如本文所使用,“行”或“记录”是特定列的值的列表。例如,第一记录可以具有值为“30021”的邮政编码,而第二记录可以具有值为“20021”的邮政编码。
现在转到各图,图1是根据本公开的一方面的用于从自然语言查询生成数据库查询的系统的图。图1描绘了计算环境100,计算环境100包括计算系统101,计算系统101可以经由用户界面110接收自然语言查询、将查询转换成原生数据库查询、从数据库190获得结果并将结果提供回用户界面110。可以使用将自然语言查询映射到数据库查询的各种方法。附加地或替代地,计算系统101可以检测自然语言查询中的歧义,并经由用户界面110获得澄清,从而产生更完整的映射和更好的搜索结果。
计算系统101包括数据库应用102和词库104。在示例中,数据库应用102执行与将自然语言查询(例如,NL查询120)映射到数据库的表或字段相关的功能。数据库应用102还可以执行与对数据库建立索引以及针对自定义索引执行搜索或创建自定义索引本身相关的功能。
数据库190可以包含关于任何主题的有组织的信息。主题的示例包括体育、音乐、文学、新闻、历史和科学。数据库190包括表191a-n,其可以以任何方式被组织。例如,如果数据库190包含有关体育的信息,那么表191a可以包括与棒球相关的主题,并且表191b可以包括与足球相关的主题,等等。类似地,如果数据库190包括有关乐器的信息,那么表191a可能包括有关铜管乐器的信息,而表191b包括有关打击乐器的信息,依此类推。每个表191a-n可以包括一个或多个字段。继续前面的示例,字段的示例是“团队”或“乐器类型”。每个表191a-n可以与另一个表链接。例如,包含有关足球联赛的信息的表可能被链接到具有每个联赛中的特定球队的另一个表。
在一些情况下,数据库190可以包括自定义索引192,该自定义索引192可以被用于优化SQL查询和数据组织。例如,自定义索引192可以被用于以与将关键字匹配到数据库参数(诸如,字段)不同的方式来搜索数据库。自定义索引192可以由数据库应用102或由另一个应用创建。在其它情况下,数据库190和自定义索引192由外部实体(诸如,具有对数据库190中的信息的专门知识的组织)提供。数据库190可以例如通过网络而位于计算系统101外部。
用户界面110可以是任何标准用户界面,诸如台式机平台或移动平台上的用户界面。用户界面110可以接收用户输入,例如NL查询120,并且例如通过澄清请求来促进与用户的交互。用户界面110可以输出数据,诸如搜索结果160。
在示例中,数据库应用102接收NL(自然语言)查询120,并尝试将查询中的子句与用于原生查询150的数据库190中的表或字段进行匹配。关于图2进一步说明合适的处理的示例。在简单的示例中,NL查询120包含子句,例如,“what are some reviews of slate?”。数据库应用102创建NL查询120的解析树,并识别子句和子句中的关键字。继续上面的示例,关键字是“reviews”和“slate”。
在一些情况下,NL查询120有歧义,因为数据库应用102不能将NL查询120中的关键字映射到数据库表、属性或自定义索引192内的实体。例如,“slate”可以指杂志“Slate”,或者可以指家电品牌“slate”。在这种情况下,数据库应用102向用户界面110发送澄清请求130并请求澄清。用户澄清他或她对“slate家电”感兴趣,这作为澄清140被传输到数据库应用102。进而,数据库应用102继续搜索处理、用新信息更新解析树、将解析树映射到原生查询150,并查询数据库。
分析查询可以包括根据NL查询120创建解析树。在另一个示例中,数据库应用102分析查询“Return users who watched more movies than Bob on Documentary after2007”。数据库应用102创建一组解析树。数据库应用102将歧义性提供给用户界面110。例如,一个候选解析树被解释为“return the users whose movies on Documentaryafter2007is more than Bob’s”。数据库应用102将隐式节点插入到该树中,从而得到“return the users,where the number of films in Documentary released after2007is more the number of films rented by Bob in Documentary released after2007”。一旦树被最终确定,数据库应用102就从树中确定一个或多个子句,如以属性[=/</>/like]值的格式。
数据库应用102使用词库104来改善数据库应用102的匹配性能。词库104可以包括与数据库190中的实体相关的常见或不常见的同义词。例如,“football”的同义词可以是“soccer”。在电影租赁上下文的示例中,数据库应用102需要知道从租赁公司或雇主(其本身具有给与、出租、传送或提供电影或影片的员工、工作人员、助手、提供者)那里租用、借或取得如电影、影片或录像带之类的东西的客户、用户、人、孩子、成人。例如,如果用户设备问“who took the movie”,那么数据库应用102需要知道“took”可能意味着“rent”,并且“movie”可能意味着“film”,依此类推。词库104内的信息可以实时地从互联网或资源中挖取。在另一个示例中,词库104可以通过指定上述实体、其属性和动作之间的关系来提供用于任意领域的信息。可以通过使用本文描述的技术来构建或扩展词库104,例如,迭代地形成搜索查询并概括搜索查询的结果,并将经概括的结果用作词库中的附加条目(或节点)。以这种方式,可以提高词库104的覆盖范围。
在一些情况下,数据库应用102可以使用词库来改善匹配。数据库应用102还可以将NL查询120与原生查询150匹配,例如,在一个或多个关键字未被映射到数据库190的字段的情况下,数据库应用102可以使用歧义词语搜索词库104,并可能识别数据库字段名的同义词。在这种情况下,数据库应用102不需要请求用户澄清。
图2是描绘根据本公开的一方面的用于从自然语言查询生成数据库查询的处理200的示例的流程图。处理200可以由数据库应用102或另一个应用实现。
在框201处,处理200涉及从用户设备接收自然语言查询。例如,数据库应用102接收NL查询120。NL查询的示例是“what is staff first name when movie return date isafter 2005-06-02 01:02:05”。
在框202处,处理200涉及从查询中提取子句,包括构建解析树。数据库应用102通过构建解析树来从NL查询120中提取子句。图3描绘了用于以上示例的解析树。
图3是描绘根据本公开的一方面的用于自然语言查询的解析树的图。图3描绘了包括节点301-314的解析树300。节点301-314中的每一个对应于NL查询120的单词。可以使用任何标准技术来获得解析树300。
数据库应用102访问解析树并识别任何“wh”单词。“wh”单词包括what、where、when以及why。数据库应用102提取紧接“wh”单词之后的短语。该短语是在“wh”单词之后的单词中最短的一个。例如,名词、动词、介词单词和其它种类的短语都是可接受的。根据该提取的短语,数据库应用102构建子句。该子句将没有赋值(assignment),但将可能有组织在一起的词语,诸如“give me a maximum temperature of water…”。
在一些情况下,数据库应用102识别焦点子句。焦点子句是来自NL查询120的子句,其包括预期该查询要返回的对象。焦点子句的一种简写形式是“*”。
返回图2,在框203处,处理200涉及从子句中提取关键字。继续该示例,数据库应用102从子句中提取关键字。图4描绘了提取子句的一个示例。
一旦识别一个或多个子句,数据库应用102就将NL查询102的其余部分(以子句为基础)视为以“where”开头的第二子句。确定子句的边界可能是困难的。因此,在一些情况下,数据库应用102识别赋值和比较单词,诸如:is、equals、more、before、as,其指示要被转换成SQL子句的短语的中心。一旦识别出最左边的锚点,数据库应用102就尝试构建左侧(或者说属性)及右侧(值)。继续该示例,属性为“return rental date”,并且值为特定日期。
为了找到属性的边界,数据库应用102朝着开始的NL查询120迭代到当前短语的开始。属性通常由介词with或of、连词and或“wh”单词来指示。值是名词和/或数字,可能带有形容词。相同的单词将值部分的结尾标记为下一个属性部分的开头。例如,一旦移除或忽略赋值或比较词,“return rental date”就与实际日期相邻。
图4是描绘根据本公开的一方面的从解析树进行子句提取的图。图4描绘了图3中描绘的文本的映射。图4包括单词模板401-405、子句410和单词411-415,以及子句420和对应的单词421-425。更具体而言,单词模板401表示子句的开头,单词模板402表示属性,单词模板403表示锚点,单词模板404表示要被转换的值,并且单词模板405表示子句的结尾。
返回图2,在框204处,处理200涉及将每个关键字映射到数据库的表、字段或操作。数据库应用102尝试将每个解析树节点映射到对表、字段或值的SQL命令、引用。这种方法在语言解析树中识别可以被映射到SQL组成部分的节点,并将它们令牌化为不同的令牌(token)。在映射处理中,一些节点可能无法映射到任何SQL组成部分。在这种情况下,我们的系统会向用户生成警告,告知用户这些节点不会直接有助于解释用户的查询。另外,一些节点可能具有多个映射,这在解释这些节点时会造成歧义。对于每个这样的节点,默认情况下解析树节点映射器将最佳映射输出到解析树结构调整器,并将所有候选映射报告给交互式通信器。
数据库应用102考虑查询中的每个短语或关键字,并尝试匹配表和/或表中的字段。不同的匹配级别是可能的。例如,关键字可以与表名、表内的字段、多个表内的多个字段等匹配。因此,数据库应用102可以使用分层方法来确定匹配。
从根本上讲,自然语言是有歧义的,并且解释自然语言是困难的。因此,确定哪些词是指哪个数据库字段本质上是有歧义的。例如,人们经常使用俚语单词、技术术语和特定于方言的短语,这些都不为系统所知。即使在人与人之间的交互中,也会出现误解。
例如,用值来替换类似语义类型的属性(诸如名和姓)可能是困难的。例如,以下映射是困难的,除非我们知道名(first name)和姓(last name)是什么:
Figure BDA0002893123370000111
存在映射phrase2table.field之外的变换的需要,诸如对英语名字的查找以及以下知识:名和姓可以在单个字段中、可以以各种格式和顺序、或属于不同字段,比如在Sakila数据库(Oracle 2018)中的情况。
当用户说“film name”时,当film.name不存在时,系统可以将其解释为具有字段=“name”的表。虽然“name”是“title”的同义词,但短语“name”可以映射到完全外来的表中,诸如category.name而不是actor.first_name。如果短语包含“word1 word2”,那么它通常是有歧义的,因为word2可以是table1.field,并且也是table2。word2也可以是另一个表中的字段(或字段的一部分,作为单个单词)。
因此,需要从最可能到最不可能的情况进行的假设管理处理(hypothesismanagement process)。我们从识别单个表名的规则开始,并确保没有提及其它表名。另外,我们需要确认字段名没有被提及。
图5是描绘根据本公开的一方面的将关键字与数据库表匹配的图。处理500可以由数据库应用102或由另一个应用实现。匹配的关键字可以一次出现一个关键字,即,对每个关键字执行一次处理500。在其它情况下,匹配可以发生在短语级别,即几个关键字一起。为了讨论的目的,针对短语来讨论处理500。
数据库应用102在多步骤处理中尝试将短语与数据库表或字段匹配。例如,数据库应用102首先在框501处尝试匹配。如果在框501处没有找到匹配,那么数据库应用102在框502处尝试匹配。如果在框502处没有找到匹配,那么数据库应用102在框503处尝试匹配。在处理500中发现匹配越早,该匹配的置信度越高。
在框501处,处理500涉及尝试将短语与单个表的名称进行匹配。如果数据库应用102确定短语包括仅单个数据库表(而没有其它数据库表)的名称,那么在框501处发生匹配。一旦表被确认,数据库应用102就选择该表的默认字段,诸如“name”或具有该表所表示实体名称的任何其它字段。该选择以后被用于例如在框209处生成原生查询。如果短语与任何其它表都不匹配,那么处理500停止并且进行到框507。否则,处理500进行到框502。
在框502处,处理500涉及尝试将短语与字段和表进行匹配。在框502处,数据库应用102对短语与表及表的字段一起相匹配进行识别。可以通过遍历所有表和字段单词,并选择具有带该短语的最大数量的单词的表和字段对的组合,来实现该匹配。因此,在这种情况下,不必短语中的所有单词都与数据库匹配。数据库应用102可以使用一个或多个技术来对匹配级别进行评分,例如,短语和表-字段对之间的匹配单词的数量。可以使用其它技术。
数据库应用102使用经组合的表和具有同义词的字段表达来匹配短语。如果分数是良好匹配,那么处理500停止并且进行到框507。相反,如果数据库应用102没有针对该短语找到关键字的表-字段集合的良好匹配,那么处理500进行到框503。
在框503处,处理500涉及尝试将短语与字段进行匹配。数据库应用102尝试仅匹配字段(而不是表标签)。更具体而言,数据库应用102涉及遍历所有表的字段。数据库应用102使用具有同义词的字段表达来匹配短语。可以使用整个单词匹配和单词形式替换匹配。数据库应用102选择具有最佳分数的匹配。
数据库应用102可以使用本体(ontology)(例如,词库104),以便扩展具有同义词的字段的关键字列表。例如,词库104可以包括挖掘出的数据库元数据,诸如表名、字段名、表名中的令牌、字段名中的令牌以及每一者的同义词。由于NL查询中的词语可能与数据库中的字段名有偏差,因此同义词对于改善匹配是有用的。同义词可以从thesaurus.com之类的资源中挖掘,或者使用经训练的同义词模型,诸如word2vec(Mikolov等人,2011)。然后使用同义词的列表或相似性函数来改善匹配。如果数据库应用102获得高分数,那么处理500进行到框507。否则,处理500继续到框504。
在框504处,处理500涉及获得针对最佳字段的所有表。最佳字段匹配是在框503处获得的。数据库应用102获得包括该最佳字段的所有表。
在框505处,处理500涉及获得最佳表的最佳字段匹配。一旦在框504处识别出最佳表,数据库应用102就从该最佳表中获得所有字段。然后,数据库应用102识别最佳字段匹配,包括同义词替换。
在框506处,处理500涉及确定短语不存在匹配。在框506处,处理500结束。数据库应用102进行到与用户澄清关键字歧义性。
在框507处,处理500涉及确定短语是否匹配。数据库应用继续确定是否存在任何附加的未被映射的关键字。如果是,那么处理500重新开始。否则,数据库应用102根据解析树创建SQL查询。
返回图2,在框205处,处理200涉及确定是否存在任何未被映射的关键字。在节点映射之后,数据库应用102尝试确保数据库应用102理解每个节点。如果否,那么处理200进行到框206。如果每个节点都被映射,那么数据库应用102进行到框209。
在框206处,处理200涉及使用搜索索引的数据库来映射关键字。这种构建SQL查询子句的方法可以被称为搜索工程方法(search engineering approach)。在这种方法中,数据库应用102访问自定义数据库索引并针对数据库执行对用户NL查询的一部分的搜索。
图6是描绘根据本公开的一方面的用于与数据库索引进行关键字匹配的处理600的图。数据库应用102可以利用索引行将子句与短语匹配。
在框601处,处理200涉及根据关键字或短语构造查询。该查询被用于搜索自定义数据库索引。数据库应用102根据在框205中被识别为有歧义的短语或关键字来构建搜索表达式。该搜索表达式包括被期望与表、字段和值匹配的单词。因为数据库应用102在获得搜索结果之前不知道搜索结果的内容,因此该查询首先形成为单词的“与”(conjunction),并且如果该“与”查询未能给出结果,那么形成为这些单词的“或”(disjunction)(逻辑OR)。在“或”查询中,并非所有关键字都必须匹配。为了使索引搜索更加精确,数据库应用102还从要被转换的短语中识别的实体中形成“跨词与”查询(span-AND query),诸如Bank ofAmerica。
数字需要特殊对待。对于equal种类的查询,找到确切的数字将使SQL查询形成是精确的,并且实际上替代了结果查询的执行。由于针对搜索所有数字都被索引为串(string)令牌,因此实数需要在'.'被替换的情况下被存储和搜索,以避免将串表示形式分成两个部分。
在框602处,处理200涉及获得自定义索引。自定义索引可以包括属性和值。例如,数据库应用102创建自定义索引192。自定义索引192包括用于搜索的字段和这些字段的值。例如,数据库应用102创建包括以下格式的数据库190的每个表的每一行的格式:Tablefield1 value1 field2 value2…等。自定义索引192还可以包括来自词库104的信息,诸如同义词和关系名称,如本文所描述的。在一些情况下,可以创建和存储自定义数据库索引,以供以后使用,例如,在运行时使用。在其它情况下,可以即时(in the fly)创建自定义数据库索引。
在一些情况下,并非所有数据库内容都被索引。例如,在一些情况下,数据库应用102可以从索引中排除关联表和不包含诸如客户或地址之类的实体的数据的其它表。
在框603处,处理200涉及将关键字或短语与来自自定义索引的属性或值进行匹配。数据库应用102通过搜索自定义索引来获得一个或多个搜索结果。
在框604处,处理200涉及计算匹配分数。数据库应用102可以计算匹配分数,其可以基于词频-逆文档频率法(TFIDF)。
在框605处,处理200涉及确定是否还有更多的属性或值。如果在自定义索引中有更多要搜索的属性或值,那么处理600返回到框603,并遍历附加的匹配项以找到最可能的记录。如果没有更多的属性或值,那么处理600继续到框606。
在框606处,处理200涉及选择最佳匹配。数据库应用102虽然默认的TF*IDF相关性通常是正确的,但我们还是基于在查询和候选搜索结果二者中都出现的属性-值对的数量来计算出自己的分数(图15)。我们自己的分数还考虑了在查询和记录二者中都没有属性出现的各个值。还考虑了查询和记录中的各个出现之间的串级别(string-level)的相似性和多词偏差(多词(multiword)中的一些单词是否丢失或以不同形式出现(诸如,名词的复数,动词的时态)。取决于值的串的类型(数值或串),数据库应用102可以选择操作'='或'like'(相似于)。
返回图2,在框207处,处理200涉及确定是否存在任何未被映射的关键字。如果仍然存在未被映射的关键字,那么处理200继续到框208。否则,处理200继续到框209。
在框208处,处理200涉及使用用户设备来澄清歧义。自然地,在许多处理的组成部分中,会出现歧义,诸如表名、字段名或关系。数据库应用102并非像大多数NL2SQL系统那样尝试找到最合理的NL查询表示,而是通过澄清请求来依靠用户解决歧义。我们的NL2SQL系统为用户给出了映射到表名的查询短语,并枚举了可能的表,从而提供澄清请求。
在框209处,处理200涉及生成数据库查询。基于识别出的映射,数据库应用102生成包括所有被映射的字段或属性的数据库查询。
在框210处,处理200涉及向数据库提供数据库查询、从数据库获得结果,以及向用户设备提供结果。数据库应用102向数据库190提供原生查询150。
示例数据库
图7是描绘根据本公开的一方面的数据库的示例的图。图7描绘了启用NL2SQL的示例数据库。更具体而言,图7描绘了数据库的图,其具有与图3中描绘的解析树300的匹配相关的数据库表的关系。图7描绘了通过不同链接(以“fk_”为前缀,其指外键)链接的数据库表(例如,“customer(客户)”、“country(国家)”和“address(地址)”)。此类链接的示例为fk_customer address和fk_city_country。NL查询、中间步骤的日志以及所得到SQL表示和查询结果的示例如下所示。
查询:‘what is staff first name when her movie return date is after2005-06-02 01:02:05’
针对'[staff,first,name]'查找table.field
找到table.field=staff.first_name
针对'[movie,return,date]'查找table.field
找到table.field=rental.return_date
结果:Mike
SQL:select staff.first_name from staff,rental where rental.return_date>'2005-06-02 01:02:05'and rental.staff_id=staff.staff_id
查询:‘what film title has actor’s first name as Christian andcategory Documentary’
针对'[film,title]'查找table.field
找到table.field=film.title
针对'[actor,first,name]'查找table.field
找到table.field=actor.first_name
结果:ACADEMY DINOSAUR|
CUPBOARD SINNERS|
MOD SECRETARY|
PRINCESS GIANT|
SQL:select film.title from film_category,film_actor,film,actor,category where actor.first_name like'%Christian%'and category.name='documentary'and film_actor.film_id=film.film_id and film_actor.actor_id=actor.actor_id and film_actor.film_id=film.film_id and film_actor.actor_id=actor.actor_id and film_category.film_id=film.film_id and film_category.category_id=category.category_id and film_category.film_id=film.film_id and film_category.category_id=category.category_id.
查询:‘What is actor fist name when movie category is Documentary andspecial features are Behind the Scenes’
针对'[actor]'查找table.field
找到table.field=actor.first_name
针对'[movie,category]'查找table.field
通过table ONLY找到=category.name
结果:PENELOPE|
CHRISTIAN|
LUCILLE|
SANDRA|
SQL:select actor.first_name from film_category,film_actor,film,actor,category where category.name like'%Documentary%'and film.special_featureslike'%behind%the%scenes%'and film_actor.film_id=film.film_id and film_actor.actor_id=actor.actor_id and film_actor.film_id=film.film_id and film_actor.actor_id=actor.actor_id and film_category.film_id=film.film_id andfilm_category.category_id=category.category_id and film_category.film_id=film.film_id and film_category.category_id=category.category_id.
不需要用户设备突出显示具体参数值与名称。在另一个示例中,查询可能被制定为‘What is a category of film…’,但这会使NL2SQL系统更难确定由单词category和film所引用的表的字段。
查询:‘What is a film category when film title is Ace Goldfinger’
针对'[film,category]'查找table.field
找到table.field=category.name
针对'[film,title]'查找table.field
找到table.field=film.title
结果:
Horror|
SQL:select category.name from film_category,film,category wherefilm.title like'%ACE GOLDFINGER%'and film_category.film_id=film.film_idand film_category.category_id=category.category_id
在许多情况下,当在NL查询中未提及对表名的引用时,数据库应用102尝试基于列名来识别表名。如果多个表具有相同的列名,那么数据库应用102经由用户界面寻求澄清。用户从具有列名的表中选择单个表。
为自主代理构建改进的词库
数据库应用102可以将改进的词库与自定义索引结合使用,以改进NL搜索查询120与数据库条目的匹配,从而得到改进的数据库查询或SQL查询。以下是用于构建实体的词库的可扩展机制,该机制旨在提高自主代理的相关性。词库构造处理从种子实体开始,并挖掘可用的源领域以得到与这些种子实体相关联的新实体。通过将句法解析树的机器学习(它们的概括)应用于现有实体的搜索结果以形成它们之间的共性来形成新的实体。这些共性表达然后形成现有实体的参数,并在下一次学习迭代时变成新的实体。为了匹配源领域和目标领域之间的自然语言表达,我们使用了句法概括,这是找到这些表达的成分解析树(constituency parse tree)的最大公共子树集合的操作。
词库和句法概括被应用于搜索和文本相似性评估中的相关性改善。我们对垂直和横向领域中的搜索相关性改善进行了评估,并观察到学得的词库在前者中的重要贡献,以及混合系统在后者领域中的显著贡献。我们还进行了对基于词库和句法概括的文本相关性评估的产业化评估,并得出结论,提出的用于自动化词库学习的算法适合于集成到产业系统中。
在设计当代搜索引擎和文本相关性系统时,难以高估词库对提高精度的作用,尤其是在垂直领域。词库、词库和概念层次结构是信息检索(IR)、自然语言处理(NLP)和知识管理的许多应用的关键组成部分(Cimiano等人2004年)。但是,构建、调整和管理词库和本体的成本很高,因为需要大量的手动操作。大量研究提出了基于语言资源和/或统计机器学习的词库自动化构建,包括多代理设置(Kerschberg等人,2003年;Roth 2006年;Kozareva等人,2009年;Sánchez和Moreno,2008年;Sánchez,2010年)。
由于结果搜索的准确性不足、真实用户的查询表示的表达能力有限、或与手动构造或编辑语言资源相关联的高昂成本及其有限的可调性,目前大多数自动化词库挖掘方法尚找到产业化应用。在这项工作中,我们将利用全尺度的句法解析、对其结果的机器学习、以及基于搜索引擎的web挖掘,来构建和评估产业化质量的词库。所提出的词库学习算法旨在提高垂直搜索相关性,并将在许多与搜索相关的任务中进行评估。构建词库树的主要挑战是使其尽可能深,以包含更长的关系链,使得可以回答更具体和更复杂的问题。
公开的解决方案实现了使用词库树将答案的确定性分类为相关和不相关的机制;在给定关键实体种子的情况下,实现算法以针对垂直领域使此类词库的构建自动化;并设计独立于领域的语言引擎,用于基于解析树寻找文本之间的共性/相似性。
Galitsky等人2012年引入了针对一对句子的句法概括操作以测量其相似性,并且我们描述了该操作在搜索中的应用。在(Galitsky2012)中,我们给出了在信息检索和文本分类中的应用;并且在(Galitsky等人2012)中,我们介绍了对一对段落的概括操作。在本研究中,我们依靠句法概括来构建词库并在搜索时应用它们。我们在第4节中简要介绍句法概括操作。
与大多数优化提取出的关系的查准率和查全率的本体挖掘方法不同,我们的词库构建算法专注于搜索相关性的改进。因此,本研究中的评估将根据搜索准确性的改进而不是所构建的词库的质量来评估算法的性能。因此,我们预计搜索性能驱动的词库学习算法优于专注于大多数关系或最精确关系的算法。我们的评估将在垂直搜索和横向搜索以及带有文本相似性评估的产业化环境中进行。
词库构建是从迁移学习范例(Raina等人2006年,Pan和Yang2010年)的角度得到的方法。虽然我们构建了我们的词库以在垂直领域中工作,但是需要横向领域的web挖掘来构建它。在为聊天机器人构建词库时,迁移学习可以针对广泛的web领域(辅助)提取知识,并增强在目标领域中的基于词库的搜索。为了使迁移学习成功,即使短语之间的映射不明显,计算辅助领域和目标领域中的短语之间的相似性也至关重要。为此,我们使用句法概括作为“词袋(bag-of-words)”方法的扩展。这里,我们介绍了一种新颖的方法来找到句子之间的结构相似性,从而使得能够在结构化知识级别进行迁移学习。具体地,我们解决了当两个不同领域的词汇完全不同时如何学习两个不同领域中的短语之间的非平凡的结构化(语义)相似性映射的问题。
图8描绘了根据本公开的一方面的从迁移学习的角度来看的经词库辅助的搜索。
当为垂直领域构建词库时,仅在该垂直领域中挖掘web文档通常是不够的。此外,当目标领域包含社交网络数据或微文本时,通常很难找到足够的此类数据来在该领域内构建词库;因此,需要迁移学习方法,该方法挖掘具有相似词汇的更广泛的领域。然后必须通过匹配来自不同领域的句法表达来支持迁移学习。在这项研究中,我们在成分解析树的级别上执行迁移学习。
许多当前可用的通用资源(诸如DBPEdia、Freebase和Yago)辅助与实体相关的搜索,但不足以使用实体及其多个参数相关来过滤出关注特定活动的不相关答案。垂直本体集合,诸如针对艺术家的last.fm,也有助于在垂直领域中进行基于实体的搜索;但是,它们的词库树很浅,并且它们用于识别不相关答案的可用性是有限的。
在这项研究中,我们提出了自动化词库构建机制,该机制基于给定垂直知识领域的初始主要实体(种子)集合。然后,通过挖掘web文档来自动扩展该种子,这些web文档包括当前词库节点的含义。通过作为对这些文档之间的共性进行归纳学习的结果的实体来进一步扩展该节点。这些共性是使用句法概括操作而提取的,句法概括操作找到针对当前词库节点所获得的文档集合的句法解析树的公共部分。句法概括已经在商业上进行了广泛评估,以改善文本相关性(Galitsky等人,2010年;Galitsky等人,2011年),在本研究中,我们还将它应用到用于词库的自动化构建的迁移学习设置中。
从“解析到语义级别”继续处理是达到自然语言理解的重要任务,并且在诸如信息提取和问题回答之类的任务中具有直接应用(Allen1987年、Ravichandran和Hovy 2002年、Dzikovska 2005年,Wang等人2009年)。在过去的十年中,计算语言学发生了巨大的变化,从手动构造语法和知识库到使用在大型的带注释的或不带注释的自然语言语料库上训练的统计学习方法来部分地或完全地自动化这一处理。但是,在本文中,我们不使用此类语料库,而是将网络搜索结果用于常见查询,因为在特定领域知识(诸如税务)方面,它们的准确性更高,并且与学术化的语言资源相比,它们是更新的。
商业搜索引擎社区已经很好地理解了语义支持的搜索引擎对提高搜索相关性的价值(Heddon 2008年)。一旦有正确覆盖垂直领域中所有重要实体的“理想”的词库可用,它就可以直接应用于过滤掉不相关的答案。该领域的最新技术是如何将现实世界的词库应用于搜索相关性改进,其中这种词库是从web自动编译的,因此是远非理想的。很明显,轻量级的基于关键字的方法无法充分解决该问题。在本文中,我们通过将web挖掘作为训练集的来源,并将句法概括作为学习工具,来解决这个问题。
值得注意挖掘本体与挖掘词库之间的关系。本体学习可以分为多个子步骤,诸如:
·词法实体提取(lexical entity extraction)和概念提取(conceptextraction);
·词库提取,这对于搜索至关重要并且是本研究的主题;
·非分类表达提取(non-taxonomic expression extraction),其中所发现的非分类关系由知识工程师标记,并成为本体的一部分。当在文本数据中检测到“公司”和“产品”概念之间的多种关系并产生多种解释时,所提出的方法自动形成多条树路径:公司可能不仅生产产品,而且还销售、消费、广告和推广该产品。
当前的基于迁移学习的方法可以定位在文本中寻求未命名关系(seekingunnamed relations in text)的任务中,其中使用对句子结构关注有限的共现(co-occurrence)分析,并且经由频率测量来过滤结果。我们通过系统地学习整个句子结构并针对关系挖掘解析树来改进该方法,而不是使用词袋模型。
通过词库提高代理相关性
为了回答基于自然语言或基于关键字的问题,“理解”该问题是关于什么的是有益的。从本章的意义上讲,这种“理解”是对关键字的优先对待。我们使用关键字集合及其元素之间的关系的以下定义is-about(set-of-keywords,keyword)。
对于具有关键字{a b c}的查询,如果查询{a b}和{b c}是相关的或略微相关的并且{a c}是不相关的,那么我们理解该查询是关于b的。我们对查询理解的定义非常狭窄,它是说出查询中哪些关键字(诸如,上例中的b)为必要的能力,这种方式使得如果没有这些关键字则其它查询词就变得毫无意义;不包含b的答案与包括b的查询是不相关的。
例如,在关键字{computer,vision,technology}的集合中,{computer,vision},{vision,technology}是相关的,并且{computer,technology}是不相关的;因此,该查询是关于{vision}的。注意的是,如果关键字集合构成名词短语或动词短语,那么它不必然表示头部或动词就是该有序集合所关于的关键字。另外,注意的是,当单词形成实体时,我们可以将它们分组为短语:
is-about({vision,bill,gates},
Figure BDA0002893123370000241
);而,
is-about({vision,bill-gates,in-computing},{bill-gates})。
如果关键字集合出现在is-about的右侧,那么我们将其称为必要的。
为了正确地形式化后面的观察,我们将“is-about”关系概括为关键字集合与其子集之间的关系。对于查询{a b c d},如果b是必要的(is-about({a b c d},{b}),那么当b在查询中使得{a b c},{b c d}、{b c}相关,甚至{a b}、{b d}(略微)相关时,c也可能是必要的。但是,{a d}不是(is-about({a b c d},{b,c})。
需要词库来支持查询理解。基于经由is-about关系对查询理解的上述表示,词库促进关于查询和答案之间的特定匹配是否相关的评估。因此,对于查询q={a b c d}和两个答案(片段){b c d...e f g}和{a c d...e f g},前者是相关的,并且后者是不相关的。本文意义上的词库可以看作是相互连接的is-about关系集合的树编码。
在(Galitsky 2003年)中探索了表达查询的含义的关键字集合和逻辑形式的逻辑属性。有一种系统性方法可以经由默认推理来处理关键字的相对重要性(Galitsky 2005年);关键字组合的多种含义经由默认逻辑的操作语义来表示。
与常规的基于TF*IDF的搜索相比,使用词库实现相关性是基于完全不同的机制。在常规的基于TF*IDF的搜索中,词语的重要性基于出现的频率。对于NL查询(不是布尔查询),如果其余词语给出了可接受的相关性分数,那么可以在搜索结果中省略任何词语。在布尔查询的情况下,该论断对于其每个连接成员都是正确的。在基于词库的搜索中,我们知道答案中应该出现哪些词语,以及答案中必须出现哪些词语;否则,搜索结果将变得不相关。
基于词库的答案选择
为了使用词库过滤掉不相关的答案,我们搜索就来自给定问题的实体数量而言最接近该给定问题的词库路径(如果可能,向下到叶子节点)。然后,该路径和叶子节点最准确地指定该问题的含义,并限制在答案中必须出现的实体和应该出现的实体,以将其视为相关。如果来自问题中的第n个节点实体出现在答案中,那么所有k<n个实体也应出现在答案中。
对于支持词库的搜索,我们使用两个条件:
·可接受性条件。它核实查询中存在于词库路径中的所有基本单词也在答案中。
·最大相关性条件。它从查询中找到词库路径中存在并且在答案中的单词。然后,它基于找到的基本关键字和其它关键字的数量来计算分数。
对于大多数搜索应用而言,可接受性条件比最大相关性条件更容易应用:如果答案ai∈A包括如在词库路径Tp∈T中找到的问题Q中的所有必要关键字(根据is_about),那么答案ai∈A是可接受的。对于涵盖问题q的任何词库路径Tp(它们的关键字的交集不为空),这些交集关键字必须在可接受的答案ai中。
Figure BDA0002893123370000251
对于最佳答案(最准确),我们有
Figure BDA0002893123370000261
基于词库的相关性分数可以被定义为cardinality(ai∩(Tp∩q)的值,其是针对覆盖q的所有Tp进行计算的。然后,最佳答案Score(abest)=max{ai}Tp(cardinality(ai∩(Tp∩q))在所有答案A的分数中找到。基于词库的分数可以与其它分数组合,诸如TF*IDF、时间/衰减参数、位置距离、定价、语言相似性以及用于结果排名的其它分数,具体取决于搜索引擎架构,在我们的评估中,我们将该分数与语言学相似性分数相结合。
对于句子(关键字集合)s和词库路径Tp,s∩Tp是找到作为词库T中路径Tp的标签的关键字集合的操作。一般而言,存在覆盖给定问题q的多个词库路径,并且s∩Tp的每个结果都必须与问题相交。具有覆盖给定查询q的多个路径意味着该查询在该领域中具有多个含义;对于每个这样的含义,单独的可接受的答案的集合是预期的。
因此,读者可以看到词库被设计为支持计算is_about关系。给定查询q和词库T,我们以is_about(q,Tp∩q)的方式找到路径Tp
让我们考虑以下查询的词库示例:‘How can tax deduction be decreased byignoring office expenses’,q={how,can,tax,deduct(ion),decreas(ed)-by,ignor(ing),office,expense}并且A={
a1={deduct,tax,business,expense,while,decreas(ing),holiday,travel,away,from,office},
a2={pay,decreas(ed),sales-tax,return,trip,from,office,to,holiday,no,deduct(ion)},
a3={when,file,tax,return,deduct,decrease-by,not,calculate,office,expense,and,employee,expense}}。
在我们的示例中,我们将不考虑令牌化和单词形式标准化问题,为了方便起见,我们将以括号来显示结尾。注意的是,就关键字重叠而言,a1、a2和a3看起来都是良好的答案。
对于q,我们得到该查询被Tp={<tax>-<deduct>-<decrease-by>-<office-expense>}覆盖。让我们计算每个答案的词库分数:
score(a1)=cardinality(a1∩(Tp∩q))=cardinality({tax,deduct})=2;
score(a2)=cardinality({tax,deduct,sales_tax})=3;
socre(a3)=cardinality({tax,deduct,decrease-by,office-expense})=3;
注意的是,该答案是唯一通过可接受性标准的答案。
我们的下一个示例涉及消除歧义的问题。对于问题:
q="When can I file an extension for the time for my tax return?"
让我们想象两个答案:
a1="You must file form 1234to request a 4month extension of time tofile your tax return"
a2="You must download a file with the extension'pdf',complete it,andprint it to do your taxes"。
图9描绘了根据本公开的一方面的词库的快照的示例。例如,图9描绘了各种关系,诸如“tax”和“deduct”之间的关系。我们预期最接近的词库路径为:
Tp={<tax>-<file>-<return>-<extension-of-time>}
这里,tax是主要实体,我们预期file和return在种子中,并且extension-of-time将是学得的实体;因此,a1将与词库匹配并且是可接受的答案,而a2不是。表示词库的另一种方法不是将其强制为树(最小一般化),而是每个标签仅允许单个节点。
基于词库的相关性核实处理
示例处理接收查询q、运行搜索(在本算法外部)、获得候选答案集合a并根据我们在上一节中介绍的定义找到最佳的可接受的答案。
输入:查询q
输出:最好的答案abest
1)对于查询q,通过可用的手段(使用关键字、使用内部索引或使用搜索引擎API的外部索引)获得候选答案集合A;
2)在词库Tp中找到覆盖q中最多词语的路径,以及覆盖q的其它路径,以形成集合P={Tp}。
除非找到可接受的答案,否则:
3)计算集合Tp∩q。
对于每个答案ai∈A
4)计算ai∩(Tp∩q))并应用可接受性标准。
5)计算每个ai的分数。
6)计算最佳答案abest和可接受的答案的集合Aa
如果没有找到可接受的答案,那么对于来自P的下一个路径返回到2。
7)返回abest和可接受的答案集合Aa(如果可用)。
词库构造作为学习和web挖掘的处理
我们对于在web上自动化学习词库的主要假设是,给定实体集合的搜索结果之间的共同表达为我们提供了这些实体的参数。一旦给出了种子词库实体集合,词库的形成就遵循无监督的学习风格。这种方法可以看作是人类发展的过程,其中婴儿探索新的环境并形成新的规则。最初的规则集合是通过遗传方式设置的,并且学习处理会将这些规则调整为特定的习惯环境,以使规则更敏感(因此允许做出更有利的决策)。随着新规则在其应用过程中被接受或拒绝,暴露于新环境有助于形成新的特定规则。在评估新的、更复杂的规则并接受这些新形成的规则中的某些部分之后,规则的复杂性会增加,以适应环境的附加特殊性。
我们在类似的学习设置中学习新实体以扩展我们的词库。词库学习处理是迭代的:在每个新的学习步骤中,我们都会向作为当前终端的节点添加新的边。我们从种子词库开始,它列举了给定领域的一些主要实体以及这些实体与一些能够确定领域的实体之间的关系。例如,税领域的种子将包括以下关系:
tax–deduct tax-on-income tax-on-property,
其中tax是能够确定领域的实体,并且{deduct,income,property}是该领域中的主要实体。词库学习的目的是获取现有实体的其它参数,诸如tax–deduct。在下一次学习迭代中,这些参数将变成实体,以使得能够学习新的参数集合,诸如sales-tax,401k。
每次学习迭代是基于web挖掘的。为了找到给定的叶子(当前实体)集合的参数,我们转向web并搜索针对当前树路径形成的查询的搜索结果(片段)之间的共同表达。对于上面的示例,我们搜索tax-deduct、tax-on-income、tax-on-property,并提取搜索结果中共同的单词和表达。除了介词、名词和动词短语之外,共同的单词还是单个动词、名词、形容词甚至副词、介词短语或多词,它们在多个搜索结果中出现。第4节解释了如何提取搜索结果之间的共同表达并形成新的当前实体(词库叶子)的集合。
在识别这些共同的单词和多词之后,将它们作为新的实体添加到现有实体的列表中。例如,对于路径tax–deduct,新学得的实体可以是:
tax-deduct→decrease-by tax-deduct→of-income
tax-deduct→property-of tax-deduct→business
tax-deduct→medical-expense。
这里的格式是现有实体→它的参数(将成为新的实体);
其中“→”这里是当前学习步骤中词库扩展的未标记边缘。
接下来,从词库树中的路径tax-deduct,我们获得五个新路径。下一步是在词库树的新的叶子集合中收集每个路径的参数。在我们的示例中,我们运行五个查询并提取它们中的每个的参数。结果将类似于以下:
tax-deduct-decrease-by→sales
tax-deduct-decrease-by→401-K
tax-deduct-decrease-by→medical
tax-deduct-of-income→rental
tax-deduct-of-income→itemized
tax-deduct-of-income→mutual-funds
例如,在web搜索tax-deduct-decrease可以发现实体sales-tax,该实体与减税的减少相关联,通常具有的含义是“营业税(sales tax)”。片段之间的共性表明,在计算减税时应考虑营业税;并且不做会减少它的事情。
因此,通过以迭代方式从web搜索结果中进行归纳学习来构建词库。我们从词库种子节点开始,然后找到所有当前可用的图路径的web搜索结果。接下来,对于在这些搜索结果中找到的每个共性,我们通过添加相应的叶子节点来扩展每个词库路径。换句话说,对于每次迭代,我们发现每个当前可用实体集合的参数列表,然后将这些参数转换成用于下一次迭代的实体。
词库种子是手动形成的,或者可以从可用的特定于领域的资源进行编译。种子词库应该至少包含2-3个节点,以使词库生长处理具有有意义的开始。词库种子可以包括例如特定知识领域的词汇表,该词汇表可轻松用于给定的垂直领域,诸如用于税务实体的投资百科全书。
图10描绘了根据本公开的一方面的示例搜索结果。
词库构建算法
我们概述了迭代算法,该算法采用具有其终端节点的词库,并尝试经由web挖掘扩展终端节点以获取新的终端节点集合。在迭代k处,我们通过用tik1,tik2…扩展当前终端节点ti来获取节点集合。该算法基于概括操作,该操作将两个文本作为序列<词元(单词),词性>,并以这种形式给出最小一般化的文本集合。我们概述迭代步骤:
Figure BDA0002893123370000311
th(k,T)的默认值为2。但是,在每次迭代中将多少个节点添加到给定终端节点上,存在经验限制。该限制是每次迭代5个节点;因此,在不同的搜索结果中,我们取词语的五个最高出现次数。这种约束有助于维护正在被学习的词库的树形拓扑。
给定迭代步骤的算法,我们在第一步骤中将其应用于主要实体集合,以构建整个词库:
Figure BDA0002893123370000321
词库学习会话的示例
我们现在将图示上面介绍的算法。让我们想象我们有种子表达tax-duduct。
图11描绘了根据本公开的一方面的词库学习。
图12描绘了根据本公开的一方面的词库学习。
我们将执行以下四个步骤:
1)获得当前可用的表达的搜索结果。
2)基于它们的语言出现,来选择属性。出现次数应高于特定阈值(并高于2)。
3)查找共同属性(搜索结果之间的共性,以深灰色突出显示,诸如“overlook”)。
4)通过添加新获取的属性来扩展词库路径
现在,学习步骤如下:
1)获得“tax deduct overlook”的搜索结果;
2)选择属性(当前词库路径中的实体的修饰符)
3)找到共有的表达,诸如本例中的“PRP-mortgage”
4)通过添加新获取的属性来扩展词库路径
Tax-deduct-overlook-mortgage,
Tax-deduct-overlook-no_itemize。
图13描绘了根据本公开的一方面的词库学习。
在构建完整的词库后,我们现在可以将其应用于过滤出无法恰当地覆盖词库路径的搜索结果。对于查询“can I deduct tax on mortgage escrow account”,我们获得以下命中,其中两个是不相关的(以椭圆框显示),因为它们不包含词库节点{deduct,tax,mortgage,escrow_account)。注意的是,最接近查询的词库路径是tax–deduct–overlook-mortgage-escrow_account。
词库快照
Sell_hobby=>[[deductions,collection],[making,collection],[sales,business,collection],[collectibles,collection],[loss,hobby,collection],[item,collection],[selling,business,collection],[pay,collection],[stamp,collection],[deduction,collection],[car,collection],[sell,business,collection],[loss,collection]]
Benefit=>[[office,child,parent],[credit,child,parent],[credits,child,parent],[support,child,parent],[making,child,parent],[income,child,parent],[resides,child,parent],[taxpayer,child,parent],[passed,child,parent],[claiming,child,parent],[exclusion,child,parent],[surviving,benefits,child,parent],[reporting,child,parent],
hardship=>[[apply,undue],[taxpayer,undue],[irs,undue],[help,undue],[deductions,undue],[credits,undue],[cause,undue],[means,required,undue],[court,undue]。
税务主题实体的三个路径集合是sell hobby,benefit,hardship
对于每个实体,给定关键字序列,读者可以在税务领域的上下文中重构含义。该快照图示了基于词库的搜索相关性改善的想法:一旦建立了特定含义(模型中的内容、词库路径),我们就可以找到相关的答案。表达的头部出现在它产生的每条路径中(例如,{sell_hobby–deductions-collection},{sell_hobby–making–collection})。
图14绘出了用于实现方面之一的分布式系统1400的简化图。在所示方面中,分布式系统1400包括一个或多个客户端计算设备1402、1404、1406和1408,其被配置为通过一个或多个网络1410执行和操作客户端应用,诸如web浏览器、专有客户端(例如,OracleForms)等。服务器1412可以经由网络1410与远程客户端计算设备1402、1404、1406和1408通信地耦合。
在各种方面中,服务器812可以适于运行由系统的一个或多个部件提供的一个或多个服务或软件应用。服务或软件应用可以包括非虚拟环境和虚拟环境。虚拟环境可以包括用于虚拟事件、展览、模拟器、教室、购物交易场所和企业的环境,无论是二维或者三维(3D)表示形式、基于页面的逻辑环境还是其他形式。在一些方面中,这些服务可以作为基于web的服务或云服务被提供,或者在软件即服务(SaaS)模型下被提供给客户端计算设备1402、1404、1406和/或1408的用户。操作客户端计算设备1402、1404、1406和/或1408的用户又可以利用一个或多个客户端应用来与服务器1412交互以利用由这些部件提供的服务。
在图中绘出的配置中,分布式系统1400的软件部件1418、1420和1422被示出为在服务器812上实现。在其它方面中,分布式系统1400的一个或多个部件和/或由这些部件提供的服务也可以由客户端计算设备1402、1404、1406和/或1408中的一个或多个来实现。然后,操作客户端计算设备的用户可以利用一个或多个客户端应用来使用由这些部件提供的服务。这些部件可以用硬件、固件、软件或其组合来实现。应该认识到的是,各种不同的系统配置是可能的,其可能与分布式系统1400不同。图中所示的方面因此是用于实现方面系统的分布式系统的一个示例,而不是要进行限制。
客户端计算设备1402、1404、1406和/或1408可以是便携式手持设备(例如,
Figure BDA0002893123370000351
蜂窝电话、
Figure BDA0002893123370000352
计算平板电脑、个人数字助理(PDA))或可穿戴设备(例如,Google
Figure BDA0002893123370000353
头戴式显示器),运行诸如Microsoft Windows
Figure BDA0002893123370000354
和/或各种移动操作系统(诸如iOS、Windows Phone、Android、BlackBerry 10、Palm OS等)的软件,并且启用互联网、电子邮件、短消息服务(SMS)、
Figure BDA0002893123370000355
或其它通信协议。客户端计算设备可以是通用个人计算机,作为示例,包括运行各种版本的Microsoft
Figure BDA0002893123370000356
Apple
Figure BDA0002893123370000357
和/或Linux操作系统的个人计算机和/或膝上型计算机。客户端计算设备可以是运行任何各种可商业获得的
Figure BDA0002893123370000358
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统,诸如例如Google Chrome OS)的工作站计算机。替代地或附加地,客户端计算设备1402、1404、1406和1408可以是能够通过(一个或多个)网络1410通信的任何其它电子设备,诸如瘦客户端计算机、启用互联网的游戏系统(例如,具有或不具有
Figure BDA0002893123370000359
手势输入设备的微软Xbox游戏控制台)和/或个人消息传送设备。
虽然示例性分布式系统1400被示出为具有四个客户端计算设备,但是可以支持任何数量的客户端计算设备。其它设备(诸如具有传感器的设备等)可以与服务器1412交互。
分布式系统1400中的(一个或多个)网络1410可以是本领域技术人员熟悉的、可以利用任何各种可商业获得的协议支持数据通信的任何类型的网络,其中协议包括但不限于TCP/IP(传输控制协议/网际协议)、SNA(系统网络体系架构)、IPX(互联网报文交换)、AppleTalk,等等。仅仅作为示例,(一个或多个)网络1410可以是局域网(LAN),诸如基于以太网、令牌环等的LAN。(一个或多个)网络1410可以是广域网和互联网。它可以包括虚拟网络,包括但不限于虚拟专用网(VPN)、内联网、外联网、公共交换电话网(PSTN)、红外网络、无线网络(例如,依据电子电气学会(IEEE)802.14协议套件、
Figure BDA0002893123370000361
和/或任何其它无线协议当中任意一种操作的网络);和/或这些和/或其它网络的任意组合。
服务器1412可以由一个或多个通用计算机、专用服务器计算机(作为示例,包括PC(个人计算机)服务器、
Figure BDA0002893123370000362
服务器、中档服务器、大型计算机、机架安装的服务器等)、服务器场、服务器集群或任何其它适当的布置和/或组合组成。服务器1412可以包括运行虚拟操作系统或涉及虚拟化的其他计算架构的一个或多个虚拟机。可以虚拟化一个或多个逻辑存储设备的灵活的池,以维护服务器的虚拟存储设备。服务器1412可以使用软件定义的网络来控制虚拟网络。在各种方面中,服务器1412可以适于运行在前述公开中所描述的一个或多个服务或软件应用。例如,服务器1412可以与用于执行以上根据本公开的方面描述的处理的服务器对应。
服务器1412可以运行包括以上讨论的操作系统当中任意一种的操作系统,以及任何可商业获得的服务器操作系统。服务器1412还可以运行任何各种附加的服务器应用和/或中间层应用,包括HTTP(超文本传输协议)服务器、FTP(文件传输协议)服务器、CGI(公共网关接口)服务器、
Figure BDA0002893123370000363
服务器、数据库服务器,等等。示例性数据库服务器包括但不限于从Oracle、Microsoft、Sybase、IBM(国际商业机器)等可商业获得的那些数据库服务器。
在一些实现中,服务器1412可以包括一个或多个应用,以分析和整合从客户端计算设备802、804、806和808的用户接收到的数据馈送和/或事件更新。作为示例,数据馈送和/或事件更新可以包括,但不限于,
Figure BDA0002893123370000364
馈送、
Figure BDA0002893123370000365
更新或者从一个或多个第三方信息源接收到的实时更新和连续数据流,其可以包括与传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车交通监视等相关的实时事件。服务器1412还可以包括一个或多个应用,以经由客户端计算设备1402、1404、1406和1408的一个或多个显示设备显示数据馈送和/或实时事件。
分布式系统1400还可以包括一个或多个数据库1414和1416。数据库1414和1416可以驻留在各种位置中。作为示例,数据库1414和1416中的一个或多个可以驻留在服务器1412本地的(和/或驻留在服务器1412中的)非瞬态存储介质上。替代地,数据库1414和1416可以远离服务器1412,并且经由基于网络的连接或专用的连接与服务器1412通信。在一组方面中,数据库1414和1416可以驻留在本领域技术人员熟悉的存储区域网络(SAN)中。类似地,用于执行服务器1412所具有的功能的任何必要的文件都可以适当地本地存储在服务器1412上和/或远程存储。在一组方面中,数据库1414和1416可以包括适于响应于SQL格式的命令而存储、更新和检索数据的关系数据库,诸如由Oracle提供的数据库。
图15是根据本公开的方面的系统环境1500的一个或多个部件的简化框图,通过该系统环境1500,由方面系统的一个或多个部件提供的服务可以作为云服务提供。在所示方面中,系统环境1500包括可以由用户使用以与提供云服务的云基础设施系统1502交互的一个或多个客户端计算设备1504、1506和1508。客户端计算设备可以被配置为操作客户端应用,诸如web浏览器、专有客户端应用(例如,Oracle Forms)或某种其它应用,这些应用可以由客户端计算设备的用户用来与云基础设施系统1502交互以使用由云基础设施系统1502提供的服务。
应该认识到的是,图中描绘的云基础设施系统1502可以具有除了所描绘的那些之外的其它部件。另外,图中所示的方面仅是可以结合本公开的方面的云基础设施系统的一个示例。在一些其它方面中,云基础设施系统1502可以具有比图中所示更多或更少的部件、可以组合两个或更多个部件、或者可以具有不同的部件配置或布置。
客户端计算设备1504、1506和1508可以是与上面针对1402、1404、1406和1408所描述的设备类似的设备。
虽然示例性系统环境1500被示出具有三个客户端计算设备,但是任何数量的客户端计算设备可以被支持。诸如具有传感器的设备等的其它设备可以与云基础设施系统1502交互。
(一个或多个)网络1510可以促进客户端1504、1506和1508与云基础设施系统1502之间的数据通信和交换。每个网络可以是本领域技术人员所熟悉的可以使用各种商业上可获得的协议(包括上面针对(一个或多个)网络2810所描述的那些协议)中的任何一种支持数据通信的任何类型的网络。
云基础设施系统1502可以包括一个或多个计算机和/或服务器,其可以包括上面针对服务器1415所描述的那些计算机和/或服务器。
在某些方面中,由云基础设施系统提供的服务可以包括按需对云基础设施系统的用户可用的许多服务,诸如在线数据存储和备份解决方案、基于Web的电子邮件服务、被托管的办公室(office)套件和文档协作服务、数据库处理、受管理的技术支持服务等。由云基础设施系统提供的服务可以动态扩展以满足云基础设施系统的用户的需要。由云基础设施系统提供的服务的具体实例化在本文中被称为“服务实例”。一般而言,从云服务提供商的系统经由通信网络(诸如互联网)对用户可用的任何服务被称为“云服务”。通常,在公共云环境中,构成云服务提供商的系统的服务器和系统与客户自己的本地服务器和系统不同。例如,云服务提供商的系统可以托管应用,并且用户可以经由诸如互联网的通信网络按需订购和使用应用。
在一些示例中,计算机网络云基础设施中的服务可以包括对存储装置、被托管的数据库、被托管的Web服务器、软件应用或由云供应商向用户提供的其它服务的受保护的计算机网络访问,或者如本领域中另外已知的那样。例如,服务可以包括通过互联网对云上的远程存储装置进行密码保护的访问。作为另一个示例,服务可以包括基于Web服务的被托管的关系数据库和脚本语言中间件引擎,以供联网的开发人员私有使用。作为另一个示例,服务可以包括对在云供应商的网站上托管的电子邮件软件应用的访问。
在某些方面中,云基础设施系统1502可以包括以自助服务、基于订阅、弹性可扩展、可靠、高度可用和安全的方式递送给客户的应用、中间件和数据库服务产品的套件。这种云基础设施系统的示例是由本受让人提供的Oracle公共云。
大量数据(有时称为大数据)可以由基础设施系统在许多级别和不同规模上托管和/或操纵。这样的数据可能包含庞大而复杂的数据集,以致于很难使用典型的数据库管理工具或传统的数据处理应用进行处理。例如,使用个人计算机或其基于机架的对应物可能难以存储、检索和处理兆兆字节级的数据。使用最新的关系数据库管理系统以及桌面统计数据和可视化程序包,可能难以处理这种大小的数据。他们可能需要运行数千台服务器计算机的超出常用软件工具的结构的大规模并行处理软件,才能在可容忍的经过时间内捕获、整理、管理和处理数据。
分析人员和研究人员可以存储和操纵非常大的数据集,以可视化大量数据,检测趋势和/或以其他方式与数据进行交互。并行链接的数十个、数百个或数千个处理器可以对此类数据进行操作,以呈现该数据或模拟对该数据或其表示的外力。这些数据集可能涉及结构化数据(例如,在数据库中组织的数据或根据结构化模型进行组织的数据)和/或非结构化数据(例如,电子邮件、图像、数据块(二进制大对象)、网页、复杂事件处理)。通过利用一个方面的能力来相对快速地将更多(或更少)计算资源集中在一个目标上,可以根据企业、政府机构、研究组织、私人、志趣相投的个人或组织或其他实体的需求,更好地利用云基础架构系统来对大型数据集执行任务。
在各种方面中,云基础设施系统1502可以适于自动供应、管理和跟踪客户对由云基础设施系统1502供给的服务的订阅。云基础设施系统1502可以经由不同的部署模型来提供云服务。例如,可以依据公共云模型提供服务,其中云基础设施系统1502被销售云服务的组织拥有(例如,被Oracle拥有),并且服务对一般公众或不同行业的企业可用。作为另一个示例,可以依据私有云模型来提供服务,其中云基础设施系统1502仅针对单个组织操作,并且可以为该组织内的一个或多个实体提供服务。还可以依据社区云模型来提供云服务,其中云基础设施系统1502和由云基础设施系统1502提供的服务由相关社区中的若干组织共享。云服务还可以依据混合云模型被提供,该混合云模型是两个或更多个不同模型的组合。
在一些方面中,由云基础设施系统1502提供的服务可以包括在软件即服务(SaaS)类别、平台即服务(PaaS)类别、基础设施即服务(IaaS)类别或包括混合服务的其它服务类别下提供的一个或多个服务。客户经由订阅订单可以订购由云基础设施系统1502提供的一个或多个服务。云基础设施系统1502然后执行处理以提供客户的订阅订单中的服务。
在一些方面中,由云基础设施系统1502提供的服务可以包括但不限于应用服务、平台服务和基础设施服务。在一些示例中,应用服务可以由云基础设施系统经由SaaS平台提供。SaaS平台可以被配置为提供落入SaaS类别的云服务。例如,SaaS平台可以提供在集成开发和部署平台上构建和递送按需应用套件的能力。SaaS平台可以管理和控制用于提供SaaS服务的底层软件和基础设施。通过利用由SaaS平台提供的服务,客户可以利用在云基础设施系统上执行的应用。客户可以获取应用服务,而无需客户购买单独的许可和支持。可以提供各种不同的SaaS服务。示例包括但不限于为大型组织提供销售绩效管理、企业集成和业务灵活性的解决方案的服务。
在一些方面中,平台服务可以由云基础设施系统经由PaaS平台提供。PaaS平台可以被配置为提供落入PaaS类别的云服务。平台服务的示例可以包括但不限于使组织(诸如Oracle)能够在共享的公共体系架构上整合现有应用以及充分利用平台提供的共享服务来构建新应用的能力的服务。PaaS平台可以管理和控制用于提供PaaS服务的底层软件和基础设施。客户可以获取由云基础架构系统提供的PaaS服务,而无需客户购买单独的许可和支持。平台服务的示例包括但不限于Oracle Java云服务(JCS)、Oracle数据库云服务(DBCS)等。
通过利用由PaaS平台提供的服务,客户可以采用由云基础设施系统支持的编程语言和工具,并且还控制所部署的服务。在一些方面中,由云基础设施系统提供的平台服务可以包括数据库云服务、中间件云服务(例如,Oracle融合中间件服务)和Java云服务。在一个方面中,数据库云服务可以支持共享服务部署模型,该模型使得组织能够汇集数据库资源并且以数据库云的形式向客户供应数据库即服务。在云基础设施系统中,中间件云服务可以为客户提供开发和部署各种业务应用的平台,并且Java云服务可以为客户提供部署Java应用的平台。
各种不同的基础设施服务可以由云基础设施系统中的IaaS平台提供。基础设施服务促进底层计算资源(诸如存储装置、网络和其它基础计算资源)的管理和控制,以供客户利用由SaaS平台和PaaS平台提供的服务。
在某些方面中,云基础设施系统1502还可以包括基础设施资源1530,用于向云基础设施系统的客户提供用于提供各种服务的资源。在一个方面中,基础设施资源1530可以包括预先集成和优化的硬件(诸如服务器、存储装置和联网资源)的组合,以执行由PaaS平台和SaaS平台提供的服务。
在一些方面中,云基础设施系统1502中的资源可以由多个用户共享并且根据需要动态重新分配。此外,可以将资源分配给在不同时区的用户。例如,云基础设施系统1530可以使在第一时区中的第一组用户能够在指定的小时数内利用云基础设施系统的资源,并且然后使相同资源能够被重新分配给位于不同时区的另一组用户,从而使资源的利用率最大化。
在某些方面中,可以提供由云基础设施系统1502的不同部件或模块以及由云基础设施系统1502提供的服务共享的多个内部共享服务1532。这些内部共享服务可以包括但不限于:安全和身份服务、集成服务、企业储存库服务、企业管理器服务、病毒扫描和白名单服务、高可用性、备份和恢复服务、启用云支持的服务、电子邮件服务、通知服务、文件传输服务等。
在某些方面中,云基础设施系统1502可以提供云基础设施系统中的云服务(例如,SaaS、PaaS和IaaS服务)的综合管理。在一个方面中,云管理功能可以包括用于供应、管理和跟踪由云基础设施系统1502接收到的客户订阅等的能力。
在一个方面中,如图中所绘出的,云管理功能可以由一个或多个模块提供,诸如订单管理模块1520、订单编排模块1522、订单供应模块1524、订单管理和监视模块1526,以及身份管理模块1528。这些模块可以包括一个或多个计算机和/或服务器或者使用一个或多个计算机和/或服务器来提供,这些计算机和/或服务器可以是通用计算机、专用服务器计算机、服务器场、服务器集群或任何其它适当的布置和/或组合。
在示例性操作1534中,使用客户端设备(诸如客户端设备1504、1506或1508)的客户可以通过请求由云基础设施系统1502提供的一个或多个服务并且下订阅由云基础设施系统1502供应的一个或多个服务来的订单来与云基础设施系统1502交互。在某些方面中,客户可以访问云用户界面(UI)(云UI 1515、云UI 1514和/或云UI1516)并经由这些UI下订阅订单。云基础设施系统1502响应于客户下订单而接收到的订单信息可以包括识别客户以及客户想要订阅的云基础设施系统1502供应的一个或多个服务的信息。
在客户下订单之后,经由云UI 1515、1514和/或1516接收订单信息。
在操作1536处,订单存储在订单数据库1518中。订单数据库1518可以是由云基础设施系统1502操作和与其它系统元件一起操作的若干数据库之一。
在操作1538处,订单信息被转发到订单管理模块1520。在一些情况下,订单管理模块1520可以被配置为执行与订单相关的计费和记账功能,诸如验证订单、以及在验证后预订订单。
在操作1540处,将关于订单的信息传送到订单编排模块1522。订单编排模块1522可以利用订单信息为客户下的订单编排服务和资源的供应。在一些情况下,订单编排模块1522可以使用订单供应模块1524的服务来编排资源的供应以支持所订阅的服务。
在某些方面中,订单编排模块1522使得能够管理与每个订单相关联的业务过程并应用业务逻辑来确定订单是否应该进行到供应。在操作1542处,在接收到新订阅的订单时,订单编排模块1522向订单供应模块1524发送分配资源并配置履行订阅订单所需的那些资源的请求。订单供应模块1524使得能够为客户订购的服务分配资源。订单供应模块1524提供在由云基础设施系统1500提供的云服务和用于供应用于提供所请求的服务的资源的物理实现层之间的抽象层。因此,订单编排模块1522可以与实现细节(诸如服务和资源是否实际上即时供应或预先供应并仅在请求后才分配/指派)隔离。
在操作1544处,一旦供应了服务和资源,就可以通过云基础设施系统1502的订单供应模块1524向客户端设备1504、1506和/或1508上的客户发送所提供的服务的通知。
在操作1546处,订单管理和监视模块1526可以管理和跟踪客户的订阅订单。在一些情况下,订单管理和监视模块1526可以被配置为收集订阅订单中的服务的使用统计信息,诸如,所使用的存储量、传输的数据量、用户的数量,以及系统运行时间量和系统停机时间量。
在某些方面中,云基础设施系统1500可以包括身份管理模块1528。身份管理模块1528可以被配置为提供身份服务,诸如云基础设施系统1500中的访问管理和授权服务。在一些方面中,身份管理模块1528可以控制关于希望利用由云基础设施系统1502提供的服务的客户的信息。这样的信息可以包括认证这些客户的身份的信息以及描述这些客户被授权相对于各种系统资源(例如,文件、目录、应用、通信端口、存储器段等)执行哪些动作的信息。身份管理模块1528还可以包括对关于每个客户的描述性信息以及关于如何和由谁来访问和修改这些描述性信息的管理。
图16示出了其中可以实现本公开的各种方面的示例性计算机系统1600。系统1600可以用于实现上述任何计算机系统。如图所示,计算机系统1600包括经由总线子系统1602与多个外围子系统通信的处理单元1604。这些外围子系统可以包括处理加速单元1606、I/O子系统1608、存储子系统1618和通信子系统1624。存储子系统1618包括有形计算机可读存储介质1622和系统存储器1610。
总线子系统1602提供用于让计算机系统1600的各种部件和子系统按意图彼此通信的机制。虽然总线子系统1602被示意性地示出为单条总线,但是总线子系统的替代方面可以利用多条总线。总线子系统1602可以是若干种类型的总线结构中的任何一种,包括存储器总线或存储器控制器、外围总线、以及使用任何各种总线体系架构的局部总线。例如,这种体系架构可以包括工业标准体系架构(ISA)总线、微通道体系架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)局部总线和外围部件互连(PCI)总线,其可以被实现为按IEEE P1686.1标准制造的Mezzanine总线。
可以被实现为一个或多个集成电路(例如,常规微处理器或微控制器)的处理单元1604控制计算机系统1600的操作。一个或多个处理器可以被包括在处理单元1604中。这些处理器可以包括单核或多核处理器。在某些方面中,处理单元1604可以被实现为一个或多个独立的处理单元1632和/或1634,其中在每个处理单元中包括单核或多核处理器。在其它方面中,处理单元1604也可以被实现为通过将两个双核处理器集成到单个芯片中形成的四核处理单元。
在各种方面中,处理单元1604可以响应于程序代码执行各种程序并且可以维护多个并发执行的程序或进程。在任何给定的时间,要被执行的程序代码中的一些或全部代码可以驻留在(一个或多个)处理器1604中和/或存储子系统1618中。通过适当的编程,(一个或多个)处理器1604可以提供上述各种功能。计算机系统1600可以附加地包括处理加速单元1606,其可以包括数字信号处理器(DSP)、专用处理器,等等。
I/O子系统1608可以包括用户接口输入设备和用户接口输出设备。用户接口输入设备可以包括键盘、诸如鼠标或轨迹球的定点设备、结合到显示器中的触摸板或触摸屏、滚动轮、点击轮、拨盘、按钮、开关、键盘、具有语音命令识别系统的音频输入设备、麦克风以及其它类型的输入设备。用户接口输入设备可以包括,例如,运动感测和/或手势识别设备,诸如的Microsoft
Figure BDA0002893123370000451
运动传感器,其使得用户能够使用手势和语音命令通过自然用户接口来控制诸如的Microsoft
Figure BDA0002893123370000452
360游戏控制器的输入设备并与之交互。用户接口输入设备也可以包括眼睛姿势识别设备,诸如从用户检测眼睛活动(例如,当拍摄照片和/或做出菜单选择时的“眨眼”)并且将眼睛姿势转换为到输入设备(例如,Google
Figure BDA0002893123370000453
)中的输入的Google
Figure BDA0002893123370000454
眨眼检测器。此外,用户接口输入设备可以包括使用户能够通过语音命令与语音识别系统(例如,
Figure BDA0002893123370000455
导航器)交互的语音识别感测设备。
用户接口输入设备也可以包括但不限于三维(3D)鼠标、操纵杆或指向棒、游戏面板和绘图板,以及音频/视频设备,诸如扬声器、数码相机、数码摄像机、便携式媒体播放器、网络摄像头、图像扫描仪、指纹扫描仪、条形码阅读器3D扫描仪、3D打印机、激光测距仪和视线跟踪设备。此外,用户接口输入设备可以包括,例如,医学成像输入设备,诸如计算机断层扫描、磁共振成像、正电子发射断层摄影术、医疗超声设备。用户接口输入设备也可以包括,例如,诸如MIDI键盘、数字乐器等的音频输入设备。
用户接口输出设备可以包括显示子系统、指示灯,或者诸如音频输出设备的非可视显示器,等等。显示子系统可以是阴极射线管(CRT)、诸如使用液晶显示器(LCD)或等离子显示器的平板设备、投影设备、触摸屏,等等。一般而言,术语“输出设备”的使用意在包括用于从计算机系统1600向用户或其它计算机输出信息的所有可能类型的设备和机制。例如,用户接口输出设备可以包括,但不限于,可视地传达文本、图形和音频/视频信息的各种显示设备,诸如监视器、打印机、扬声器、耳机、汽车导航系统、绘图仪、语音输出设备,以及调制解调器。
计算机系统1600可以包括包含软件元件、被示为当前位于系统存储器1610中的存储子系统1618。系统存储器1610可以存储可加载并且可在处理单元1604上执行的程序指令,以及在这些程序的执行期间所产生的数据。
取决于计算机系统1600的配置和类型,系统存储器1610可以是易失性的(诸如随机存取存储器(RAM))和/或非易失性的(诸如只读存储器(ROM)、闪存存储器,等等)。RAM通常包含可被处理单元1604立即访问和/或目前正被处理单元1604操作和执行的数据和/或程序模块。在一些实现中,系统存储器1610可以包括多种不同类型的存储器,例如静态随机存取存储器(SRAM)或动态随机存取存储器(DRAM)。在一些实现中,诸如包含有助于在启动期间在计算机系统1600的元件之间传送信息的基本例程的基本输入/输出系统(BIOS),通常可以被存储在ROM中。作为示例,但不是限制,系统存储器1610也示出了可以包括客户端应用、web浏览器、中间层应用、关系数据库管理系统(RDBMS)等的应用程序1612,程序数据1614,以及操作系统1616。作为示例,操作系统1616可以包括各种版本的Microsoft
Figure BDA0002893123370000471
Apple
Figure BDA0002893123370000472
和/或Linux操作系统、各种可商业获得的
Figure BDA0002893123370000473
或类UNIX操作系统(包括但不限于各种GNU/Linux操作系统、Google
Figure BDA0002893123370000474
操作系统等)和/或诸如iOS、
Figure BDA0002893123370000475
Phone、
Figure BDA0002893123370000476
OS、
Figure BDA0002893123370000477
10OS和
Figure BDA0002893123370000478
OS操作系统的移动操作系统。
存储子系统1618也可以提供用于存储提供一些方面的功能的基本编程和数据结构的有形计算机可读存储介质。当被处理器执行时提供上述功能的软件(程序、代码模块、指令)可以被存储在存储子系统1618中。这些软件模块或指令可以被处理单元1604执行。存储子系统1618也可以提供用于存储根据本公开被使用的数据的储存库。
存储子系统1618也可以包括可被进一步连接到计算机可读存储介质1622的计算机可读存储介质读取器1620。与系统存储器1610一起并且,可选地,与其相结合,计算机可读存储介质1622可以全面地表示用于临时和/或更持久地包含、存储、发送和检索计算机可读信息的远程、本地、固定和/或可移除存储设备加存储介质。
包含代码或代码的部分的计算机可读存储介质1622也可以包括本领域已知或使用的任何适当的介质,包括存储介质和通信介质,诸如但不限于,以用于信息的存储和/或传输的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。这可以包括有形的非暂态的计算机可读存储介质,诸如RAM、ROM、电可擦除可编程ROM(EEPROM)、闪存存储器或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学储存器、磁带盒、磁带、磁盘储存器或其它磁存储设备,或者其它有形的计算机可读介质。当被指定时,这也可以包括非有形的暂态的计算机可读介质,诸如数据信号、数据传输,或者可以被用来发送期望信息并且可以被计算系统1618访问的任何其它介质。
作为示例,计算机可读存储介质1622可以包括从不可移除的非易失性磁介质读取或写到其的硬盘驱动器、从可移除的非易失性磁盘读取或写到其的磁盘驱动器、以及从可移除的非易失性光盘(诸如CD ROM、DVD和
Figure BDA0002893123370000481
盘或其它光学介质)读取或写到其的光盘驱动器。计算机可读存储介质1622可以包括,但不限于,
Figure BDA0002893123370000482
驱动器、闪存卡、通用串行总线(USB)闪存驱动器、安全数字(SD)卡、DVD盘、数字音频带,等等。计算机可读存储介质1622也可以包括基于非易失性存储器的固态驱动器(SSD)(诸如基于闪存存储器的SSD、企业闪存驱动器、固态ROM等)、基于易失性存储器的SSD(诸如固态RAM、动态RAM、静态RAM)、基于DRAM的SSD,磁阻RAM(MRAM)SSD,以及使用基于DRAM和闪存存储器的SSD的组合的混合SSD。盘驱动器及其关联的计算机可读介质可以为计算机系统1600提供计算机可读指令、数据结构、程序模块及其它数据的非易失性存储。
通信子系统1624提供到其它计算机系统和网络的接口。通信子系统1624用作用于从其它系统接收数据和从计算机系统1600向其它系统发送数据的接口。例如,通信子系统1624可以使计算机系统1600能够经由互联网连接到一个或多个设备。在一些方面中,通信子系统1624可以包括用于访问无线语音和/或数据网络的射频(RF)收发器部件(例如,使用蜂窝电话技术,诸如3G、4G或EDGE(用于全球演进的增强型数据速率)的先进数据网络技术,WiFi(IEEE 802.28系列标准),或其它移动通信技术,或其任意组合)、全球定位系统(GPS)接收器部件和/或其它部件。在一些方面中,作为无线接口的附加或者替代,通信子系统1624可以提供有线网络连接(例如,以太网)。
在一些方面中,通信子系统1624也可以代表可以使用计算机系统1600的一个或多个用户接收结构化和/或非结构化数据馈送1626、事件流1628、事件更新1616等形式的输入通信。
作为示例,通信子系统1624可被配置为实时地从社交媒体网络和/或其它通信服务的用户接收非结构化数据馈送1626,诸如
Figure BDA0002893123370000491
馈送、
Figure BDA0002893123370000492
更新、诸如丰富站点摘要(RSS)馈送的web馈送和/或来自一个或多个第三方信息源的实时更新。
此外,通信子系统1624也可被配置为接收连续数据流形式的数据,这可以包括本质上可以是连续的或无界的没有明确终止的实时事件的事件流1628和/或事件更新1616。产生连续数据的应用的示例可以包括,例如,传感器数据应用、金融报价机、网络性能测量工具(例如,网络监视和流量管理应用)、点击流分析工具、汽车流量监视,等等。
通信子系统1624也可被配置为向一个或多个数据库输出结构化和/或非结构化数据馈送1626、事件流1628、事件更新1616,等等,这一个或多个数据库可以与耦合到计算机系统1600的一个或多个流式数据源计算机通信。
计算机系统1600可以是各种类型之一,包括手持便携式设备(例如,
Figure BDA0002893123370000493
蜂窝电话、
Figure BDA0002893123370000494
计算平板电脑、PDA)、可穿戴设备(例如,Google
Figure BDA0002893123370000495
头戴式显示器)、PC、工作站、大型机、信息站、服务器机架、或任何其它数据处理系统。
由于计算机和网络的不断变化的本质,在图中绘出的计算机系统1600的描述仅仅要作为具体的示例。具有比图中绘出的系统更多或更少部件的许多其它配置是可能的。例如,定制的硬件也可以被使用和/或特定的元素可以用硬件、固件、软件(包括applets)或其组合来实现。另外,也可以采用到诸如网络输入/输出设备之类的其它计算设备的连接。基于本文提供的公开内容和示教,本领域普通技术人员将认识到实现各种方面的其它方式和/或方法。
在前述的说明书中,本公开的各方面参考其具体方面进行了描述,但本领域技术人员将认识到的是,本公开不限于此。上述公开的各个特征和方面可以被单独或联合使用。此外,在不脱离本说明书的更广泛精神和范围的情况下,方面可以在除本文所述的那些之外的任何数目的环境和应用中被使用。相应地,本说明书和附图应当被认为是说明性而不是限制性的。

Claims (20)

1.一种用于经由数据库服务自然语言查询的方法,所述方法包括:
访问具有表的数据库,其中每个表包括字段以及识别该表的标签,每个字段包括属性;
访问包括实体的自定义数据库索引,所述实体包括所述字段、所述属性以及所述字段或属性的一个或多个同义词;
访问自然语言搜索查询;
根据所述自然语言搜索查询构造解析树,其中所述解析树包括包含单词类型的至少一个终端节点和表示所述自然语言搜索查询的单词或短语的至少一个终端节点,其中所述解析树识别所述自然语言查询的句法信息;
从所述解析树中识别一个或多个子句,其中子句包括关键字并且其中每个关键字是名词或动词;
执行以下各项中的一个或多个:
将每个关键字与(i)表之一的标签或(ii)表之一的字段或(iii)字段的属性进行匹配,以及
确定关键字和所述自定义数据库索引之间的匹配的阈值级别;根据被映射的关键字生成数据库查询;
通过向所述数据库提供所述数据库查询来从所述数据库获得结果;以及
将所述结果显示给用户设备。
2.如权利要求1所述的方法,还包括:
响应于确定所述关键字中的关键字在所述数据库中未被匹配,将隐式节点插入到所述解析树中,其中所述隐式节点识别该关键字;以及
将该关键字呈现给所述用户设备。
3.如权利要求2所述的方法,还包括:
从所述用户设备接收澄清;
基于所述澄清,更新所述解析树;以及
将来自所述解析树的更新后的子句与所述数据库进行匹配。
4.如权利要求1所述的方法,其中,映射每个关键字包括将关键字之一与表之一的标签进行匹配。
5.如权利要求1所述的方法,其中,映射每个关键字包括将关键字之一与表之一的字段的阈值数量的单词进行匹配。
6.如权利要求1所述的方法,其中,映射每个关键字包括:
确定关键字的一个或多个同义词;以及
将所述一个或多个同义词映射到表之一的字段。
7.如权利要求1所述的方法,其中,确定匹配的阈值级别包括:
通过搜索所述自定义数据库索引来获得多个候选者,以及
为每个候选者确定所述实体与相应结果之间的匹配级别;以及
确定所有实体中具有最高匹配级别的实体。
8.如权利要求7所述的方法,其中,关键字与所述自定义数据库索引的实体之间的匹配级别是使用词频-逆文档频率法来确定的。
9.如权利要求1所述的方法,其中,访问自定义数据库索引包括:
访问包括一组连接节点的词库,其中,所述连接节点包括根节点和终端节点,并且其中所述终端节点是所述根节点的同义词;以及
对于每个终端节点,迭代地执行以下操作:
形成包括从所述根节点到相应终端节点的路径的搜索查询;
通过将该搜索查询提供给搜索引擎来获得结果集合;
计算所述结果集合中的每对结果的成对概括,其中成对概括提取相应对的每个结果所共有的一个或多个关键字;
从所述成对概括中提取单词或短语;
提取在所述成对概括内以高于阈值频率的频率出现的经排序的元素的子集;
根据提取出的元素的子集创建新节点;以及
将所述新节点连接到所述相应终端节点。
10.一种系统,包括:
存储非暂态计算机可执行程序指令的计算机可读介质;以及
通信地耦合到所述计算机可读介质的用于执行所述非暂态计算机可执行程序指令的处理设备,其中执行所述非暂态计算机可执行程序指令将所述处理设备配置为执行包括以下各项的操作:
访问具有表的数据库,其中每个表包括字段以及识别该表的标签,每个字段包括属性;
访问包括实体的自定义数据库索引,所述实体包括所述字段、所述属性以及所述字段或属性的一个或多个同义词;
访问自然语言搜索查询;
根据所述自然语言搜索查询构造解析树,其中所述解析树包括包含单词类型的至少一个终端节点和表示所述自然语言搜索查询的单词或短语的至少一个终端节点,其中所述解析树识别所述自然语言查询的句法信息;
从所述解析树中识别一个或多个子句,其中子句包括关键字并且其中每个关键字是名词或动词;
执行以下各项中的一个或多个:
将每个关键字与(i)表之一的标签或(ii)表之一的字段或(iii)字段的属性进行匹配,以及
确定关键字和所述自定义数据库索引之间的匹配的阈值级别;根据被映射的关键字生成数据库查询;
通过向所述数据库提供所述数据库查询来从所述数据库获得结果;以及
将所述结果显示给用户设备。
11.如权利要求10所述的系统,其中,所述操作还包括:
响应于确定所述关键字中的关键字在所述数据库中未被匹配,将隐式节点插入到所述解析树中,其中所述隐式节点识别该关键字;以及
将该关键字呈现给所述用户设备。
12.如权利要求11所述的系统,其中,所述操作还包括:
从所述用户设备接收澄清;
基于所述澄清,更新所述解析树;以及
将来自所述解析树的更新后的子句与所述数据库进行匹配。
13.如权利要求10所述的系统,其中,映射每个关键字包括:
确定关键字的一个或多个同义词;以及
将所述一个或多个同义词映射到表之一的字段。
14.如权利要求10所述的系统,其中,确定匹配的阈值级别包括:
通过搜索所述自定义数据库索引来获得多个候选者,以及
为每个候选者确定所述实体与相应结果之间的匹配级别;以及
确定所有实体中具有最高匹配级别的实体。
15.如权利要求10所述的系统,其中,关键字与所述自定义数据库索引的实体之间的匹配级别是使用词频-逆文档频率法来确定的。
16.如权利要求10所述的系统,其中,访问自定义数据库索引包括:
访问包括一组连接节点的词库,其中,所述连接节点包括根节点和终端节点,并且其中所述终端节点是所述根节点的同义词;以及
对于每个终端节点,迭代地执行以下操作:
形成包括从所述根节点到相应终端节点的路径的搜索查询;
通过将该搜索查询提供给搜索引擎来获得结果集合;
计算所述结果集合中的每对结果的成对概括,其中成对概括提取相应对的每个结果所共有的一个或多个关键字;
从所述成对概括中提取单词或短语;
提取在所述成对概括内以高于阈值频率的频率出现的经排序的元素的子集;
根据提取出的元素的子集创建新节点;以及
将所述新节点连接到所述相应终端节点。
17.一种存储计算机可执行程序指令的非暂态计算机可读存储介质,其中所述程序指令在由处理设备执行时,使所述处理设备执行包括以下各项的操作:
访问具有表的数据库,其中每个表包括字段以及识别该表的标签,每个字段包括属性;
访问包括实体的自定义数据库索引,所述实体包括所述字段、所述属性以及所述字段或属性的一个或多个同义词;
访问自然语言搜索查询;
根据所述自然语言搜索查询构造解析树,其中所述解析树包括包含单词类型的至少一个终端节点和表示所述自然语言搜索查询的单词或短语的至少一个终端节点,其中所述解析树识别所述自然语言查询的句法信息;
从所述解析树中识别一个或多个子句,其中子句包括关键字并且其中每个关键字是名词或动词;
执行以下各项中的一个或多个:
将每个关键字与(i)表之一的标签或(ii)表之一的字段或(iii)字段的属性进行匹配,以及
确定关键字和所述自定义数据库索引之间的匹配的阈值级别;根据被映射的关键字生成数据库查询;
通过向所述数据库提供所述数据库查询来从所述数据库获得结果;以及
将所述结果显示给用户设备。
18.如权利要求17所述的非暂态计算机可读存储介质,其中,所述操作还包括:
响应于确定所述关键字中的关键字在所述数据库中未被匹配,将隐式节点插入到所述解析树中,其中所述隐式节点识别该关键字;以及
将该关键字呈现给所述用户设备。
19.如权利要求17所述的非暂态计算机可读存储介质,其中,确定匹配的阈值级别包括:
通过搜索所述自定义数据库索引来获得多个候选者,以及
为每个候选者确定所述实体与相应结果之间的匹配级别;以及
确定所有实体中具有最高匹配级别的实体。
20.如权利要求17所述的非暂态计算机可读存储介质,其中访问自定义数据库索引包括:
访问包括一组连接节点的词库,其中,所述连接节点包括根节点和终端节点,并且其中所述终端节点是所述根节点的同义词;以及
对于每个终端节点,迭代地执行以下操作:
形成包括从所述根节点到相应终端节点的路径的搜索查询;
通过将该搜索查询提供给搜索引擎来获得结果集合;
计算所述结果集合中的每对结果的成对概括,其中成对概括提取相应对的每个结果所共有的一个或多个关键字;
从所述成对概括中提取单词或短语;
提取在所述成对概括内以高于阈值频率的频率出现的经排序的元素的子集;
根据提取出的元素的子集创建新节点;以及
将所述新节点连接到所述相应终端节点。
CN201980046615.9A 2018-07-25 2019-07-25 使用自主代理和词库的数据库的自然语言接口 Active CN112437917B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862703389P 2018-07-25 2018-07-25
US62/703,389 2018-07-25
PCT/US2019/043505 WO2020023787A1 (en) 2018-07-25 2019-07-25 Natural language interfaces for databases using autonomous agents and thesauri

Publications (2)

Publication Number Publication Date
CN112437917A true CN112437917A (zh) 2021-03-02
CN112437917B CN112437917B (zh) 2022-04-12

Family

ID=67544463

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201980046615.9A Active CN112437917B (zh) 2018-07-25 2019-07-25 使用自主代理和词库的数据库的自然语言接口

Country Status (5)

Country Link
US (1) US10592505B2 (zh)
EP (1) EP3788503A1 (zh)
JP (1) JP7449919B2 (zh)
CN (1) CN112437917B (zh)
WO (1) WO2020023787A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115374765A (zh) * 2022-10-27 2022-11-22 浪潮通信信息系统有限公司 一种基于自然语言处理的算力网络5g数据解析系统及方法
CN117708304A (zh) * 2024-02-01 2024-03-15 浙江大华技术股份有限公司 数据库问答方法、设备及存储介质

Families Citing this family (35)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109299219B (zh) * 2018-08-31 2022-08-12 北京奥星贝斯科技有限公司 数据查询方法、装置、电子设备及计算机可读存储介质
US11360969B2 (en) 2019-03-20 2022-06-14 Promethium, Inc. Natural language based processing of data stored across heterogeneous data sources
US11734325B2 (en) * 2019-04-30 2023-08-22 Salesforce, Inc. Detecting and processing conceptual queries
US10565639B1 (en) * 2019-05-02 2020-02-18 Capital One Services, Llc Techniques to facilitate online commerce by leveraging user activity
US11789940B2 (en) * 2019-08-16 2023-10-17 American Express Travel Related Services Company, Inc. Natural language interface to databases
US11222013B2 (en) * 2019-11-19 2022-01-11 Sap Se Custom named entities and tags for natural language search query processing
CN113642303A (zh) * 2020-04-27 2021-11-12 阿里巴巴集团控股有限公司 一种分析报告的生成方法、装置及电子设备
CN111666372B (zh) * 2020-04-29 2023-08-18 百度在线网络技术(北京)有限公司 解析查询词query的方法、装置、电子设备和可读存储介质
CN111625554B (zh) * 2020-07-30 2020-11-03 武大吉奥信息技术有限公司 一种基于深度学习语义理解的数据查询方法及装置
US20220129450A1 (en) * 2020-10-23 2022-04-28 Royal Bank Of Canada System and method for transferable natural language interface
US11513930B2 (en) 2020-12-03 2022-11-29 International Business Machines Corporation Log-based status modeling and problem diagnosis for distributed applications
US11403326B2 (en) 2020-12-03 2022-08-02 International Business Machines Corporation Message-based event grouping for a computing operation
US11995562B2 (en) 2020-12-03 2024-05-28 International Business Machines Corporation Integrating documentation knowledge with log mining for system diagnosis
US11797538B2 (en) 2020-12-03 2023-10-24 International Business Machines Corporation Message correlation extraction for mainframe operation
US11474892B2 (en) 2020-12-03 2022-10-18 International Business Machines Corporation Graph-based log sequence anomaly detection and problem diagnosis
US11243835B1 (en) 2020-12-03 2022-02-08 International Business Machines Corporation Message-based problem diagnosis and root cause analysis
US11599404B2 (en) 2020-12-03 2023-03-07 International Business Machines Corporation Correlation-based multi-source problem diagnosis
US20220180056A1 (en) * 2020-12-09 2022-06-09 Here Global B.V. Method and apparatus for translation of a natural language query to a service execution language
CN112819512B (zh) * 2021-01-22 2023-03-24 北京有竹居网络技术有限公司 一种文本处理方法、装置、设备及介质
AU2022212704A1 (en) 2021-01-27 2023-08-17 Verantos, Inc. High validity real-world evidence study with deep phenotyping
US12008043B2 (en) * 2021-03-29 2024-06-11 Microsoft Technology Licensing, Llc Natural language query processing and debugging
US11726994B1 (en) 2021-03-31 2023-08-15 Amazon Technologies, Inc. Providing query restatements for explaining natural language query results
US11500865B1 (en) 2021-03-31 2022-11-15 Amazon Technologies, Inc. Multiple stage filtering for natural language query processing pipelines
US11604794B1 (en) * 2021-03-31 2023-03-14 Amazon Technologies, Inc. Interactive assistance for executing natural language queries to data sets
WO2022245405A1 (en) 2021-05-17 2022-11-24 Verantos, Inc. System and method for term disambiguation
JP7472078B2 (ja) * 2021-05-20 2024-04-22 株式会社東芝 データ仮想化装置及び方法
CN113553414B (zh) * 2021-06-30 2023-08-25 北京百度网讯科技有限公司 智能对话方法、装置、电子设备和存储介质
CN113449003B (zh) * 2021-07-07 2024-04-16 京东科技控股股份有限公司 信息查询的方法、装置、电子设备及介质
CN113590792A (zh) * 2021-08-02 2021-11-02 中国工商银行股份有限公司 用户问题的处理方法、装置和服务器
US20230127907A1 (en) * 2021-10-22 2023-04-27 International Business Machines Corporation Intention identification in dialogue system
CN114048312B (zh) * 2021-11-09 2024-06-21 中国人民银行清算总中心 一种自然语言查询任务的模型输入信息处理方法及装置
KR20230079729A (ko) * 2021-11-29 2023-06-07 주식회사 포티투마루 자연어 질의의 sql 변환 방법 및 장치
US12050877B2 (en) * 2021-12-06 2024-07-30 International Business Machines Corporation Contextual dialogue framework over dynamic tables
CN116628140B (zh) * 2023-07-20 2023-10-27 湖南华菱电子商务有限公司 基于人机交互的信息推送方法及装置、人机交互系统
CN117271767B (zh) * 2023-09-15 2024-02-13 上海海启科技有限公司 基于多智能体的运维知识库的建立方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885786A (zh) * 2017-10-17 2018-04-06 东华大学 面向大数据的自然语言查询接口实现方法
CN108052547A (zh) * 2017-11-27 2018-05-18 华中科技大学 基于问句和知识图结构分析的自然语言问答方法及系统
US20180165330A1 (en) * 2016-12-08 2018-06-14 Sap Se Automatic generation of structured queries from natural language input

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0944508A (ja) * 1995-07-27 1997-02-14 Toshiba Corp データベース自然言語インタフェース装置および方法
JP2002207761A (ja) 2001-01-10 2002-07-26 Just Syst Corp 検索装置、検索方法、プログラム、ならびに、記録媒体
JP2002288201A (ja) 2001-03-23 2002-10-04 Fujitsu Ltd 質問応答処理方法,質問応答処理プログラム,質問応答処理プログラム記録媒体および質問応答処理装置
JP2002342361A (ja) 2001-05-15 2002-11-29 Mitsubishi Electric Corp 情報検索装置
JP2005208825A (ja) 2004-01-21 2005-08-04 Toshiba Corp データ検索システム、データ検索方法及びプログラム
US10417247B2 (en) * 2014-09-25 2019-09-17 Oracle International Corporation Techniques for semantic searching
EP3142029A1 (en) * 2015-09-11 2017-03-15 Google, Inc. Disambiguating join paths for natural language queries
US9959311B2 (en) 2015-09-18 2018-05-01 International Business Machines Corporation Natural language interface to databases
US10489393B1 (en) * 2016-03-30 2019-11-26 Amazon Technologies, Inc. Quasi-semantic question answering
US10691685B2 (en) * 2017-06-03 2020-06-23 Apple Inc. Converting natural language input to structured queries
US11409737B2 (en) * 2017-11-29 2022-08-09 Resilient Cognitive Solutions, LLC Interactive structured analytic systems

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180165330A1 (en) * 2016-12-08 2018-06-14 Sap Se Automatic generation of structured queries from natural language input
CN107885786A (zh) * 2017-10-17 2018-04-06 东华大学 面向大数据的自然语言查询接口实现方法
CN108052547A (zh) * 2017-11-27 2018-05-18 华中科技大学 基于问句和知识图结构分析的自然语言问答方法及系统

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
AGRAWAL ROHIT等: "DBIQS- An intelligent system for querying and mining databases using", 《2014 INTERNATIONAL CONFERENCE ON INFORMATION SYSTEMS AND COMPUTER NETWORKS(ISCON), IEEE》 *
BORIS A. GALITSKY等: "Generalization of parse trees for iterative taxonomy learning", 《INFORMATION SCIENCES》 *
FEI LI等: "Understanding Natural Language Queries over Relational Databases", 《SIGMOD RECORD》 *
PRASHANT GUPTA等: "IQS- Intelligent Querying System using Natural Language Processing", 《INTERNATIONAL CONFERENCE ON ELECTRONICS, COMMUNICATION AND AEROSPACE TECHNOLOGY ICECA 2017》 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115374765A (zh) * 2022-10-27 2022-11-22 浪潮通信信息系统有限公司 一种基于自然语言处理的算力网络5g数据解析系统及方法
CN117708304A (zh) * 2024-02-01 2024-03-15 浙江大华技术股份有限公司 数据库问答方法、设备及存储介质
CN117708304B (zh) * 2024-02-01 2024-05-28 浙江大华技术股份有限公司 数据库问答方法、设备及存储介质

Also Published As

Publication number Publication date
US10592505B2 (en) 2020-03-17
JP2021530818A (ja) 2021-11-11
EP3788503A1 (en) 2021-03-10
US20200034362A1 (en) 2020-01-30
CN112437917B (zh) 2022-04-12
WO2020023787A1 (en) 2020-01-30
JP7449919B2 (ja) 2024-03-14

Similar Documents

Publication Publication Date Title
CN112437917B (zh) 使用自主代理和词库的数据库的自然语言接口
US11694040B2 (en) Using communicative discourse trees to detect a request for an explanation
US20220382752A1 (en) Mapping Natural Language To Queries Using A Query Grammar
US11379506B2 (en) Techniques for similarity analysis and data enrichment using knowledge sources
JP6714024B2 (ja) 言語入力データからnグラムおよび概念関係の自動生成
US11741316B2 (en) Employing abstract meaning representation to lay the last mile towards reading comprehension
US11720749B2 (en) Constructing conclusive answers for autonomous agents
US11829420B2 (en) Summarized logical forms for controlled question answering
CN112106056A (zh) 构造虚构的话语树来提高回答聚敛性问题的能力
US11847420B2 (en) Conversational explainability
CN110612525A (zh) 通过使用交流话语树启用修辞分析
US12093253B2 (en) Summarized logical forms based on abstract meaning representation and discourse trees
US11556698B2 (en) Augmenting textual explanations with complete discourse trees
CN114429133A (zh) 通过神经机器阅读理解依赖于话语分析来回答复杂问题
CN116940937A (zh) 生成多模态话语树的技术

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant