使用大表语料库连接语义相关的数据的制作方法

文档序号:13689455阅读:178来源:国知局
使用大表语料库连接语义相关的数据的制作方法

背景技术
:传统的连接处理依赖于值的字符串相等比较(例如,两个表的连接)。虽然等值连接在大量组织的关系数据库或数据仓储设置中工作地很好,其中数据被广泛地清理并且转换为适合的格式,通常用户必须手动地找到中间映射表来执行期望的连接。而且,在大多数场景中,可能不存在可以覆盖所有期望的连接对的单个中间映射表。在其中至少两个数据集将被连接的示例中,如果数据集中的值是相关的但是以不同的表示,那么在没有手动地找到中间映射表或手动地连接数据集中的值的情况下,不能执行连接处理。用于执行连接处理的现有系统是不方便的、耗费时间的并且甚至在一些情况下不可使用的。技术实现要素:本公开的示例实现使用一个或多个大表语料库执行语义连接。标识来自至少两个数据集的值对。值对包括来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值。基于共现数据,确定针对所标识的值对的统计共现得分。所确定的统计共现得分被用于由与计算设备相关联的处理器预测至少两个数据集之间的语义关系。提供该概述以引入以在详细描述中下文进一步描述的简化形式的概念的选择。本概述不旨在标识要求保护的主题的关键特征或基本特征,其也不旨在被用作辅助确定要求保护的主题的范围。附图说明图1是图示用于对数据执行语义连接操作的计算设备的示例性块图。图2是图示计算设备使用网络上的大表语料库以用于对两个表执行语义连接操作的示例性块图。图3是图示用于对数据执行语义连接操作的操作示例性块图。图4是图示用于预测数据集之间的语义关系的计算设备的操作的示例性流程图。图5是图示预测用于执行表之间的语义连接的连接关系的计算设备的操作的示例性流程图。图6、图7和图8是图示使用桥接表语义地连接表的计算设备的操作的示例性流程图。对应的参考标记贯穿附图指示对应的部分。具体实施方式参考附图,本公开的示例实现对不同的表示中的数据执行语义连接操作(例如,“语义连接”)。数据被存储在具有值的行和列的多个表中。例如,在电子表格环境中,用户126可能想要将具有主题列国家代码连接的一个表与具有主题列国家名称的另一个表进行连接。传统系统(例如,执行等值连接)不能自动地处理这样的连接,并且用户126通常必须手动地找到中间映射表以便执行期望的连接。本公开的各方面提供了自动化系统,其预测和/或推断连接关系以促进对不同表示(例如,使用不同表示的两个表中的列的相同集合或使用不同表示的两个表中的列的相关集合)中的数据的语义连接的。连接关系使用基于历史共现数据确定的统计共现得分而被预测或推断。考虑在其中大型互联网公司内的商业分析员具有关于跨不同国家的公司的广告收入的表的示例,如在以下具有假设数据的表1(a)中所示出的:表1(a):按照国家代码的假设的公司销售数据表1(a)的第一列使用2位iso国家代码列出所有国家。表1(a)的第二列列出每个国家中的因特网用户的数目,以及第三列列出公司在每个国家中的广告收入(例如,销售)。商业分析员还具有包括假设数据的另一表。下面所示的表1(b)列出因特网用户的假设的总数和每个国家中的假设的因特网普及率:国家名称因特网用户普及率中国568,192,06642.30%美国254,295,53681.00%印度243,298,99419.60%日本100,684,47479.10%巴西99,357,73749.80%俄罗斯75,926,00453.30%德国68,296,91984.00%尼日尼亚55,000,00032.90%英国54,861,24587.00%表1(b):按照国家名称的假设的因特网普及率如果商业分析员要将两个表1(a)和1(b)连接(或者类似这些的任何其他多个表),使用字符串相等比较的传统等值连接操作将失败,或者商业分析员将必须手动地找到具有国家名称和2位iso国家代码的映射的中间映射表。相反,本公开的方面实现使用预测促进语义连接的期望的连接关系的自动化系统来连接表1(a)和表1(b)。标识来自两个表的值对。每对包括来自表1(a)的第一列的一个值和来自表1(b)的第一列的另一值。基于历史共现数据(例如,包括大表语料库、多个大表语料库、企业数据库、较早共现数据等),针对所标识的值对确定统计共现得分。使用统计共现得分推断或预测两个表之间的连接关系。本公开的各方面还实现至少两个数据集(例如,表、逗号分隔值(csv)等)的语义连接。在没有任何用户交互或非常少用户交互的情况下,自动地执行语义连接。因此,本公开的各方面实现更快并且准确的语义连接。本公开的方面实现当两个数据集参考相同概念但是使用不同表示时的语义连接(例如,表1(a)使用2位iso国家代码,然而表1(b)使用指代国家的相同概念的国家名称)。本公开的方面还实现连接不必指代相同实体的两个数据集。例如,如果一个数据集包括国家及其人口并且另一数据集包括城市及其犯罪率,那么还由本公开的方面实现这两个数据集的语义连接。如此,执行连接操作的处理速度随着降低的错误率而增加,从而增强用户体验。此外,本公开的各方面改进自动化连接操作的精度。参考图1,示例性块图图示了用于对数据执行语义连接操作的计算设备102。在图1的示例中,与用户126相关联的计算设备表示用于对不同表示中的数据执行语义连接的系统。计算设备102表示执行实现与计算设备102相关联的操作和功能的指令(例如,如应用程序、操作系统功能、或二者)的任何设备。计算设备102可以包括移动计算设备或任何其他便携式设备。在一些示例中,移动计算设备包括移动电话、膝上型电脑、平板电脑、计算板、上网本、游戏设备和/或便携式媒体播放器。计算设备102还可以包括较少的便携式设备(诸如台式个人计算机、信报亭、桌面设备、工业控制设备、无线充电站和自动汽车充电站)。此外,计算设备102可以表示一组处理单元或其他计算设备。在一些示例中,计算设备102具有至少一个处理器104、存储器区域108以及至少一个用户接口106(例如,用于录入连接两个表的命令和/或用于显示连接表)。处理器104包括任何数量的处理单元,并且被编程为执行用于实现本公开的方面的计算机可执行指令。指令可以由在计算设备102内执行的处理器104或多个处理器104执行,或者由计算设备102外部的处理器执行。在一些示例中,处理器104被编程为执行指令,诸如附图(例如,图4-8)中所图示的那些指令。在一些示例中,处理器104表示执行在此所描述的操作的类似技术的实现。例如,可以由模拟计算设备和/或数字计算设备执行操作。计算设备102还具有一个或多个计算机可读介质(诸如存储器区域108)。存储器区域108包括与计算设备102相关联或由计算设备102可访问的任何数量的介质。存储器区域108可以在计算设备102内部、在计算设备102外部、或二者。在一些示例中,存储器区域108包括只读存储器和/或接线到模拟计算设备102中的存储器。除了其他数据之外,存储器区域108还存储一个或多个应用110。当由处理器104执行时,应用110操作以对计算设备102执行功能。示例性应用110包括邮箱应用程序、网络浏览器、日历应用程序、通讯录应用程序、消息程序、媒体应用、基于位置的服务、搜索程序、文字处理应用、电子表格应用等。应用110可以与副本应用或服务(诸如经由网络202可访问的网络服务)进行通信。例如,应用110可以表示对应于在云中执行的服务器端服务的下载的客户端应用。存储器区域108还存储从其至少两个数据集和/或表将被连接的数据集和/或表112(例如,表具有值的列和值的行)。在一些示例中,存储器区域108还存储针对值对的统计共现得分114(例如,其已经基于历史共现数据先前地被确定)。处理器104被编程为接收在被存储在存储器区域108中的表中的至少两个表执行语义连接操作的请求。请求可以是来自用户126对至少两个表执行连接操作的明确请求或隐含请求(例如,用户126执行从两个表接收输入的搜索操作并且如果两个表使用本公开的方面被连接则搜索操作返回正确结果)。响应于接收到的请求,标识来自至少两个表的值对。通过标识来自表中的第一表的值和来自表中的第二表的值的多个组合来标识值对。值对包括来自表中的第一表中的列的一个值和来自表中的第二表中的列的一个值。基于历史共现数据(例如,大表语料库、企业数据库以及较早共现数据中的一个或多个),确定针对所标识的值对的统计共现得分。针对所标识的值对的统计共现得分基于行水平共现得分和列水平统计共现得分中的一个或多个。在一些示例中,通过爬取多个关系表(其是历史共现数据的一部分)来确定针对所标识的值对的统计共现得分。基于爬取的多个关系表,针对所标识的值对中的每一个计算相关性得分。针对所标识的值对的相关性得分被聚合以测量针对所标识的值对的聚合相关得分。聚合相关得分是所标识的值对之间的语义关系的测量,语义关系的测量从多个关系表被得到。所测量的聚合相关得分被用于生成历史共现数据的一部分(例如,历史共现数据的该部分表示用于后续连接的较早共现数据)。历史共现数据的所生成的部分被用于计算针对所标识的值对的统计共现得分。在一些其他示例中,多个关系表在离线模式中被爬取(例如,在没有或不响应于用于连接至少两个表的用户请求的情况下,可以执行关系表的爬取)。在这样的示例中,当处理器104相对自由时,可以执行关系表的爬取(例如,处理器104在某种程度上具有比预定义阈值更少的负载)。关系表的爬取生成针对多个表中的值对的统计共现得分(这些值对对应于多个表中的值的列中的值,多个表可以是大表语料库204和/或企业数据库的一部分)。所生成的统计共现得分被存储在存储器区域108中并且可以表示用于后续连接的较早共现数据。较早共现数据的存在导致更快的连接,这是因为值对中的至少一些值对可能已经具有来自较早连接的共现数据,并且因此后续连接可能必须确定较早共现数据不存在的仅一些值对的统计共现得分。使用统计共现得分推断至少两个表之间的连接关系。通过在所有值对之间生成最大聚合相关得分来推断连接关系,其中(在一些示例中)如果最大聚合相关得分大于阈值,则自动地推断连接关系。例如,如果在至少两个表之间推断超过一个连接关系,则具有最大聚合相关得分的连接关系比其他连接关系排名更高(例如,连接关系从最高聚合相关得分到最低聚合相关得分排名)。在一些示例中,如果最大聚合相关得分大于阈值(例如,逐点互信息(pmi)得分阈值针对值对可以被预定义为0),则自动地推断连接关系。忽略pmi得分小于0的值对中的一些值对。例如,如果美国和jp(日本的国家代码)非常频繁地共现,那么其pmi得分将小于0并且值对(美国、jp)由于不太有意义而被删去。在一些示例中,值对中的每一个的最大聚合相关得分用于计算指示两个表连接多么好的最终得分。最终得分可用作将可连接表比可能不可连接的其他表更高排名的表排名系统中的特征。在这样的示例中,表排名系统在用于执行后续连接或执行后续搜索的更高排名的可连接表中进行搜索。这样,可以更快并且更高效地执行后续连接,这是因为找到共同出现的值对的概率在更高排名的可连接表中是更高的。备选地或者附加地,处理器104可以被编程为基于推断的连接关系来输出桥接表。桥接表用于执行至少两个表的语义连接。在一些示例中,桥接表被呈现给计算设备102的用户126,其对桥接表中的推断的连接关系不正确的所标识的值对进行改正。利用对所标识的值对的改正更新桥接表,使得桥接表中的连接关系现在正确。存储器区域108还存储一个或多个计算机可执行部件。示例性部件包括标识部件116、统计服务部件118、连接路径计算部件120、用户接口部件122、爬取部件124以及通信接口部件126。在由至少一个处理器104执行时,标识部件116使得至少一个处理器104标识来自至少两个数据集的值对。值对包括来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值。在由至少一个处理器104执行时,统计服务部件118使得至少一个处理器104基于大表语料库中的其相关性强度,计算针对所标识的值对中的一个或多个值对的统计共现得分。计算统计共现得分可能意味着根据大表语料库确定所标识的值对中的一个或多个值对的统计共现得分。在一些示例中,针对所有值对的统计共现得分(例如,如由标识部件116所标识的)可以是在大表语料库中可用的。在一些其他示例中,对于值对中的一些值对,统计共现得分可能在大表语料库中是可用的,或者值对中的任一个值对,统计共现得分可能在大表语料库中是不可用的。在这样的示例中,针对统计共现得分不可用的值对,计算统计共现得分。在一些示例中,在由至少一个处理器104时,爬取部件124使得至少一个处理器104爬取用于确定所标识的值对中的一个或多个值对的相关性强度的大表语料库。影响相关性强度的一些参数是大表语料库中的关系表的来源(例如,来自企业的关系表可以比来自一些开源数据库的关系表给予更多权重)、可以存在于大表语料库和其源中的较早统计共现得分(例如,来自相同用户的较早统计共现得分比针对另一用户的较早统计共现得分给定更高权重)、数据覆盖(例如,覆盖值对的90%的关系表比覆盖值对的仅2%的另一表给定更高权重),等等。在由至少一个处理器104执行时,连接路径计算部件120使得至少一个处理器104使用由统计服务部件118计算的统计共现得分来计算所标识的值对中的一个或多个值对之间的连接关系。针对所标识的值对中的一个或多个值对的统计共现得分基于行水平共现得分和列水平统计共现得分中的一个或多个。在由至少一个处理器104执行时用户接口部件122使得至少一个处理器104将计算出的连接关系呈现给用户126,以用于执行至少两个数据集的语义连接。如果所计算的连接关系是正确的,则用户126可以直接地选择用于基于所呈现的连接关系来执行至少两个数据集的语义连接。否则,用户126可以选择对呈现的连接关系进行改正,并且在下文中经改正的连接关系被用于执行至少两个数据集的语义连接。通信接口部件126可以将连接两个表的请求从计算设备102提供到另一计算设备(例如,在其上可以托管待连接的两个表的服务器)。在一些示例中,通信接口部件126包括网络接口卡和/或用于操作网络接口卡的计算机可执行指令(例如,驱动程序)。计算设备102与其他设备(具有大表语料库或历史共现数据)之间的通信可以通过任何有线或无线连接(例如,wi-fi、蓝牙品牌传播或蜂窝连接)使用任何协议或机制而发生。在一些示例中,通信接口是利用短程通信技术(诸如通过使用近场通信(nfc)标签)可操作的。在一些示例中,用户接口部件122包括用于将数据显示给用户126并且从用户126接收数据的图形卡。用户接口部件122还可以包括用于操作图形卡的计算机可执行指令(例如,驱动程序)。而且,用户接口部件122可以包括显示器(例如,触摸屏显示器或自然用户接口)和/或用于操作显示器的计算机可执行指令(例如,驱动程序)。用户接口部件122还可以包括将数据提供到用户126或从用户126接收数据的以下各项中的一项或多项:扬声器、声卡、照相机、麦克风、振动电机、一个或多个加速度计、蓝牙品牌传播模块、全球定位系统(gps)硬件以及感光传感器。例如,用户126可以通过以特定的方式移动计算设备102来输入命令或操纵数据。然后参考图2,示例性块图图示了通过网络202使用大表语料库204以用于对两个表执行语义连接操作的计算设备102(连接两个表206表示连接两个或更多个表/数据集的命令)。虽然图2中的计算设备102被示出为执行两个表的连接,但是将超过两个数据集(例如,超过两个表)连接也在本公开的范围内。大表语料库204可以被托管在服务器上或者在服务器的分布式集合上。在一些示例中,大表语料库204包括云上或者与企业数据库相关联的关系表(或数据集)。大表语料库204还可以包括历史共现数据。虽然大表语料库204被标识为包括历史共现数据,但是在一些示例中,历史共现数据可以包括大表语料库204。例如,大表语料库204可以包括超过1亿个网络表并且企业数据库可以包括超过500000个企业数据库表。在一些示例中,图2中所示的计算设备102可以仅发出用于连接两个表的命令,并且待连接的表和大表语料库204(或历史共现数据)可以被托管在云存储装置(例如,云)上。在这样的示例中,连接操作的表的输出可以被显示在计算设备102上或在与计算设备102相关联的显示器上。输出表可以被存储在计算设备102上或在云上(例如,在已托管待连接的两个表的服务器上)。然后参考图3,示例性块图图示了用于对数据执行语义连接操作的操作。例如,数据爬取部件302爬取来自包括公共网页的源以及可选地来自专有源(诸如企业电子表格)的关系表。共现统计计算和/或存储部件304将爬取的关系内容切碎(例如,划分或再分)为共现值对(例如,表1(a)中的“gb”和表1(b)中的“英国”),其然后被聚合以获得统计共现得分(诸如逐点互信息)以(例如,通过利用大数据计算平台)测量其相关性强度。统计共现得分然后由统计索引和服务部件306来索引和存储。统计索引和服务部件306将在线查询用作经由接收连接表的请求的部件310连接的输入表。部件310可以基于用于连接在其中待连接的表可以由用户126输入/标识的两个表(或超过两个表)的明确请求来提供连接的输入表。在一些示例中,部件310可以基于来自用户126的隐式请求提供连接的输入表。例如,如果用户126查询英国的广告收入和因特网普及率并且该信息在单个表中是不可用的,那么可以通过连接两个表(例如,可以是大表语料库的一部分的表1(a)和表1(b))来回答该查询。在该示例中,表未由用户126明确地输入并且其是与确定两个表必须被连接(基于用于大表语料库中的“gb”和“英国”的统计共现得分)以用于回答用户的查询的计算设备102相关联的处理器104。使用部件308的连接路径计算接收待连接的两个表(或可以要求待连接的两个表的用户的查询)。使用部件308的连接路径计算查询统计索引和服务部件306以取回用于连接表中的单元值对的相关共现统计。给定输入表,这些统计然后由使用部件308在连接路径计算中的基于在线线性程序的优化算法用于计算最可能的连接关系(例如,具有最大统计共现得分)。在一些示例中,除了最可能的连接关系之外,其他连接关系还被呈现给用户126(例如,以其相应的统计共现得分的次序),用户126可以从其他连接关系选择适当/正确的连接关系的。在一些示例中,如果没有呈现的连接关系是正确的,则用户126可以输入正确的连接关系。响应于可以使用针对相同值对的统计共现得分的后续连接操作,经改正的共现统计可以使用部件308由连接路径计算提供到共现统计计算和/或存储部件304以用于存储和/或检索。图3图示了离线部件和在线部件中间的示例性划分。在一些示例中,离线部件独立于在线部件(例如,不响应于来自在线部件的任何事件)而(例如,连续地、不断地、周期性地、间歇地等)执行。在线部件例如响应于连接表的请求而执行。在该示例中,统计索引和服务部件306具有离线部件(例如,统计索引)和在线部件(例如,统计服务)二者。此外,虽然图3将一些部件图示为离线部件并且将一些其他部件图示为在线部件,但是本公开的方面可以具有在或者在线模式中或者在离线模式中操作的部件中的任一个部件。例如,数据爬取部件302可以响应于用户的用于连接表的请求而在离线模式中操作,并且然后共现统计计算和/或存储部件304可以在在线模式中计算统计共现得分,其可以在在线模式中由统计索引和服务部件306提供。类似地,使用部件308的连接路径计算可以通过计算由数据爬取部件302爬取的值对的连接关系而在离线模式中操作(例如,在离线模式中)。因此,无论何时连接两个表的请求被接收,连接关系是容易地可用的。连接的输入表还可以在离线模式中由部件310接收(例如,所有请求可以被接收,以用于当负载可能较少时在夜晚处理,或者连接的请求可以基于来自用户的较早查询和基于较早查询的可能下一查询而被预期)。然后参考图4,示例性流程图图示了计算设备102用于预测数据集之间的语义关系的操作。过程在402处开始,用于预测数据集之间的语义关系。在404处,标识来自至少两个数据集的值对。值对包括来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值。所标识的值对具有来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值的不同表示。例如,对(“gb”,“英国”)表示来自表1(a)和表1(b)的值对。在406处,基于被存储在408处的历史共现数据,确定所标识的值对的统计共现得分。针对所标识的值对的统计共现得分基于行水平共现得分和列水平统计共现得分中的一个或多个。通过基于多个关系表计算针对所标识的值对的聚合相关得分并且最大化所标识的值对的聚合相关得分以用于预测语义关系,来确定统计共现得分。聚合相关得分是所标识的值对之间的语义关系的测量,其中语义关系的测量从多个关系表(其可以来源于公共网页、大表语料库和/或企业数据库)被得到。在410处,由与计算设备102相关联的处理器104使用所确定的统计共现得分来预测至少两个数据集之间的语义关系,以实现至少两个数据集之间的语义连接操作。语义连接操作包括在不使用中间映射表的情况下执行至少两个数据集之间的等值连接或非等值连接。在一些示例中,过程在412处结束。在示例中,所预测的语义关系被具体化为桥接表(例如,根据针对值对的所预测的语义关系来创建桥接表)。桥接表被呈现给可以对桥接表中的所预测的语义关系进行改正的计算设备102的用户126。桥接表利用对所预测的连接关系的改正被更新并且更新的桥接表被存储为历史共现数据的一部分。然后参考图5,示例性流程图图示了计算设备102预测用于执行表之间的语义连接的连接关系的操作。为了简单起见,图5的过程描述了两个表的连接;然而,相同过程适用于连接超过两个表(例如,迭代地执行)。过程在502处开始,执行表之间的语义连接。在504处,来自待连接的两个表的两个列被选择用于连接。两个列可以由计算设备102的用户126选择,或者与计算设备102相关联的处理器104可以被配置为选择待连接的两个表中的哪两个列(例如,基于对待连接的两个表的列的分析,诸如两个表的列中的值的字符串的长度、数值等)。在506处,基于被存储在508处的关系表,确定两个表中的值对的统计共现得分。关系表可以对应于以下各项中的一项或多项:大表语料库、企业数据库以及历史共现数据。在510处,基于统计共现得分,预测值对之间的连接关系。在一些示例中,过程在512处结束。然后图6,示例性流程图图示了计算设备102使用输出桥接表语义地连接表的操作。为了简单起见,图6的过程描述了两个表的连接;然而,相同过程适用于连接超过两个表(例如,迭代地执行)。过程在602处开始。在604处,来自待连接的两个表的两个列被选择用于连接。在606处,基于被存储在608处的历史共现数据,确定两个列中的值对的统计共现得分。在610处,基于在606处确定的统计共现得分,推断两列中的值对之间的连接关系。在612处,基于推断的连接关系,输出桥接表。在614处,使用在612处输出的桥接表来语义地连接两个表。过程在616处结束。然后图7,示例性流程图图示了计算设备102使用输出桥接表语义地连接表的操作。为了简单起见,图7的过程描述两个表的连接;然而,相同过程适用于连接超过两个表(例如,迭代地执行)。过程在702处开始。在704处,来自待连接的两个表的两个列被选择用于连接。在706处,基于被存储在708处的历史共现数据,确定两个列中的值对的统计共现得分。在710处,基于在706处确定的统计共现得分,推断两列中的值对之间的连接关系。在712处,确定推断的连接关系是否是正确的,如果是的话,那么在716处,基于推断的连接关系来输出桥接表。在712处,如果推断的连接关系被确定为不是正确的,那么在714处连接关系由计算设备102的用户126改正并且控制被传送到712。在716处,基于经改正的推断的连接关系,输出桥接表。在718处,使用在716处输出的桥接表语义地连接两个表。过程在720处结束。然后图8,示例性流程图图示了计算设备102使用输出桥接表语义地连接表的操作。为了简单起见,图8的过程描述了两个表的连接;然而,相同过程适用于连接超过两个表(例如,迭代地执行)。过程在802处开始。在804处,来自待连接的两个表的两个列被选择用于连接。在806处,基于被存储在808处的历史共现数据,确定两个列中的值对的统计共现得分。在810处,基于在806处确定的统计共现得分,推断两列中的值对之间的连接关系。在812处,基于推断的连接关系来输出桥接表。在一些示例中,连同桥接表一起,用户126可以被呈现有最好地覆盖桥接表的语料库表的集合。用户126可以检查语料库表的集合以验证大表语料库中的基表的语义和可信赖性是足够的。在814处,如果确定桥接表中的推断的连接关系是不正确的,那么在816处桥接表中的连接关系由计算设备102的用户126改正并且控制被传送到814。如果在814处确定桥接表中的连接关系是正确的,那么在818处使用桥接表语义地连接两个表。过程在820处结束。在一些示例中,桥接表从语义地一致的多个桥接表被输出(例如,其可以由用户126或由一些其他用户较早地创建)。在一些示例中,推断的连接关系针对语义连接被排名(这将帮助解决冲突的连接关系)。例如,基于语义关系,(“英国”,“gb”)比(“英国”,“uk”)排名更高,并且这两个连接关系可以被提供到用户126以用于冲突解决。本公开的方面实现从桥接表移除重复。例如,如果在两个行中存在“美国”和“美利坚合众国”的两个实例,那么桥接表用于找到针对两者的国家代码“us”,并且从而将这些两个行确定为表示应当被移除的复制值。在一些示例中,桥接表可以被扩展为多列按键。例如,机场代码可以与导致具有多个列的桥接表的城市、州和国家的对应对连接。这样的桥接表的示例性方案是{机场代码||城市,州,国家}。在另一示例中,如果具有列{票,mtk价值}的第一表将与具有列{公司,市场价值}的第二表连接,结果的桥接表是{票,mtk价值||公司,市场价值}。桥接表中的附加的市场价值列的使用将附加信息添加在模糊的情况下。因此,当生成用于多列键的统计时,数值属性可以被阻止以桶形以允许在数值幅度方面近似匹配的概念。例如,[msfn|大街金融|10k]和[msft|微软|100b]是待计数的统计(因此,存在一些上下文连同统计)。在一些示例中,该上下文可以被检查以确定统计共现得分。在一些示例中,如果第一表中的单元值不具有第二表中的匹配值,那么结果的桥接表可以仍然包括来自第二表的预测值。例如,如果第一表具有包括“sea”的机场代码作为单元值并且第二表具有包括“seatac(西塔科)”的机场名称(其不具有统计共现),那么结果的桥接表可以仍然包括用于{sea||seatac}的行。这可以通过穿过候选语料库表中的第二表中的所有候选值(例如,生成当前桥接表使用的顶部推导和基表中的那些候选值)并且使用产生最高总体桥接表相干性得分的值来完成。附加示例在一些示例中,本公开的各方面利用大表语料库(例如,利用超过1亿个表)来确定行水平与列水平二者处的单元值之间的统计相关性。正确连接映射被预测为最大化聚合逐对相关性的一个正确连接映射。在示例场景中,具有不同的公司的假设股票市场资本化数据的表2(a)将与具有按照不同公司的假设政治贡献的表2(b)。股票代码总市值几率%msft380.15b5450%orcl170.54b118%intc157.73b3304%ge255.88b469%ups94.27b49%wmt341.25b1960%lmt59.25b610%bac178.36b194%ibm162.36b412%表2(a):按照股票代码的假定市场资本化表2(b):按照公司的假定政治贡献注意,表2(a)的主题列是股票代码,而表2(b)的主题列是公司名称,这使两个表难以使用传统系统进行连接。在另一示例场景中,表3(a)列出按城市的假设犯罪率和假设失业人数,并且表3(b)列出按州的假设犯罪率和假设失业人数。城市犯罪率(每100,000人)失业率%纽约26759.6洛杉矶385113.8芝加哥592111.7休斯顿70608.5费城556910.8菲尼克斯709411.2拉斯维加斯558214.6圣迭戈415210.6圣安东尼奥70827.3表3(a):按照城市的假设犯罪率和失业人数。表3(b):按照州的假设犯罪率和失业人数。如果用户126尝试将具有按照城市的犯罪率的表3(a)与表3(b)中的州级统计连接,使得人们可以将城市的犯罪率与对应的州的犯罪率相比较。如果表3(a)具有每个城市的州信息的附加列(使用表3(b)中的州缩写),那么可以甚至使用传统系统执行等值连接。然而,在没有这样的列的情况下,两个表3(a)和3(b)不能使用传统系统容易地连接。可以注意关系城市→州是更多语义而不是语法的,并且在此所描述的示例也适于这样的关系(在其中传统方法无效)。在示例性表1(a)和1(b)以及在2(a)和2(b)中,两个连接列(例如,具有国家的国家代码和具有组织名称的股票代码)概念地指代实体的相同集合,并且连接值的所有对是几乎同义的。该类别中的其他示例包括将州名称与州缩写、机场代码与城市、药物品牌名称与一般名称以及化学名称与公式等进行连接。该类别中的连接最可能是一对一连接。在另一类别中,例如在表3(a)和3(b)中,待连接的表是相关的,但是非同义的实体。示例性表3(a)和3(b)中的连接值对表示层次关系。该类别中的其他示例包括将药物名称与制药公司、汽车制造与型号、国会议员与其代表的州、以及大学与其校园位置等进行连接。该类别中的连接常常是多对一连接。本公开的方面提供将来自连接列的值的两个集合当作输入并且产生预测的连接关系的算法。在一些语义关系中实际上连接的任何两个值(例如表2(a)和2(b)中分别的“msft”和“微软公司”)具有在语料库的一些表中的相同行中的显著的统计共现(例如,常常超过纯符合将他们放在一起)。这被称为行水平统计共现得分。而且,对于在相同关系中连接的两个值对(例如,(“msft”,“微软公司”)和(“orcl”,“甲骨文公司”)而言,不仅是在相同行中出现“msft”和“微软公司”,而且在相同行中出现的“orcl”,“甲骨文公司”,而且对(“msft”,“微软公司”)应当与(“orcl”,“甲骨文公司”)一起在垂直地语料库中的系统表的相同列中共同发生。该类型的相关性被称为列水平统计共现得分。可以以下面表4中所示的矩形形式图示了“对的对(pairs-of-pairs)”的这些共现。表4:大表语料库的表中共同出现的连接值对的对正确连接关系是最大化聚合逐对相关性的一个正确连接关系(例如,最大化从连接值的所有对之间的统计共现得分得到的聚合相关得分),如在此所描述的。本公开的方面提供使用线性程序放松和舍入技术来促进在自组网数据分析中(诸如在电子表格环境中)特别有用的语义非等值连接的2近似算法。令r1和s1是待连接的两个表。令r∈r和s∈s是分别来自两个表的两个连接列。虽然示例被描绘为连接来自表r和s的单个列r和s,但是本公开的各方面也适用于多列连接。令r={ri}和s={sj}是两个连接列,其中{ri}和{sj}是列中的值的集合。从r到s的可选的多对一连接关系是函数j∶r→s∪{⊥}},其将r中的每个值与s中的至多一个值连接。注意,可选的多对一连接j定义从每个值ri∈r到任意一个值sj∈s的映射,或者在当没有适当的映射存在时的情况下,特殊非映射符号⊥。非映射情况将对其中s可以不完整的实际场景进行建模,或者r可以有时具有混合的额外值而是脏的。可选的多对一关系承担外键的某个相似性。然而,在外键关系中,许多端的每个值必须映射到一并且确切地一端的一个值(参照完整性),然而在本公开中允许非映射。电子表格连接中的典型的使用场景在用户126具有与实体集合(例如,表1(a)、表2(a)和表3(a))的“核心”表时开始。用户然后尝试通过与另一表的多对一或一对一连接(例如,相应地表1(b)、表2(b)和表3(b))添加来自其他表的附加列来“扩展”该核心表。自然地,当扩展具有电子表格的附加列的表时,“核心”表中的行的数目将不改变,因此确保连接必须是多对一或一对一。另一方面,多对多连接改变“核心”表中的行的数目。虽然示例图示了一对一和多对一连接,但是多对多连接也在本公开的范围内。给定两个列r={ri}和s={sj},在r与s之间存在指数数目的可选的多对一连接j。本公开的示例测量连接j中的优势、得分或其他评价以便选择最适当的一个。如果(1)在行水平处,由连接对齐的两个值应当是语义相关的(例如,“美国”和“us”是非常相关的,“德国”和“us”是不相关的);和(2)在列水平处,每对连接值还应当是语义兼容的,则从r到s(例如,国家到国家代码)的连接j是好的。例如,值对(“英国”,“gb”)是与(“德国”,“de”)“兼容的”,因为二者在国际标准化组织(iso)标准中并且其在许多表中共同出现。另一方面,(“英国”,“gb”)不与(“德国”,“ge”)语义兼容,因为(“德国”,“ge”)在另一联邦信息处理标准(fips)代码标准中,其中“英国”实际上被缩写为“uk”而不是“gb”。因此,当值正确地连接起来时,不仅相同行中的值对应当是相关的,而且跨列的连接值对的对也应当是语义兼容的。语义相关性的强度帮助挑选具有最高相关性得分的连接。本公开的方面使用数据驱动的方法来量化语义相关性(例如,依赖于与输入列的匹配特性的大表语料库)。给定表语料库,如果两个值语义上相关并且因此用于连接的候选(例如,“美国”和“us”),人们将自然地将他们一起放在相同行中而不是两个随机值。而且,如果两个值对在相同上下文/域(例如,(“英国”、“gb”)和(“德国”、“de”))语义相关的,但是其可能在一些表的相同列中共同发生。因此,一些示例将统一共现用作用于语义相关性的代理(例如,在行水平和列水平二者处定义的逐点互信息(pmi)被使用在一些示例中)。pmi使用归一化pmi(npmi)归一化到[-1,1]。例如,如果r1=英国,s1=gb,列n的数目=100m,|t(r1)|=1000,|t(s1)|=3000,并且|t(r1,s1)|=500(例如,单独地两个字符串相应地在1000和3000个表中出现;其总共在相同行中共同出现500次),然后pmi(r1,s1)=4.22>0并且npmi(r1,s1)=0.79,则给定值对相关的强指示。负pmi得分可以删去(指示其共现比随机机会更小频率),并且在一些示例中仅可以保持正pmi得分。这等于设置0的pmi阈值。还可以使用相关性得分的备选定义(诸如基于集合的jaccard系数),只要共现的强度被采集(例如,如果s是高度流行但是r不是高度流行的,即使r总是与s共同出现,则基于集合的jaccard也往往产生低得分)。在量化行和列水平处的语义相关性,正确连接被预测为最大化聚合相关得分的一个正确连接。首先,最大化聚合行式得分。如果连接的方向是j∶r→s(在测试这两个连接方向并且挑选具有更好的得分的连接方向之后),那么针对每个值ri,连接j确定待与ri连接的值j(ri)∈s。针对该对的行水平相关性得分可以写作w(ri,j(ri)),其中w是用于pmi得分的简化符号并且w(.,⊥)被定义为0。然后,在下面示例性式(1)中示出聚合行水平相关性得分:类似地,行水平相关性得分被计算如下面示例性式(2)中所示:可以通过挑选具有正的最好得分w(ri,sj)的sj∈s单独地优化对于每个ri的连接决策,或者如果没有存在则挑选⊥。虽然高精度对于连接而言是重要的,但是行水平得分可能有时生成对于用户而言与改正假否定相比较斑点和改正更难困难的假肯定。假肯定的一个原因在于,在不考虑跨越所有匹配对的语义兼容性的情况下,行水平得分仅单独地考虑每个对(ri,j(ri)。作为示例,考虑r={德国,英国}和s={de,gb,ge}和其他iso国家代码。假设我们具有以下行水平得分:w(德国,de)=0.79,w(德国,ge)=0.8,w(u英国,gb)=0.85,而所有其他行水平得分是低的。注意,(德国,de)和(德国,ge)二者具有高行式得分,因为前者在iso标准中,而后者在还流行的fips标准中。原因ge还是在iso国家代码集s中,这是因为其表示ios中的国家格鲁吉亚。在行水平统计共现得分计算中,最佳方案是英国→gb(在iso中),并且德国→ge(在fips中)。注意,德国→ge(在fips中)通过德国→de(在iso中)挑选,这是因为其具有稍微更高的行式得分。然而,该结果是明显不一致的,因为其未考虑还被连接在相同表中的其他值。具体而言,由于英国与其iso代码gb连接(其fips代码uk不由iso中的其他国家使用,因此备选uk不在s中)。fips标准中的连接选择德国→ge然后与英国→gb语义上不兼容。在列水平统计共现得分计算中,如果列水平得分是:w(德国,de,英国,gb)=0.6,w(德国,ge,英国,gb)=0.05。注意,得分w(德国,de,英国,gb)是高得多的,这是因为(德国,de)和(英国,gb)在相同iso标准中,因此在表中很经常共同发生。对于列水平的最佳方案因此是德国→de(在iso中)和英国→gb(在iso中)。注意,通过列水平共现得分的使用采集匹配值对之间的语义兼容性的观念。每对的连接决策在列水平统计共现得分中历史地做出,而不是单独地(例如,在行水平处)作为行水平统计共现得分中(例如,在表水平处)。在其中用户查询是类似“a和b的列表”的模式的一些示例中,这样的“列表”查询通常反映从至少两个相关数据集获取数据的用户的意图,其可以通常由连接关系链接在一起。下面列出了从至少两个相关数据集获取数据的一些示例性查询:表5:示例查询。一些示例使用查准率/查全率度量来确定所预测的连接的质量。作为示例,查准率被定义为下面式(3)中所示:并且查全率被定义为下面式(4)中所示:在一些示例中,f测量被用作聚合质量测量,其是查准率和查全率的调和平均,被定义为下面等式(5)中所示:虽然默认pmi阈值可以是0,但是除当其中查准率和查全率二者减小的阈值是高(例如,类似0.8)时之外,列水平相关性跨越不同的阈值是稳定的。这指示大多数有用的值对具有非常高的pmi得分(例如,其甚至利用高阈值得分而未被删去)。具有非常高pmi得分的有用对的事实是来自潜在的大表语料库的信号非常强的指示,并且本公开的各方面针对噪声和干扰是鲁棒的。在一些示例中,用户126输入来自待连接的表的两个或两个以上列。在一些其他示例中,可以推断具有语义值的列。可以滤出从其不容易确定共现得分的某些列(例如,基于共现得分可能未正确地确定或其可以不相关的值的字符串的长度、数值等)。例如,对于自动连接表1(a)和1(b)而言,“国家代码”被推断为来自表1(a)的相关列(或实体)并且“国家名称”被推断为来自表1(b)的相关列(或实体),并且其他列被滤出以用于确定共现得分,这是因为其他列包括数值。虽然本公开的方面描述基于历史共现数据来确定统计共现得分,但是在一些示例中,本公开的各方面实时地索引数据(例如,考虑当前时间的值对的共现数据)。在一些示例中,基于大表语料库的未来,可以确定统计共现得分。例如,可以预测大表语料库的未来,并且可以基于所预测的大表语料库来确定统计共现得分。备选地或者除了在此所描述的其他示例之外,示例包括以下各项的任何组合:-处理器被编程为通过标识来自表中的第一表的值和来自表中的第二表的值的多个组合来标识值对。-处理器被编程为通过在所有值对之间生成最大聚合相关得分来推断连接关系,其中如果最大聚合相关得分高于阈值,则连接关系自动地被推断。-针对所标识的值对的统计共现得分基于行水平共现得分和列水平统计共现得分中的一个或多个。-处理器还被编程为:基于推断的连接关系,输出桥接表;并且使用桥接表执行表中的至少两个的语义连接。-针对所标识的值对的统计共现得分通过以下各项被确定:爬取多个关系表;基于爬取的多个关系表,测量针对所标识的值对的聚合相关得分;使用所测量的聚合相关得分生成历史共现数据的一部分;并且基于历史共现数据的所生成的一部分,计算针对所标识的值对的统计共现得分。-聚合相关得分是所标识的值对之间的语义关系的测量,语义关系的测量从多个关系表被得到。-处理器还被编程为:在离线模式中爬取多个关系表以生成多个表中的值对的统计共现得分;并且将所生成的统计共现得分存储在存储器区域中。-所标识的值对具有来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值的不同表示。-将所预测的语义关系具体化为桥接表;由计算设备的用户实现对桥接表中的所预测的语义关系的改正;并且利用对所预测的连接关系的改正来更新桥接表。-将更新后的桥接表存储为历史共现数据的一部分。-统计共现得分通过以下各项被确定:基于多个关系表计算针对所标识的值对的聚合相关得分,并且最大化所标识的值对的聚合相关得分以用于预测语义关系。-聚合相关得分是所标识的值对之间的语义关系的测量,语义关系的测量从多个关系表被得到。-多个关系表来源于公共网页或企业数据库中的至少一个。-语义连接操作包括在不使用中间映射表的情况下执行至少两个数据集之间的等值连接。-标识部件,其在由至少一个处理器执行时使得至少一个处理器标识来自至少两个数据集的值对,值对包括来自数据集中的第一数据集的一个值和来自数据集中的第二数据集的一个值。-统计服务部件,其在由至少一个处理器执行时使得至少一个处理器基于大表语料库中的相关性的其强度来计算针对所标识的值对中的一个或多个值对的统计共现得分。-连接路径计算部件,其在由至少一个处理器执行时使得至少一个处理器使用统计共现得分来计算所标识的值对中的一个或多个值对之间的连接关系。-用户接口部件,其在由至少一个处理器执行时使得至少一个处理器将计算出的连接关系呈现给用户以用于执行至少两个数据集的语义连接。-爬取部件,其在由至少一个处理器执行时使得至少一个处理器爬取大表语料库,以用于确定所标识的值对中的一个或多个值对的相关性的强度。可以通过图1中的其他元素或图1中未示出的实体(例如,处理器、网络服务、服务器、应用程序、计算设备等)执行图3-8中的各种元素的功能的至少一部分。在一些示例中,图3-8中所图示的操作可以被实现为被编码在计算机可读介质上、被编程或被设计为执行操作的硬件中或二者的软件指令。例如,本公开的方面可以被实现为片上系统或包括多个相互连接的导电元件的其他电路。虽然已经根据具有其相关联的操作的各种示例描述了本公开的多个方面,但是本领域的技术人员将理解到,来自任何数目的不同的示例的操作组合也在本公开的方面的范围内。在一些示例中,如在此所使用的术语“wi-fi”指代使用用于数据传输的高频无线电信号的无线局域网。在一些示例中,如在此所使用的术语“蓝牙”指代用于使用短波长无线电传输通过短距离交换数据的无线技术标准。在一些示例中,如在此所使用的术语“蜂窝”指代使用短距离无线电站的无线通信系统,其当连接在一起时实现在宽地理区域上的数据的传输。在一些示例中,如在此所使用的术语“nfc”指代用于短距离上的数据的交换的短距离高频无线通信技术。虽然没有个人可标识的信息由本公开的方面跟踪,但是已经参考从用户监测和/或采集的数据描述了示例。在一些示例中,通知可以被提供到数据的集合的用户(例如,经由对话框或偏好设置)并且用户被给予用于给予或拒绝用于监测和/或采集的同意的机会。同意可以采取加入同意或退出同意的形式。示例性操作环境示例计算机可读介质包括闪速存储器驱动器、数字通用光盘(dvd)、压缩光盘(cd)、软盘和磁带盒。以示例而非限制的方式,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于信息(诸如计算机可读指令、数据结构、程序模块或其他数据)的存储的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。计算机存储介质是有形的并且对于通信介质相互专有的。计算机存储介质被实现在硬件中并且不包括载波和传播信号。出于本公开的目的,计算机存储介质不是信号自身。示例计算机存储介质包括硬盘、闪盘驱动器和其他固态存储器。相反,通信介质通常实现计算机可读指令、数据结构、程序模块或经调制的数据信号(诸如载波或其他传输机制)中的其他数据并且包括任何信息递送介质。尽管结合示例计算系统环境被描述,但是本公开的示例能够利用许多其他通用或专用计算系统环境、配置或设备被实现。可以适于供本公开的方面使用的众所周知的计算系统、环境和/或配置的示例包括但不限于:移动计算设备、个人计算机、服务器计算机、手持式或膝上型设备、微处理器系统、游戏控制台、基于微处理器的系统、机顶盒、可编程消费者电子装置、移动电话、以可穿戴或配件形状因子的移动计算和/或通信设备(例如,手表、眼镜、耳机或耳麦)、网络pc、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境,等等。这样的系统或设备可以以任何方式从用户接受输入,包括经由手势输入、接近度输入(诸如通过悬停)和/或经由语音输入从输入设备(诸如键盘和/或指点设备)。本公开的示例可以被描述在由以软件、固件、硬件或其组合的一个或多个计算机或其他设备所执行的计算机可执行指令(诸如程序模块)的一般上下文中。计算机可执行指令可以被组织为一个或多个计算机可执行组件或模块。通常,程序模块包括但不限于执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、以及数据结构等。可以利用任何数目和组织的这种组件或模块实现本公开的方面。例如,本公开的各方面不限于附图中所图示和在此所描述的特定计算机可执行指令或特定组件或模块。本公开的其他示例可以包括不同的计算机可执行指令或具有比在此所图示和所描述的更多或更少功能的组件。当被配置为执行在此所描述的指令时,本公开的方面将通用计算机转换为专用计算设备102。在此所图示和所描述的示例以及在此未特别描述但是在本公开的各方面的范围内的示例构成用于使用不同表示的至少两个表中的数据上的语义连接的示例性手段。数据对应于使用不同表示的值对(例如,值对可以针对不同表示中的相同概念,诸如(“gb”,“英国”)指代国家的相同概念但是以不同表示,或者值对可以用于不同表示中的相关概念,(诸如“洛杉矶”、“加利福尼亚”)涉及以不同表示的城市和州的相关概念)。例如,图1中所图示的元素(诸如当被编码为执行图4-8中所图示的操作时)构成用于标识来自至少两个数据集的值对的示例性手段,用于基于历史共现数据确定针对所标识的值对的统计共现得分的示例性手段,以及用于使用所确定的统计共现得分实现至少两个数据集之间的语义连接操作来预测至少两个数据集之间的语义关系的示例性手段。备选地或者附加地,可以至少部分由一个或多个硬件逻辑组件执行本文所描述的功能。例如,并且非限制性地,可以使用的说明性类型的硬件逻辑组件包括:现场可编程门阵列(fpga)、专用集成电路(asic)、专用标准产品(assp)、片上系统(soc)实现、复杂可编程逻辑器件(cpld)等。除非另外指出,否则在此所图示和所描述的本公开的示例中的操作的运行或执行的顺序不是必要的。也即,除非另外指出,否则可以以任何顺序执行操作,并且本公开的示例可以包括附加操作或者比在此所公开的那些操作更少的操作。例如,应预期到,在另一操作之前、同时或之后运行或执行特定操作在本公开的方面的范围内。当引入本公开或其示例的方面的元素时,量词“一”、“一种”、“该”和“所述”旨在意指存在一个或多个元素。术语“包括”、“包括”和“具有”旨在是包括性的并且意指可以存在除所列出的元素外的附加元素。术语“示例性的”在本文中被用于意指“……的示例”。短语“以下各项中的一项或多项:a、b和c”意指“a中的至少一个和/或b中的至少一个和/或c中的至少一个”。已经详细描述了本公开的方面,将明显的是,在不脱离如所附的权利要求中限定的本公开的方面的范围的情况下,修改和变型是可能的。由于在不脱离本公开的方面的范围的情况下,可以在以上构造、产品或方法中做出各种改变,因而应预期到,以上描述中所包含和附图中所示的所有问题应当被解译为说明性的而非以限制性意义的。虽然已经以特定于结构特征和/或动作的语言描述了主题,但是将理解到,所附的权利要求中限定的主题不必限于上文所描述的特定特征或动作。相反,上文所描述的特定特征和行为被公开为实现权利要求的示例形式,并且其他等价特征和动作旨在处于权利要求的范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1