CN109844729A - 通过示例利用预测性粒度修改来合并 - Google Patents

通过示例利用预测性粒度修改来合并 Download PDF

Info

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
Application number
CN201780063852.7A
Other languages
English (en)
Other versions
CN109844729B (zh
Inventor
S·古尔瓦尼
D·A·佩雷尔曼
R·库玛
E·P·贾登
C·C·Y·张
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.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
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 Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN109844729A publication Critical patent/CN109844729A/zh
Application granted granted Critical
Publication of CN109844729B publication Critical patent/CN109844729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/2453Query optimisation
    • G06F16/24534Query rewriting; Transformation
    • G06F16/24542Plan optimisation
    • G06F16/24544Join order optimisation
    • 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/21Design, administration or maintenance of databases
    • G06F16/215Improving data quality; Data cleansing, e.g. de-duplication, removing invalid entries or correcting typographical errors
    • 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/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations
    • 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/2455Query execution
    • G06F16/24564Applying rules; Deductive queries
    • G06F16/24565Triggers; Constraints
    • 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/25Integrating or interfacing systems involving database management systems
    • G06F16/258Data format conversion from or to a database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/177Editing, e.g. inserting or deleting of tables; using ruled lines
    • G06F40/18Editing, 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Linguistics (AREA)
  • Quality & Reliability (AREA)
  • Operations Research (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (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所述的方法,其中一个或多个可能的合并操作以编程方式来预先计算,并且其中所执行的所述合并操作是所述一个或多个可能的合并操作中的一个合并操作。
CN201780063852.7A 2016-10-20 2017-10-13 通过示例利用预测性粒度修改来合并 Active CN109844729B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/299,388 US10394815B2 (en) 2016-10-20 2016-10-20 Join with predictive granularity modification by example
US15/299,388 2016-10-20
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
US20210383060A1 (en) * 2020-06-09 2021-12-09 Google Llc User interface(s) related to synthesizing programs in a spreadsheet programming language
US11481195B2 (en) * 2020-06-09 2022-10-25 Google Llc Synthesizing programs in a spreadsheet programming language
US11900080B2 (en) 2020-07-09 2024-02-13 Microsoft Technology Licensing, Llc Software development autocreated suggestion provenance
US11875136B2 (en) 2021-04-01 2024-01-16 Microsoft Technology Licensing, Llc Edit automation using a temporal edit pattern
US11941372B2 (en) 2021-04-01 2024-03-26 Microsoft Technology Licensing, Llc Edit automation using an anchor target list
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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
WO2005057365A2 (en) * 2003-12-08 2005-06-23 Ebay Inc. System to automatically regenerate software code
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
US7908266B2 (en) 2007-07-18 2011-03-15 Sas Institute Inc. Systems and methods for automatically creating an SQL join expression
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
US20150242409A1 (en) 2014-02-22 2015-08-27 SourceThought, Inc. Automated Data Shaping
US20150242407A1 (en) 2014-02-22 2015-08-27 SourceThought, Inc. Discovery of Data Relationships Between Disparate Data Sets
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
US9507824B2 (en) 2014-08-22 2016-11-29 Attivio Inc. Automated creation of join graphs for unrelated data sets among relational databases
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
US10650000B2 (en) * 2016-09-15 2020-05-12 Oracle International Corporation Techniques for relationship discovery between datasets
US10445062B2 (en) * 2016-09-15 2019-10-15 Oracle International Corporation Techniques for dataset similarity discovery
US10565222B2 (en) * 2016-09-15 2020-02-18 Oracle International Corporation Techniques for facilitating the joining of datasets
US10394815B2 (en) * 2016-10-20 2019-08-27 Microsoft Technology Licensing, Llc Join with predictive granularity modification by example
US10546055B2 (en) * 2016-10-20 2020-01-28 Microsoft Technology Licensing, Llc Join with format modification by example

Patent Citations (7)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Title
房婧等: "版式电子文档表格自动检测与性能评估", 《北京大学学报(自然科学版)》 *
李斌: "自制工具轻松合并Excel表格", 《电脑编程技巧与维护》 *

Cited By (3)

* Cited by examiner, † Cited by third party
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
US20180113906A1 (en) 2018-04-26
WO2018075337A1 (en) 2018-04-26
EP3529716B1 (en) 2020-12-16
EP3529716A1 (en) 2019-08-28
US10394815B2 (en) 2019-08-27
CN109844729B (zh) 2022-11-22

Similar Documents

Publication Publication Date Title
CN109844729A (zh) 通过示例利用预测性粒度修改来合并
CN109804363A (zh) 使用通过示例的格式修改的连接
US11315164B2 (en) Complementary product recommendation systems
US10223344B2 (en) Recognition and population of form fields in an electronic document
CN105593849B (zh) 数据库访问
CN105160397A (zh) 训练精炼的机器学习模型
US11093702B2 (en) Checking and/or completion for data grids
US10977106B2 (en) Tree-based anomaly detection
US8856109B2 (en) Topical affinity badges in information retrieval
CN105051741A (zh) 并行局部序列对齐
US20200034738A1 (en) Computer System and Method of Presenting Information Related to Basis of Predicted Value Output by Predictor
US10685062B2 (en) Relational database management
EP3757817A1 (en) Electronic device and control method therefor
US11403550B2 (en) Classifier
CN112231485A (zh) 文本推荐方法、装置、计算机设备及存储介质
KR20240055704A (ko) 지정 항목 추천 방법
CN114547307A (zh) 文本向量模型训练方法、文本匹配方法、装置及设备
US20170176956A1 (en) Control system using input-aware stacker
CN107093122B (zh) 对象分类方法及装置
CN107480627A (zh) 行为识别方法、装置、存储介质和处理器
US20210073579A1 (en) Recognition of biases in data and models
CN104636419B (zh) 信息处理装置、信息处理方法
Haripriya et al. Multi label prediction using association rule generation and simple k-means
Grimme et al. Lost in transformation: Rediscovering llm-generated campaigns in social media
EP3821366A1 (en) Systems, methods, and computer-readable media for improved table identification using a neural network

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