CN109844729A - 通过示例利用预测性粒度修改来合并 - Google Patents
通过示例利用预测性粒度修改来合并 Download PDFInfo
- Publication number
- CN109844729A CN109844729A CN201780063852.7A CN201780063852A CN109844729A CN 109844729 A CN109844729 A CN 109844729A CN 201780063852 A CN201780063852 A CN 201780063852A CN 109844729 A CN109844729 A CN 109844729A
- Authority
- CN
- China
- Prior art keywords
- column
- data
- script
- source
- target
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24542—Plan optimisation
- G06F16/24544—Join order optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/215—Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24558—Binary matching operations
- G06F16/2456—Join operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24564—Applying rules; Deductive queries
- G06F16/24565—Triggers; Constraints
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/10—Text processing
- G06F40/166—Editing, e.g. inserting or deleting
- G06F40/177—Editing, e.g. inserting or deleting of tables; using ruled lines
- G06F40/18—Editing, e.g. inserting or deleting of tables; using ruled lines of spreadsheets
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Artificial Intelligence (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
提供了一种计算设备,其包括被配置成选择至少一对列的处理器。每对可以包括第一表格的源列和第二表格的目标列。对于每对,处理器可以检测到多个列包含具有不同粒度的数据。处理器可以将数据修改为具有相同的粒度,并且可以生成包括来自源列的元素和来自目标列的元素的示例。对于每个示例,处理器可以以编程方式生成脚本,当在源列上执行该脚本时,产生与目标列一致的值。对于具有满足匹配标准的输出的脚本,处理器可以传达输出以用于显示,并且可以响应于接受该脚本的信号,至少部分地通过在源列上执行该脚本来合并多个表格。
Description
背景技术
当使用涉及操纵数据表格的计算机程序时,合并两个表格是对于用户执行的常见任务。如果两个表格中的数据具有不同的数据粒度,则对于用户编写脚本以将其合并变得耗时且麻烦。下面进一步讨论这些挑战、处理它们的方式以及其伴随的潜在有益技术效果。
发明内容
根据本公开的一个方面,提供了一种用于计算第一表格和第二表格之间的合并潜力的计算设备,其包括被配置成选择至少一对列的处理器。每对可以包括第一表格的源列和第二表格的目标列。对于每对,处理器可以被配置成检测该对中的多个列包含具有不同数据粒度的相应数据。处理器还可以被配置成修改多个列中的一个列中的数据,使得经修改的数据具有与另一个列中的数据相同的数据粒度,以便于生成源列和目标列之间的对应匹配。处理器可以生成包括来自源列的元素和来自目标列的对应的潜在匹配元素的示例。另外,对于每个示例,处理器可以基于示例以编程方式生成脚本,当在示例的所选择的列的对的源列上执行该脚本时,产生与示例的目标列一致的值。对于每个脚本,处理器可以将该脚本应用于源列中的其他元素,并确定由该脚本生成的输出在目标列中。对于所生成的输出在与目标列的元素比较时满足所选择的匹配标准的脚本,处理器可以被配置成传达由该脚本生成的输出,以用于在显示设备上显示。处理器还可以被配置成响应于接受所传达的脚本的输入信号,至少部分地通过在源列上执行所传达的脚本来对两个表格执行合并操作。
提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步被描述。本发明内容不旨在标识所要求保护的主题内容的关键特征或必要特征,也不旨在被用来限制所要求保护的主题内容的范围。此外,所要求保护的主题内容不限于解决在本公开的任何部分中提到的任何或所有缺点的实施方式。
附图说明
图1示出了根据本公开的一个实施例的配备有预测性数据粒度模块的计算设备,该计算设备以编程方式计算至少两个表格之间的合并潜力。
图2示出了图1的预测性数据粒度模块,以及图形用户界面,利用该图形用户界面用户将数据输入预测性数据粒度模块并查看由预测性数据粒度模块输出的数据。
图3示出了具有输入和输出的示例编程(programming-by-example)算法。
图4是根据本公开的一个实施例的用于基于所预测的数据粒度以编程方式计算两个表格之间的合并潜力的方法的流程图。
图5示出了根据本公开的一个实施例的被配置成执行应用程序以计算两个表格之间的合并潜力的示例计算设备。
图6示出了根据本公开的实施例的示例计算***。
具体实施方式
图1图示了计算设备90,包括存储器92、处理器94、显示器96和输入设备98。根据本公开的一个实施例,处理器94被配置成执行计算两个表格44之间的合并潜力的被包含在存储器92中的应用程序86。处理器94可以被配置成响应于检测到触发条件50来计算第一表格40和第二表格42之间的合并潜力。应用程序86例如可以是电子表格应用程序86,并且触发条件50例如可以是用户在电子表格应用程序86中选择“搜索潜在合并”选项,或者可以是程序化触发器50,其使应用程序86自身搜索表格44之间的潜在合并而无需用户输入。
计算设备90在第一表格40和第二表格42上执行自动合并模块52。自动合并模块52包括预测性数据粒度模块54。预测性数据粒度模块54以编程方式生成至少一个候选变换脚本82。处理器94可以被配置成使用示例编程算法80以编程方式生成脚本82。然后,预测性数据粒度模块54评估至少一个候选变换脚本82并产生合并操作的排序的列表84。然后,传达来自合并操作的排序的列表84中的至少一个所建议的合并操作62以用于在显示器96上显示。如果用户接受所建议的合并操作62中的一个,则应用程序86将表格44合并到已合并的表格66,其被传达以用于在显示器96上的图形用户界面68中显示。
图2图示了预测性数据粒度模块54和图形用户界面68。预测性数据粒度模块54可以被配置成检测用于计算第一表格40和第二表格42之间的合并潜力的触发条件50。从这两个表格44,预测性数据粒度模块54选择至少一对列,其中每对包括第一表格40的源列74和第二表格42的目标列76。
预测性数据粒度模块54检测到该对中的多个列包含具有不同数据粒度的数据。数据的粒度是以其划分数据的级别。例如,包括具有粗粒度的时间的列可以包括每小时一个元素,而包括具有更细粒度的时间的列可以包括每分钟一个元素。使用两列的两个表格的具体示例,每个表格分别包含时间的值和所测量的心率的值,具有相对较粗数据粒度的第一表格可以包括每小时一个脉冲读数,并且具有相对较细的数据粒度的第二表格可以包括每分钟一个脉冲读数,一个示例将在下面被阐述。因此,应当理解,包括具有不同粒度的数据的列通常将具有不同数目的行。
相应地,预测性数据粒度模块54被配置成修改在多个列中的一个列中的数据,使得经修改的数据具有与另一个列中的数据相同的数据粒度,以促进在源列74和目标列76之间生成对应的匹配。为了使预测性数据粒度模块54直接比较两个列并确定它们是否具有不同的数据粒度,预测性数据粒度模块54可以将那些列的元素转换为公共数据类型。预测性数据粒度模块54可以至少部分地通过将每列的元素转换为经转换的字符串来执行该数据类型转换。将元素转换为字符串而不是某种其他数据类型提供了一些优势。首先,字符串可以包含任何类型的字符,而其他数据类型(诸如整数)只能够包含某些字符类型。另外,字符串可以被划分成仍然具有字符串数据类型的子字符串。这些子字符串可以彼此直接比较。因此,将源列74中的元素和目标列76中的元素转换为字符串允许比较元素的内容,即使这些元素最初不共享数据类型。
预测性数据粒度模块54可以使用数据粒度变换函数88来修改在多个列中的一个列中的数据,使得其具有与另一个列中的数据相同的数据粒度。数据粒度变换函数88可以将源列74中的数据的数据粒度和目标列76中的数据的数据粒度作为输入,并将这些输入变换为公共数据粒度。
数据粒度变换函数88可以通过增加或减少列中的行的数目,来将源列74中的数据的数据粒度和目标列76中的数据的数据粒度映射到公共数据粒度。当源列74和目标列76具有不同数目的行时,预测性数据粒度模块54可以确定源列74和目标列76具有不同的数据粒度。
当源列74中的值在目标列76中具有多个匹配时,预测性数据粒度模块54可以通过在已合并的表格66中通过使用用以产生合成值的分布函数生成多个行来实施数据粒度变换函数88。分布函数可以将第一表格40的列中的数据和第二表格42的列中的数据作为输入。具有分布函数用作输入的数据的列可以是源列74和目标列76,但是它们更通常是第一表格40和第二表格42的其他列。分布函数可以从由常数、线性、正态分布、泊松分布和随机分布组成的组中来选择。也可以使用其他分布函数。
下面提供了预测性数据粒度模块54部分地通过为源列74中的每个元素生成多个行来合并两个表格44的示例。第一表格40(目标表格)的列是时间和心率,并且第二表格42(源表格)的列是时间和温度。第一表格40的时间列和第二表格42的时间列分别是源列74和目标列76。在第一表格40中,时间列中的数据具有每十五秒一个元素的粒度。在第二表格42中,时间列中的数据具有每小时一个元素的粒度。
时间 | 心率 |
8/11/2015 15:33:00 | 78 |
8/11/2015 15:33:15 | 80 |
8/11/2015 15:33:30 | 79 |
… | … |
8/11/2015 16:33:45 | 84 |
8/11/2015 16:34:00 | 87 |
… | … |
8/11/2015 17:33:15 | 83 |
在该示例中,预测性数据粒度模块54通过将第二表格42中的时间投影到对应的小时以匹配第一表格40中的时间粒度来执行合并。使用分布函数为源列74的每个元素生成多个行。分布函数将第二表格42的温度列中的数据作为输入。在已合并的表格66中,源列74的每个元素在同一行中具有通过将分布函数应用于目标列而产生的对应的元素。在这种情况下,分布函数是常数函数。已合并的表格66如下所示:
为了产生上面所示的已合并的表格66,预测性数据粒度模块54还为温度列的每个元素生成合成值。与为目标列76的元素生成的合成值一样,使用常数分布函数为温度列的元素生成合成值。备选地,预测性数据粒度模块54可以通过为源表格的每个元素选择一行来执行合并,该选择是通过在目标表格76中生成与该元素匹配的所有行的总结来进行的。预测性数据粒度模块54可以通过在源列74中的值在目标列76中具有多个匹配时,通过使用聚合函数在已合并的表格66中生成一行来实施数据粒度变换函数88。当第一表格40具有比第二表格42多的行时,预测性数据粒度模块54可以生成第一表格40的至少一列的总结。第一表格40的至少一列可以是源列74或不同的列。当第二表格42具有比第一表格40多的行时,预测性数据粒度模块54可以生成第二表格42的至少一列的总结。第二表格42的至少一列可以是源列74或不同的列。
可以使用至少一个聚合函数来生成总结。聚合函数可以将第一表格40的列中的数据和第二表格42的列中的数据作为输入。具有聚合函数用作输入的数据的列可以是源列74和目标列76,但是它们更通常是第一表格40和第二表格42的其他列。聚合函数可以从由最小值、最大值、第一个、最后一个、平均值、中值、标准偏差和随机值组成的组中来选择。也可以使用其他聚合函数。在映射到另一个表格中的同一行的多个行的每一个集合上,应用一次聚合函数。
下面提供了预测性数据粒度模块54部分地通过生成列中的数据的总结来合并两个表格44的示例。在该示例中,第一表格40和第二表格42与前面示例中的相同。另外,如在前面的示例中,第一表格40的时间列和第二表格42的时间列分别是源列74和目标列76。
在该示例中,预测性数据粒度模块54总结第一表格40的心率列中的数据。聚合函数将第一表格40的心率列中的数据作为输入。在已合并的表格66中,第一表格40的心率列中的数据被总结为三行,每行对应于第二表格42的行。在这种情况下,聚合函数是最小值函数。已合并的表格66如下所示:
时间 | 最小心率 | 时间 | 温度 |
8/11/2015 15:33:00 | 78 | 8/11/2015 15:00 | 100.2 |
8/11/2015 16:33:45 | 84 | 8/11/2015 16:00 | 99.5 |
8/11/2015 17:33:15 | 83 | 8/11/2015 17:00 | 98 |
在源列74或目标列76中的数据以及可能至少一个其他列已经被修改为具有与另一个列中的数据相同的粒度之后,预测性数据粒度模块54生成示例78,示例78包括来自源列74的至少一个元素和来自目标列76的对应的潜在匹配元素。示例78还可以包括利用数据粒度变换函数88来修改的其他列。示例编程算法80可以使用以这种方式生成的示例78作为输入-输出示例对102。
对于每个示例78,预测性数据粒度模块54基于示例78以编程方式生成脚本82,当在示例78的输入-输出选择对100的源列74上执行脚本82时,产生与输入-输出示例对102的目标列76一致的值。脚本是将由计算设备90执行的程序指令的集合。
本公开的预测性数据粒度模块54可以利用示例编程来以编程方式生成脚本82。示例编程是一种编程技术,通过该编程技术从这种脚本的期望输出的示例生成脚本。例如,在Microsoft Excel 2016的快速填充(flash-fill)特征中使用示例编程技术。在本文中所采用的示例编程技术中,示例可以由用户输入或者可以由预测性数据粒度模块54以编程方式生成。因此,对于每个示例,预测性数据粒度模块54基于示例78以编程方式生成脚本82,当在示例78的所选择的列的对的源列74上执行脚本82时,产生与示例78的目标列76一致的值。预测性数据粒度模块54可以使用示例编程算法80来生成脚本82,当在列的输入-输出选择对100上执行脚本82时,产生示例78。
图3图示了示例编程算法80。首先,预测性数据粒度模块54可以将输入-输出示例对102输入到示例编程算法80中。示例编程算法80可以被配置成接收输入-输出选择对100和输入-输出示例对102。输入-输出选择对100可以包括被投影到第一表格40的源列74的行和被投影到第二表格42的目标列76的对应的匹配行。输入-输出示例对102可以是以编程方式生成的示例78或用户输入示例70。对于通过上面描述的方法生成的每个输入-输出示例对102,预测性数据粒度模块54可以使用示例编程算法80生成脚本82,当在该示例的列的所选择的对的源列上执行脚本82时,产生与示例对102的目标列一致的值。
在已经生成脚本82之后,示例编程算法80可以对源列74中的各种其他输入执行脚本82,并将脚本的输出与目标列76中的元素相比较。示例编程算法80可以确定目标列76的元素的相对覆盖范围、脚本82的输出与目标列76的元素匹配的比例。如果这些输出中的许多输出属于目标列76,则脚本82可以被添加到合并操作的列表84中。合并操作的列表84中的脚本可以通过产生成功合并操作的概率进行排序并且被传达以用于在显示设备96上显示。
代替以编程方式生成的示例78,示例编程算法80可以改为使用用户输入示例70来生成脚本82。输入-输出示例对102可以由用户输入或者可以是以编程方式确定。
对于每个脚本82,预测性数据粒度模块54将该脚本82应用于源列74中的其他元素,并确定由该脚本82生成的输出在目标列76中。然后,根据在被应用于源列74时,脚本的输出与目标列76中的元素紧密匹配的程度对脚本进行排序。预测性数据粒度模块54可以产生经排序的合并操作的列表84,其中基于脚本将产生成功合并操作的概率来对脚本进行排序。
预测性数据粒度模块54可以确定所生成的输出在与目标列76中的数据比较时满足所选择的匹配标准的脚本104。可以至少部分地通过使用诸如字符串距离度量的匹配标准(例如,子字符串长度的比较)来做出该确定。预测性数据粒度模块54可以确定与其他对相比具有最长子字符串匹配的经转换的字符串对,其中每对包括目标列76中的元素和由脚本104输出的元素。
根据另一备选方案,预测性数据粒度模块54可以改为使用点***来确定哪个脚本104产生在与目标列76中的元素比较时满足所选择的匹配标准的输出。例如,如果输出的元素与目标列76中的元素具有相同的长度、相同的第一字符、相同的数据类型或相同位置处的分隔符,则可以将点分配给该输出的元素。具有最多的点的输出可以被选择为所建议的合并操作62。
对于所生成的输出在与目标列76的元素比较时满足所选择的匹配标准(诸如,最长的匹配子字符串长度或点***下的最多的点)的脚本104,预测性数据粒度模块54传达由该脚本104生成的输出以用于在显示设备96上的图形用户界面68中显示。较低排名的脚本的输出也可以被传达以用于在显示设备96上显示为所建议的合并操作62。响应于接受所传达的脚本104的输入信号,预测性数据粒度模块54可以至少部分地通过在源列74上执行所传达的脚本104来对两个表格44执行合并操作。
预测性数据粒度模块54可以为第一表格40中的每列和第二表格42中的每列生成简档。每列的简档可以包括最小字符串长度、最大字符串长度、平均字符串长度、列的元素的数据类型、列的元素内所包含的分隔符、以及列中数据的数据粒度中的一个或多个。预测性数据粒度模块54可以使用第一表格40中的每列的简档和第二表格42中的每列的简档来确定列之间的成功合并操作的概率。
使用列简档来确定列之间成功合并操作的概率可以允许预测性数据粒度模块54更快地计算表格44的合并潜力。通过比较列简档,预测性数据粒度模块54可以排除具有低合并潜力的列的对,而不必确定那些列的元素之间的最长子字符串匹配。由于可以比每对列的元素之间的最长子字符串匹配更快地确定和比较列简档,因此在确定列之间成功合并操作的概率时,使用列简档可以节省计算时间。
下面提供使用列简档来确定两个列之间成功合并操作的概率的示例。第一表格40的列是月份和价格,并且第二表格42的列是日期和销售的单位数目。表格44如下。
月份 | 价格 |
8/2016 | $3.17 |
9/2016 | $3.06 |
日期 | 销售的单位数目 |
8/01 | 2016 |
… | … |
8/20 | 1989 |
… | … |
9/01 | 2108 |
… | … |
9/20 | 2022 |
… | … |
9/30 | 2016 |
第一表格40的月份列中的条目中的每个条目与第二表格42中的日期列的元素并且与第二表格42的销售的单位数目列的两个元素共享最长的子字符串。可以被用来合并两个表格44的脚本82将第一表格40的月份列的每个元素与等于其最后4个数字(表示年份)的第二表格的销售的单位数目列中的元素中的一个元素相匹配。该脚本将产生以下已合并的表格66。
月份 | 价格 | 日期 | 销售的单位数目 |
8/2016 | $3.17 | 8/01 | 2016 |
8/2016 | $3.17 | … | … |
8/2016 | $3.17 | 9/30 | 2016 |
9/2016 | $3.06 | 8/01 | 2016 |
9/2016 | $3.06 | … | … |
9/2016 | $3.06 | 9/30 | 2016 |
上面示出的已合并的表格66不太可能对用户有用。在生成上面所示的已合并的表格66时,在两个不具有相似简档的列上执行合并操作。使用每列的简档来确定两个表格之间成功合并操作的概率可以允许应用程序86传达更可能有用的合并操作的输出。通过为每个表格的每列生成简档并比较列简档,预测性数据粒度模块54可以确定成功合并操作的最高概率是在第一表格40的月份列和第二表格42的日期列之间。在这些列中的每个列中,第一字符是“8”或“9”,并且第二字符是“/”分隔符。此外,它们都表示日期数据类型,尽管具有不同的粒度。
将日期列映射到月份、添加常数年份2016以确保相同的粒度并且执行等同合并(equi-join)操作的脚本82产生以下已合并的表格66。
预测性数据粒度模块54可以以编程方式预先计算一个或多个可能的合并操作。可以在没有来自用户的输入的情况下计算可能的合并操作。如果成功合并操作的概率超过某个预定阈值,则预测性数据粒度模块54可以传达所建议的合并操作62以用于在显示设备96上显示。如果预测性数据粒度模块54执行合并操作,则所执行的合并操作可以是预测性数据粒度模块54以编程方式预先计算的一个或多个可能的合并操作中的一个合并操作。
计算设备90可以包括显示器96,其显示包括可能的合并操作62的图形用户界面68。计算设备90还可以包括用户输入设备98,其被配置成接收指示所选择的合并操作的合并选择输入。预测性数据粒度模块54可以在接收到合并选择输入时执行所选择的合并操作。
图4图示了用于与计算设备90一起使用的方法。在该方法中,计算设备90可以检测用于计算第一表格40和第二表格42之间的合并潜力的触发条件50。检测触发条件50使计算设备90退出应用程序86(诸如电子表格程序)的外循环48并执行预测性数据粒度模块54。触发条件可以如上面所描述的那样。在计算设备90已经执行预测性数据粒度模块54之后,它就选择至少一对列。每个所选择的对包括第一表格40的源列74和第二表格42的目标列76。
对于每个所选择的列的对,预测性数据粒度模块54检测到该对中的多个列包含具有不同数据粒度的相应数据。如果所选择的列不包含具有不同数据粒度的数据,则预测性数据粒度模块54可以选择不同的列的对。如果所选择的列包含具有不同数据粒度的数据,则预测性数据粒度模块54应用数据粒度变换函数88。数据粒度变换函数88修改在多个列中的一个列中的数据,使得经修改的数据具有与另一个列中的数据相同的数据粒度,以便促进在源列74和目标列76之间生成对应的匹配。然后,预测性数据粒度模块54生成示例对78,其输入包括来自源列74的元素并且输出包括来自目标列76的潜在匹配元素。
当预测性数据粒度模块54修改在多个列中的一个列中的数据以使得其具有与另一个列中的数据相同的数据粒度时,可以修改源列74和目标列76中的至少一个,使得在其中的数据具有与另一个列的元素相同的数据类型。预测性数据粒度模块54可以至少部分地通过将每列的元素转换为经转换的字符串来做出该修改。
预测性数据粒度模块54修改在多个列中的一个列中的数据,以使得其具有与另一个列中的数据相同的数据粒度。可以使用数据粒度变换函数88来执行该修改。数据粒度变换函数88可以将源列74中的数据的数据粒度和目标列76中的数据的数据粒度作为输入,并且将这些输入变换为公共数据粒度。具有不同粒度的两列数据可能具有不同数目的行。可以以至少两种方式将具有不同数目的行的两列中的数据修改为具有相同的粒度:通过为列的元素生成合成值,或通过总结列的元素。如果为列的元素生成合成值,则该列中的行的数目增加以匹配已合并的表格66中的行的总数目。可以通过当源列74中的值在目标列76中具有多个匹配时,通过使用分布函数在已合并的表格66中生成多个行来实施数据粒度变换函数88。
当第一表格40比第二表格42具有更多的行时,可以通过为第二表格42的至少一列的每个元素生成合成值来实施数据粒度变换函数88。第二表格42的该至少一列可以是目标列76,但也可以是不同的列。类似地,当第二表格42比第一表格40具有更多的行时,可以通过为第一表格40的至少一列的每个元素生成合成值来实施数据粒度变换函数88。第一表格40的该至少一列可以是源列74,但也可以是不同的列。
备选地,如果生成了列的总结,则该列中的行的数目减少以匹配已合并的表格66中的行的总数目。可以通过当源列74中的值在目标列76中具有多个匹配时,通过使用聚合函数在已合并的表格66中生成一行来实施数据粒度变换函数88。
当第一表格40比第二表格42具有更多的行时,可以通过生成第一表格40的至少一列的总结来实施数据粒度变换函数88。第二表格42的该至少一列可以是目标列76,但也可以是不同的列。当第二表格42比第一表格40具有更多的行时,可以通过生成第二表格42的至少一列的总结来实施数据粒度变换函数88。第一表格40的该至少一列可以是源列74,但也可以是不同的列。
预测性数据粒度模块54生成示例78,示例78包括来自源列74的值的对和来自目标列76的对应的潜在匹配候选。对于每个示例,预测性数据粒度模块54基于示例78以编程方式生成脚本82,当在示例78的所选择的列的对的源列74上执行脚本82时,产生与示例78的目标列76一致的值。根据本公开的一个实施例,可以通过图3中所图示的和上面所描述的方法生成脚本82。
对于由示例编程算法80生成的每个脚本82,示例编程算法80可以在源列74中的各种其他输入上执行脚本82,并将脚本的输出与目标列76中的元素相比较。示例编程算法80可以确定目标列76的元素的相对覆盖范围、与目标列76的元素匹配的脚本82的输出的比例。如果这些输出中的许多输出属于目标列76,则脚本82可以被添加到合并操作的列表84中。合并操作的列表84中的脚本可以通过产生成功合并操作的概率来进行排序并且被传达以用于在显示设备96上显示。
在已经通过将每个脚本82应用于源列74并且确定由脚本82生成的输出在目标列76中而测试了每个脚本82之后,预测性数据粒度模块54就可以确定所生成的输出在与目标列76中的数据相比时满足所选择的匹配标准(诸如,最长匹配子字符串或最多的点)的脚本104。可以至少部分地通过确定与其他的对相比具有最长子字符串匹配的经转换的字符串的对来确定该脚本104,其中每对包括目标列76中的元素和由脚本104输出的元素。对于所生成的输出在与目标列76的元素相比时满足所选择的匹配标准的脚本104,计算设备90传达由该脚本104生成的输出以用于在显示设备96上显示。
响应于接受所传达的脚本104的输入信号,预测性数据粒度模块54至少部分地通过在源列74上执行所传达的脚本104来对两个表格44执行合并操作。
预测性数据粒度模块54可以以编程方式预先计算一个或多个可能的合并操作。可以在没有来自用户的输入的情况下计算可能的合并操作。如上所述,可以为第一表格40中的每列和第二表格42中的每列生成简档,并且该简档可以被用来确定两个表格之间成功合并操作的概率。如果成功合并操作的概率超过某个预定阈值,则预测性数据粒度模块54可以传达合并建议62以用于在显示设备96上显示。如果预测性数据粒度模块54执行合并操作,则所执行的合并操作可以是预测性数据粒度模块54以编程方式预先计算的一个或多个可能的合并操作中的一个合并操作。
图5图示了被配置成执行计算两个表格44之间的合并潜力的应用程序86的示例计算设备90。该计算设备可以包括显示图形用户界面68的显示器96。图形用户界面68可以显示至少第一表格40和第二表格42。图形用户界面68还可以显示用户可以输入供示例编程算法80使用的用户输入示例70的字段。用户可以通过从源列74中选择元素和从目标列76中选择匹配元素来输入用户输入示例70。在使用用户输入示例70的情况下,示例编程算法80可以产生与用户输入示例70一致的至少一个脚本82。
在预测性数据粒度模块54已经生成了用以合并表格44的至少一个脚本82之后,图形用户界面68就可以传达由至少一个脚本82输出的已合并的表格66,以用于在显示设备96上显示为所建议的合并操作62。图形用户界面可以指示用户尚未接受或拒绝的已合并的表格66,例如通过将其以不同的颜色显示。图形用户界面68还可以显示针对用户接受或拒绝合并操作的提示。如果用户接受合并操作,则预测性数据粒度模块54可以执行合并操作。
在一些实施例中,本文所描述的方法和过程可以绑定到一个或多个计算设备的计算***。特别地,这些方法和过程可以被实施成计算机应用程序或服务、应用程序编程接口(API)、库和/或其他计算机程序产品。
图6示意性地示出了计算***900的非限制性实施例,计算***900可以施行上述方法和过程中的一个或多个。计算***900以简化形式被示出。计算***900可以具体化为图1的计算设备90。计算***900可以采用一个或多个个人计算机、服务器计算机、平板计算机、家庭娱乐计算机、网络计算设备、游戏设备、移动计算设备、移动通信设备(例如,智能电话)和/或其他计算设备,以及可穿戴计算设备(诸如,智能手表和头戴式增强现实设备)的形式。
计算***900包括逻辑处理器902、易失性存储器903和非易失性存储设备904。计算***900可以可选地包括显示子***906、输入子***908、通信子***1000和/或未在图6中示出的其他组件。
逻辑处理器902包括被配置成执行指令的一个或多个物理设备。例如,逻辑处理器可以被配置成执行作为一个或多个应用、程序、例程、库、对象、组件、数据结构或其他逻辑构造的一部分的指令。可以实施这种指令以执行任务、实施数据类型、变换一个或多个组件的状态、实现技术效果,或以其他方式达到期望的结果。
逻辑处理器可以包括被配置成执行软件指令的一个或多个物理处理器(硬件)。附加地或备选地,逻辑处理器可以包括被配置成执行硬件实施的逻辑或固件指令的一个或多个硬件逻辑电路或固件设备。逻辑处理器902的处理器可以是单核或多核,并且在其上执行的指令可以被配置用于顺序、并行和/或分布式处理。逻辑处理器的各个组件可选地可以分布在两个或更多个分离的设备中,这些设备可以被远程定位和/或配置成用于协同处理。逻辑处理器的各方面可以由在云计算配置中配置的远程可访问的联网的计算设备虚拟化和执行。将理解,在这种情况下,这些虚拟化方面在各种不同的机器的不同物理逻辑处理器上运行。
非易失性存储设备904包括一个或多个物理设备,其被配置成保持由逻辑处理器可执行的指令以实施本文所描述的方法和过程。当实施这种方法和过程时,可以变换非易失性存储设备904的状态例如以保持不同的数据。
非易失性存储设备904可以包括可移除和/或内置的物理设备。非易失性存储设备904可以包括光学存储器(例如,CD、DVD、HD-DVD、蓝光盘等)、半导体存储器(例如,ROM、EPROM、EEPROM、FLASH存储器等),和/或磁存储器(例如,硬盘驱动器、软盘驱动器、磁带驱动器、MRAM等)或其他大容量存储设备技术。非易失性存储设备904可以包括非易失性、动态、静态、读/写、只读、顺序访问、位置可寻址、文件可寻址和/或内容可寻址设备。应当理解,非易失性存储设备904被配置成即使在切断非易失性存储设备904的功率时也保持指令。
易失性存储器903可以包括物理设备,其包括随机存取存储器。逻辑处理器902通常利用易失性存储器903以在软件指令的处理期间临时存储信息。应当理解,当切断易失性存储器903的功率时,易失性存储器903通常不继续存储指令。
逻辑处理器902、易失性存储器903和非易失性存储设备904的各方面可以一起被集成到一个或多个硬件逻辑组件中。例如,这种硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序专用和应用专用集成电路(PASIC/ASIC)、程序专用和应用专用标准产品(PSSP/ASSP)、片上***(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以被用来描述计算***900的方面,通常由处理器以软件实施计算***900的方面,以使用易失性存储器的各部分来执行特定功能,该功能涉及专门将处理器配置成执行该功能的变换性处理。因此,可以经由逻辑处理器902使用易失性存储器903的各部分执行由非易失性存储设备904保持的指令,来实例化模块、程序或引擎。应当理解,可以从相同的应用、服务、代码块、对象、库、例程、API、功能等来实例化不同的模块、程序和/或引擎。同样,可以由不同的应用、服务、代码块、对象、例程、API、功能等来实例化相同的模块、程序和/或引擎。术语“模块”、“程序”和“引擎”可以涵盖单独的或各组可执行文件、数据文件、库、驱动程序、脚本、数据库记录等。
当被包括时,显示子***906可以被用来呈现由非易失性存储设备904保持的数据的视觉表示。视觉表示可以采取图形用户界面(GUI)的形式。由于本文所描述的方法和过程改变由非易失性存储设备保持的数据,并因此变换非易失性存储设备的状态,所以显示子***906的状态同样可以被变换以在视觉上表示在基础数据中的改变。显示子***906可以包括利用几乎任何类型的技术的一个或多个显示设备。这种显示设备可以在共享封装中与逻辑处理器902、易失性存储器903和/或非易失性存储设备904组合,或者这种显示设备可以是***显示设备。
当被包括时,输入子***908可以包括一个或多个用户输入设备(诸如键盘、鼠标、触摸屏或游戏控制器)或与其对接。在一些实施例中,输入子***可以包括所选择的自然用户输入(NUI)组件或与其对接。这种组件可以是集成的或***的,并且输入动作的转换和/或处理可以在板上或板外被处理。示例NUI组件可以包括用于语音和/或声音识别的麦克风;用于机器视觉和/或姿势识别的红外、彩色、立体和/或深度相机;用于运动检测和/或意图识别的头部***、眼睛***、加速度计和/或陀螺仪;以及用于评估大脑活动的电场感测组件;和/或任何其他合适的传感器。
当被包括时,通信子***1000可以被配置成将本文所描述的各种计算设备彼此通信地耦合,并与其他设备通信地耦合。通信子***1000可以包括与一个或多个不同通信协议兼容的有线和/或无线通信设备。作为非限制性示例,通信子***可以被配置成用于经由无线电话网络,或有线或无线局域网或广域网(诸如,通过Wi-Fi的HDMI连接)的通信。在一些实施例中,通信子***可以允许计算***900经由诸如因特网的网络向其他设备发送消息和/或从其他设备接收消息。
根据本公开的一个方面,提供了一种用于计算第一表格和第二表格之间的合并潜力的计算设备,其包括被配置成选择至少一对列的处理器。每对包括第一表格的源列和第二表格的目标列。对于每对,处理器检测到该对中的多个列包含具有不同数据粒度的相应数据,修改在多个列中的一个列中的数据使得经修改的数据具有与另一个列中的数据相同的数据粒度,以促进生成源列和目标列之间的对应的匹配,以及生成包括来自源列中的元素和来自目标列中的对应的潜在匹配元素的示例。对于每个示例,处理器基于示例以编程方式生成脚本,当在示例的所选择的列的对的源列上执行该脚本时,产生与示例的目标列一致的值。对于每个脚本,处理器将该脚本应用于源列中的其他元素,并确定由该脚本生成的输出在目标列中。对于所生成的输出在与目标列的元素相比较时满足所选择的匹配条件的脚本,处理器传达由该脚本生成的输出以用于在显示设备上显示。响应于接受所传达的脚本的输入信号,处理器至少部分地通过在源列上执行所传达的脚本来对两个表格执行合并操作。
在该方面,处理器可以被配置成响应于检测到触发条件来计算第一表格和第二表格之间的合并潜力。
在该方面,处理器可以被配置成至少部分地通过将每列的元素转换为经转换的字符串来修改源列和目标列中的至少一个,使得在其中的数据具有与另一个列的元素相同的数据类型。
在该方面,处理器可以被配置成至少部分地通过确定所生成的输出中的大多数元素属于目标列,并且通过确定目标列中的元素的相对覆盖范围,来确定所生成的输出在与目标列中的数据比较时满足所选择的匹配标准的脚本。
在该方面,处理器可以被配置成使用数据粒度变换函数来修改多个列中的一个列中的数据,使得其具有与另一个列中的数据相同的数据粒度,其中数据粒度变换函数可以将源列中数据的数据粒度和目标列中数据的数据粒度作为输入,并且可以将这些输入变换为公共数据粒度。
在该方面,处理器可以被配置成通过当源列中的值在目标列中具有多个匹配时,通过使用分布函数在已合并的表格中生成多个行来实施数据粒度变换函数。
在该方面,分布函数可以从由常数、线性、正态分布、泊松分布和随机分布组成的组中来选择。
在该方面,处理器可以被配置成通过当源列中的值在目标列中具有多个匹配时,通过使用聚合函数在已合并的表格中生成一行来实施数据粒度变换函数。
在该方面,聚合函数可以选自由最小值、最大值、第一个、最后一个、平均值、中值、标准偏差和随机值组成的组。
在该方面,处理器可以被配置成使用示例编程算法以编程方式生成脚本。
在该方面,处理器可以被配置成为第一表格中的每列和第二表格中的每列生成简档。每列的简档可以包括最小字符串长度、最大字符串长度、平均字符串长度、列的元素的数据类型、列的元素内所包含的分隔符以及列中的数据的数据粒度中的一个或多个。处理器可以被配置成使用第一表格中的每列的简档和第二表格中的每列的简档来确定列之间的成功合并操作的概率。
在该方面,处理器可以被配置成以编程方式预先计算一个或多个可能的合并操作。所执行的合并操作可以是一个或多个可能的合并操作中的一个合并操作。
在该方面,计算设备还可以包括显示器和用户输入设备,显示器显示包括可能的合并操作的用户界面,用户输入设备被配置成接收指示所选择的合并操作的合并选择输入。处理器可以被配置成在接收到合并选择输入时执行所选择的合并操作。
根据本公开的另一方面,提供了一种用于与计算设备一起使用以用于计算第一表格和第二表格之间的合并潜力的方法,其包括选择至少一对列。每对可以包括第一表格的源列和第二表格的目标列。对于每对,处理器可以检测到对中的多个列包含具有不同数据粒度的相应数据。处理器可以修改在多个列中的一个列中的数据使得经修改的数据具有与另一个列中的数据相同的数据粒度,以促进源列和目标列之间的对应的匹配的确定。处理器可以生成包括来自源列的元素和来自目标列的对应的潜在匹配元素的示例。对于每个示例,处理器可以基于示例以编程方式生成脚本,当在示例的所选择的列的对的源列上执行该脚本时,产生与示例的目标列一致的值。对于每个脚本,处理器可以将该脚本应用于源列中的其他元素,并确定由该脚本生成的输出在目标列中。对于所生成的输出在与目标列的元素相比较时满足所选择的匹配标准的脚本,处理器可以传达由该脚本生成的输出以用于在显示设备上显示。响应于接受所传达的脚本的输入信号,处理器可以至少部分地通过在源列上执行所传达的脚本来对两个表格执行合并操作。
在该方面,至少部分地通过将每列的元素转换为经转换的字符串来修改源列和目标列中的至少一个,使得在其中的数据具有与另一个列的元素相同的数据类型。
在该方面,可以至少部分地通过确定所生成的输出中的大多数元素属于目标列,并通过确定目标列中的元素的相对覆盖范围来确定所生成的输出在与目标列中的数据比较时满足所选择的匹配标准的脚本。
在该方面,可以使用数据粒度变换函数修改在多个列中的一个列中的数据,使得其具有与另一个列中的数据相同的数据粒度。数据粒度变换函数可以将源列中的数据的数据粒度和目标列中的数据的数据粒度作为输入,并且可以将这些输入变换为公共数据粒度。
在该方面,通过当源列中的值在目标列中具有多个匹配时,通过使用分布函数在已合并的表格中生成多个行或通过使用聚合函数在已合并的表格中生成一行,来实施所述数据粒度变换函数。
在该方面,可以以编程方式预先计算一个或多个可能的合并操作。所执行的合并操作可以是一个或多个可能的合并操作中的一个合并操作。
根据本公开的另一方面,提供了一种用于计算第一表格和第二表格之间的合并潜力的计算设备,其包括被配置成选择至少一对列的处理器。每对包括第一表格的源列和第二表格的目标列。对于每对,处理器检测到对中的列包含具有不同数据粒度的相应数据。处理器修改多个列中的至少一个列中的数据使得经修改的数据具有与另一个列中的数据相同的数据粒度,以促进源列和目标列之间的对应的匹配的确定。处理器生成包括来自源列的元素和来自目标列的对应的潜在匹配元素的示例。对于每个示例,处理器基于示例以编程方式生成脚本,当在示例的所选择的列的对的源列上执行该脚本时,产生与示例的目标列一致的值。对于每个脚本,处理器将该脚本应用于源列中的其他元素,并确定由该脚本生成的输出在目标列中。对于所生成的输出在与目标列的元素相比较时满足所选择的匹配条件的脚本,处理器传达由该脚本生成的输出以用于在显示设备上显示。响应于接受所传达的脚本的输入信号,处理器至少部分地通过在源列上执行所传达的脚本来对两个表格执行合并操作。处理器被配置成至少部分地通过将每列的元素转换为经转换的字符串来修改源列和目标列中的至少一个,使得在其中的数据具有与另一个列的元素相同的数据类型。处理器被配置成至少部分地通过确定所生成的输出中的大多数元素属于目标列并且通过确定目标列中元素的相对覆盖范围,来确定所生成的输出在与目标列中的数据比较时满足所选择的匹配标准的脚本。
应当理解,本文所描述的配置和/或方法本质上是示例性的,并且这些具体实施例或示例不应当被视为具有限制意义,因为许多变型是可能的。本文所描述的特定例程或方法可以表示任何数目的处理策略中的一个或多个。如此,所图示和/或所描述的各种动作可以以所图示和/或所描述的顺序、以其他顺序、并行地来执行,或省略。同样,可以改变上述过程的次序。
本公开的主题内容包括各种过程、***和配置的所有新颖和非明显的组合和子组合和本文所公开的其他特征、功能、动作和/或属性,以及任何及其所有等价物。
Claims (15)
1.一种用于计算第一表格和第二表格之间的合并潜力的计算设备,包括:
处理器,其被配置成:
选择多个列中的至少一对,其中每对包括所述第一表格的源列和所述第二表格的目标列;
对于每对:
检测到所述对中的所述多个列包含具有不同数据粒度的相应数据;
修改在所述多个列中的一个列中的所述数据使得经修改的所述数据具有与另一个列中的所述数据相同的数据粒度,以促进生成所述源列和所述目标列之间的对应的匹配;并且
生成包括来自所述源列的元素和来自所述目标列的对应的潜在匹配元素的示例;
对于每个示例,基于所述示例以编程方式生成脚本,当所述脚本在所述示例的所选择的多个列的所述对中的所述源列上被执行时,产生与所述示例的所述目标列一致的值;
对于每个脚本,将所述脚本应用于所述源列中的其他元素,并且确定由所述脚本生成的输出在所述目标列中;
对于所生成的所述输出在与所述目标列的所述元素比较时满足所选择的匹配标准的所述脚本,传达由所述脚本生成的所述输出以用于在显示设备上显示;以及
响应于接受所传达的所述脚本的输入信号,至少部分地通过在所述源列上执行所传达的所述脚本来对所述两个表格执行合并操作。
2.根据权利要求1所述的计算设备,其中所述处理器被配置成:至少部分地通过将每列的所述元素转换为经转换的字符串来修改所述源列和所述目标列中的至少一个,使得在其中的所述数据具有与所述另一个列的所述元素相同的数据类型。
3.根据权利要求2所述的计算设备,其中所述处理器被配置成:至少部分地通过确定所生成的所述输出中的大多数元素属于所述目标列,并且通过确定所述目标列中的所述元素的相对覆盖范围,来确定所生成的所述输出在与所述目标列中的所述数据比较时满足所选择的匹配标准的脚本。
4.根据权利要求1所述的计算设备,其中所述处理器被配置成:使用数据粒度变换函数来修改所述多个列中的一个列中的所述数据,使得所述一个列具有与所述另一个列中的所述数据相同的数据粒度,其中所述数据粒度变换函数将所述源列中所述数据的所述数据粒度和所述目标列中所述数据的所述数据粒度作为输入,并且将这些输入变换为公共数据粒度。
5.根据权利要求4所述的计算设备,其中所述处理器被配置成:通过当所述源列中的值在所述目标列中具有多个匹配时,通过使用分布函数在已合并的所述表格中生成多个行,来实施所述数据粒度变换函数。
6.根据权利要求4所述的计算设备,其中所述处理器被配置成:通过当所述源列中的值在所述目标列中具有多个匹配时,通过使用聚合函数在已合并的所述表格中生成一行来实施所述数据粒度变换函数。
7.根据权利要求1所述的计算设备,其中所述处理器被配置成:使用示例编程算法以编程方式生成所述脚本。
8.根据权利要求1所述的计算设备,其中所述处理器被配置成:为所述第一表格中的每列和所述第二表格中的每列生成简档,其中每列的所述简档包括以下中的一项或多项:最小字符串长度、最大字符串长度、平均字符串长度、所述列的所述元素的数据类型、所述列的所述元素内所包含的分隔符、和所述列中的所述数据的数据粒度,并且其中所述处理器被配置成:使用所述第一表格中的每列的所述简档和所述第二表格中的每列的所述简档来确定所述多个列之间成功合并操作的概率。
9.根据权利要求1所述的计算设备,其中所述处理器被配置成:以编程方式预先计算一个或多个可能的合并操作,并且其中所执行的所述合并操作是所述一个或多个可能的合并操作中的一个合并操作。
10.根据权利要求9所述的计算设备,还包括:
显示器,其显示包括所述可能的合并操作的用户界面;以及
用户输入设备,其被配置成接收指示所选择的合并操作的合并选择输入;
其中所述处理器被配置成在接收所述合并选择输入时,执行所选择的所述合并操作。
11.一种用于与计算设备一起使用以用于计算第一表格和第二表格之间的合并潜力的方法,包括:
选择多个列中的至少一对,其中每对包括所述第一表格的源列和所述第二表格的目标列;
对于每对:
检测到所述对中的所述多个列包含具有不同数据粒度的相应数据;
修改在所述多个列中的一个列中的所述数据使得经修改的所述数据具有与另一个列中的所述数据相同的数据粒度,以促进确定所述源列和所述目标列之间的对应的匹配;并且
生成包括来自所述源列的元素和来自所述目标列的对应的潜在匹配元素的示例;
对于每个示例,基于所述示例以编程方式生成脚本,当所述脚本在所述示例的所选择的多个列的所述对中的所述源列上被执行时,产生与所述示例的所述目标列一致的值;
对于每个脚本,将所述脚本应用于所述源列中的其他元素,并且确定由所述脚本生成的输出在所述目标列中;
对于所生成的所述输出在与所述目标列的所述元素比较时满足所选择的匹配标准的所述脚本,传达由所述脚本生成的所述输出以用于在显示设备上显示;以及
响应于接受所传达的所述脚本的输入信号,至少部分地通过在所述源列上执行所传达的所述脚本来对所述两个表格执行合并操作。
12.根据权利要求11所述的方法,其中所述源列和所述目标列中的至少一个至少部分地通过将每列的所述元素转换为经转换的字符串来修改,使得在其中的所述数据具有与所述另一个列的所述元素相同的数据类型。
13.根据权利要求11所述的方法,其中所述多个列中的一个列中的所述数据使用数据粒度变换函数来修改,使得所述一个列具有与所述另一个列中的所述数据相同的数据粒度,其中所述数据粒度变换函数将所述源列中所述数据的所述数据粒度和所述目标列中所述数据的所述数据粒度作为输入,并且将这些输入变换为公共数据粒度。
14.根据权利要求11所述的方法,其中所述数据粒度变换函数通过以下来实施:当所述源列中的值在所述目标列中具有多个匹配时,通过使用分布函数在已合并的所述表格中生成多个行或通过使用聚合函数在已合并的所述表格中生成一行。
15.根据权利要求11所述的方法,其中一个或多个可能的合并操作以编程方式来预先计算,并且其中所执行的所述合并操作是所述一个或多个可能的合并操作中的一个合并操作。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/299,388 | 2016-10-20 | ||
US15/299,388 US10394815B2 (en) | 2016-10-20 | 2016-10-20 | Join with predictive granularity modification by example |
PCT/US2017/056444 WO2018075337A1 (en) | 2016-10-20 | 2017-10-13 | Join with predictive granularity modification by example |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109844729A true CN109844729A (zh) | 2019-06-04 |
CN109844729B CN109844729B (zh) | 2022-11-22 |
Family
ID=60183146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201780063852.7A Active CN109844729B (zh) | 2016-10-20 | 2017-10-13 | 通过示例利用预测性粒度修改来合并 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10394815B2 (zh) |
EP (1) | EP3529716B1 (zh) |
CN (1) | CN109844729B (zh) |
WO (1) | WO2018075337A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114167489A (zh) * | 2021-12-10 | 2022-03-11 | 北京大学深圳研究生院 | 一种地震前兆特征筛选分析方法、***及存储介质 |
CN114860133A (zh) * | 2022-06-01 | 2022-08-05 | 北京达佳互联信息技术有限公司 | 问卷处理方法、装置、电子设备、介质及产品 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10394815B2 (en) * | 2016-10-20 | 2019-08-27 | Microsoft Technology Licensing, Llc | Join with predictive granularity modification by example |
US20180143960A1 (en) * | 2016-11-18 | 2018-05-24 | International Business Machines Corporation | Modifying Tabular Data to be Rendered on a Display Device |
JP7060797B2 (ja) * | 2018-05-28 | 2022-04-27 | 富士通株式会社 | テーブル生成方法、テーブル生成装置およびテーブル生成プログラム |
US11200239B2 (en) * | 2020-04-24 | 2021-12-14 | International Business Machines Corporation | Processing multiple data sets to generate a merged location-based data set |
US11074048B1 (en) | 2020-04-28 | 2021-07-27 | Microsoft Technology Licensing, Llc | Autosynthesized sublanguage snippet presentation |
US11327728B2 (en) | 2020-05-07 | 2022-05-10 | Microsoft Technology Licensing, Llc | Source code text replacement by example |
US11481195B2 (en) | 2020-06-09 | 2022-10-25 | Google Llc | Synthesizing programs in a spreadsheet programming language |
US20210383060A1 (en) * | 2020-06-09 | 2021-12-09 | Google Llc | User interface(s) related to synthesizing programs in a spreadsheet programming language |
US11900080B2 (en) | 2020-07-09 | 2024-02-13 | Microsoft Technology Licensing, Llc | Software development autocreated suggestion provenance |
US11941372B2 (en) | 2021-04-01 | 2024-03-26 | Microsoft Technology Licensing, Llc | Edit automation using an anchor target list |
US11875136B2 (en) | 2021-04-01 | 2024-01-16 | Microsoft Technology Licensing, Llc | Edit automation using a temporal edit pattern |
US11899698B2 (en) * | 2021-05-28 | 2024-02-13 | Microsoft Technology Licensing, Llc | Wordbreak algorithm with offset mapping |
CN115756443B (zh) * | 2022-12-02 | 2023-08-25 | 中电金信软件有限公司 | 一种脚本生成方法、装置、电子设备及可读存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684069A (zh) * | 2004-04-13 | 2005-10-19 | 微软公司 | 计算机化财务***的提取、变换和加载设计器模块 |
WO2006075667A1 (ja) * | 2005-01-12 | 2006-07-20 | Masatsugu Noda | 情報処理装置ならびにファイルデータマージ方法およびファイル名称付与方法およびファイルデータ出力方法 |
US20060224551A1 (en) * | 2005-04-01 | 2006-10-05 | International Business Machines Corporation | Method, system and program for joining source table rows with target table rows |
US20090327208A1 (en) * | 2008-06-30 | 2009-12-31 | International Business Machines Corporation | Discovering transformations applied to a source table to generate a target table |
US20140173402A1 (en) * | 2012-12-18 | 2014-06-19 | International Business Machines Corporation | Table manipulation |
US20150324346A1 (en) * | 2014-05-11 | 2015-11-12 | Informatica Corporation | Composite data creation with refinement suggestions |
US20160275114A1 (en) * | 2015-03-17 | 2016-09-22 | Nec Corporation | Column-store database management system |
Family Cites Families (35)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6591272B1 (en) | 1999-02-25 | 2003-07-08 | Tricoron Networks, Inc. | Method and apparatus to make and transmit objects from a database on a server computer to a client computer |
US6553371B2 (en) | 2001-09-20 | 2003-04-22 | International Business Machines Corporation | Method and system for specifying and displaying table joins in relational database queries |
US7574652B2 (en) | 2002-06-20 | 2009-08-11 | Canon Kabushiki Kaisha | Methods for interactively defining transforms and for generating queries by manipulating existing query data |
AU2002953555A0 (en) | 2002-12-23 | 2003-01-16 | Canon Kabushiki Kaisha | Method for presenting hierarchical data |
US7321888B2 (en) | 2003-09-11 | 2008-01-22 | International Business Machines Corporation | Method and system for dynamic join reordering |
US7725460B2 (en) * | 2003-12-08 | 2010-05-25 | Ebay Inc. | Method and system for a transparent application of multiple queries across multiple data sources |
US8126900B1 (en) | 2004-02-03 | 2012-02-28 | Teradata Us, Inc. | Transforming a data type of a column in a table |
US9792351B2 (en) | 2005-06-10 | 2017-10-17 | International Business Machines Corporation | Tolerant and extensible discovery of relationships in data using structural information and data analysis |
US8122045B2 (en) | 2007-02-27 | 2012-02-21 | International Business Machines Corporation | Method for mapping a data source to a data target |
US20080288444A1 (en) | 2007-05-16 | 2008-11-20 | John Francis Edwards | Evaluating Multi-Table Join Selectivity in a Computer Database |
US8726177B2 (en) | 2007-07-18 | 2014-05-13 | Sas Institute Inc. | Systems and methods for generating a database query using a graphical user interface |
US8954418B2 (en) | 2010-05-14 | 2015-02-10 | Sap Se | Performing complex operations in a database using a semantic layer |
US8972930B2 (en) | 2010-06-04 | 2015-03-03 | Microsoft Corporation | Generating text manipulation programs using input-output examples |
US20110320433A1 (en) | 2010-06-25 | 2011-12-29 | Microsoft Corporation | Automated Joining of Disparate Data for Database Queries |
US8538934B2 (en) | 2011-10-28 | 2013-09-17 | Microsoft Corporation | Contextual gravitation of datasets and data services |
US8938475B2 (en) | 2011-12-27 | 2015-01-20 | Sap Se | Managing business objects data sources |
US8972336B2 (en) | 2012-05-03 | 2015-03-03 | Salesforce.Com, Inc. | System and method for mapping source columns to target columns |
US8682885B2 (en) | 2012-05-15 | 2014-03-25 | Sap Ag | Method and system for combining data objects |
US9400639B2 (en) | 2012-06-22 | 2016-07-26 | Microsoft Technology Licensing, Llc | Generating programs using context-free compositions and probability of determined transformation rules |
US20140344399A1 (en) | 2012-12-13 | 2014-11-20 | Level 3 Communications, Llc | Origin Server-Side Channel In A Content Delivery Framework |
US10791050B2 (en) | 2012-12-13 | 2020-09-29 | Level 3 Communications, Llc | Geographic location determination in a content delivery framework |
US10332010B2 (en) | 2013-02-19 | 2019-06-25 | Business Objects Software Ltd. | System and method for automatically suggesting rules for data stored in a table |
US9116940B1 (en) | 2013-04-15 | 2015-08-25 | Google Inc. | Searching for join candidates |
US9317361B2 (en) * | 2013-11-27 | 2016-04-19 | Seagate Technology Llc | Bit-line defect detection using unsatisfied parity code checks |
US20150242407A1 (en) | 2014-02-22 | 2015-08-27 | SourceThought, Inc. | Discovery of Data Relationships Between Disparate Data Sets |
US20150242409A1 (en) | 2014-02-22 | 2015-08-27 | SourceThought, Inc. | Automated Data Shaping |
US9507824B2 (en) | 2014-08-22 | 2016-11-29 | Attivio Inc. | Automated creation of join graphs for unrelated data sets among relational databases |
US20160055212A1 (en) | 2014-08-22 | 2016-02-25 | Attivio, Inc. | Automatic joining of data sets based on statistics of field values in the data sets |
US9672249B2 (en) | 2014-12-16 | 2017-06-06 | Sap Se | Comparing join values in database systems |
US9977803B2 (en) | 2015-01-30 | 2018-05-22 | Splunk Inc. | Column-based table manipulation of event data |
US10445062B2 (en) * | 2016-09-15 | 2019-10-15 | Oracle International Corporation | Techniques for dataset similarity discovery |
US10650000B2 (en) * | 2016-09-15 | 2020-05-12 | Oracle International Corporation | Techniques for relationship discovery between datasets |
US10565222B2 (en) * | 2016-09-15 | 2020-02-18 | Oracle International Corporation | Techniques for facilitating the joining of datasets |
US10546055B2 (en) * | 2016-10-20 | 2020-01-28 | Microsoft Technology Licensing, Llc | Join with format modification by example |
US10394815B2 (en) * | 2016-10-20 | 2019-08-27 | Microsoft Technology Licensing, Llc | Join with predictive granularity modification by example |
-
2016
- 2016-10-20 US US15/299,388 patent/US10394815B2/en active Active
-
2017
- 2017-10-13 EP EP17790932.2A patent/EP3529716B1/en active Active
- 2017-10-13 WO PCT/US2017/056444 patent/WO2018075337A1/en unknown
- 2017-10-13 CN CN201780063852.7A patent/CN109844729B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1684069A (zh) * | 2004-04-13 | 2005-10-19 | 微软公司 | 计算机化财务***的提取、变换和加载设计器模块 |
WO2006075667A1 (ja) * | 2005-01-12 | 2006-07-20 | Masatsugu Noda | 情報処理装置ならびにファイルデータマージ方法およびファイル名称付与方法およびファイルデータ出力方法 |
US20060224551A1 (en) * | 2005-04-01 | 2006-10-05 | International Business Machines Corporation | Method, system and program for joining source table rows with target table rows |
US20090327208A1 (en) * | 2008-06-30 | 2009-12-31 | International Business Machines Corporation | Discovering transformations applied to a source table to generate a target table |
US20140173402A1 (en) * | 2012-12-18 | 2014-06-19 | International Business Machines Corporation | Table manipulation |
US20150324346A1 (en) * | 2014-05-11 | 2015-11-12 | Informatica Corporation | Composite data creation with refinement suggestions |
US20160275114A1 (en) * | 2015-03-17 | 2016-09-22 | Nec Corporation | Column-store database management system |
Non-Patent Citations (2)
Title |
---|
房婧等: "版式电子文档表格自动检测与性能评估", 《北京大学学报(自然科学版)》 * |
李斌: "自制工具轻松合并Excel表格", 《电脑编程技巧与维护》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114167489A (zh) * | 2021-12-10 | 2022-03-11 | 北京大学深圳研究生院 | 一种地震前兆特征筛选分析方法、***及存储介质 |
CN114167489B (zh) * | 2021-12-10 | 2024-02-02 | 北京大学深圳研究生院 | 一种地震前兆特征筛选分析方法、***及存储介质 |
CN114860133A (zh) * | 2022-06-01 | 2022-08-05 | 北京达佳互联信息技术有限公司 | 问卷处理方法、装置、电子设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2018075337A1 (en) | 2018-04-26 |
CN109844729B (zh) | 2022-11-22 |
US10394815B2 (en) | 2019-08-27 |
EP3529716B1 (en) | 2020-12-16 |
EP3529716A1 (en) | 2019-08-28 |
US20180113906A1 (en) | 2018-04-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109844729A (zh) | 通过示例利用预测性粒度修改来合并 | |
Sarkar et al. | Hands-On Transfer Learning with Python: Implement advanced deep learning and neural network models using TensorFlow and Keras | |
CN109804363A (zh) | 使用通过示例的格式修改的连接 | |
KR102122373B1 (ko) | 사용자 포트레이트를 획득하는 방법 및 장치 | |
US11315164B2 (en) | Complementary product recommendation systems | |
Pölsterl et al. | Fast training of support vector machines for survival analysis | |
US10223344B2 (en) | Recognition and population of form fields in an electronic document | |
CN103003792B (zh) | 使用层次结构分析数据 | |
CN109074642A (zh) | 机器学习装置 | |
CN105160397A (zh) | 训练精炼的机器学习模型 | |
US11093702B2 (en) | Checking and/or completion for data grids | |
CN110036399A (zh) | 神经网络数据录入*** | |
US11551818B2 (en) | Computer system and method of presenting information related to basis of predicted value output by predictor | |
US10977106B2 (en) | Tree-based anomaly detection | |
CN104471552A (zh) | 用于处置状态机引擎所接收的数据的方法及*** | |
US8856109B2 (en) | Topical affinity badges in information retrieval | |
US10685062B2 (en) | Relational database management | |
EP3757817A1 (en) | Electronic device and control method therefor | |
US12039257B2 (en) | Systems, methods, and computer-readable media for improved table identification using a neural network | |
CN113722583A (zh) | 推荐方法、推荐模型训练方法及相关产品 | |
KR20200010680A (ko) | 기계학습 모델을 이용하여 n개의 프레임에 기초하여 대상의 감정인식을 수행하는 감정인식 시스템, 방법, 및 컴퓨터-판독가능매체 | |
US20180247226A1 (en) | Classifier | |
US11074662B2 (en) | Simulated network system and method for relating users of real-world e-commerce and other user network systems to information | |
CN114547307A (zh) | 文本向量模型训练方法、文本匹配方法、装置及设备 | |
US20170176956A1 (en) | Control system using input-aware stacker |
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 |