CN109804363A - 使用通过示例的格式修改的连接 - Google Patents

使用通过示例的格式修改的连接 Download PDF

Info

Publication number
CN109804363A
CN109804363A CN201780062937.3A CN201780062937A CN109804363A CN 109804363 A CN109804363 A CN 109804363A CN 201780062937 A CN201780062937 A CN 201780062937A CN 109804363 A CN109804363 A CN 109804363A
Authority
CN
China
Prior art keywords
column
script
format
pair
output
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
CN201780062937.3A
Other languages
English (en)
Other versions
CN109804363B (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 CN109804363A publication Critical patent/CN109804363A/zh
Application granted granted Critical
Publication of CN109804363B publication Critical patent/CN109804363B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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
    • 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
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/103Formatting, i.e. changing of presentation of documents
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/414Extracting the geometrical structure, e.g. layout tree; Block segmentation, e.g. bounding boxes for graphics or text
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/418Document matching, e.g. of document images

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • General Engineering & Computer Science (AREA)
  • Artificial Intelligence (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Graphics (AREA)
  • Geometry (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • User Interface Of Digital Computer (AREA)
  • Stored Programmes (AREA)

Abstract

提供了一种计算设备,其包括被配置为选择至少一个元素对的处理器,至少一个元素对包括第一表的源列中的元素和第二表的目标列中的元素。处理器可以检测到元素具有不同格式。针对至少一个元素,处理器可以将预定映射应用于公共格式。处理器可以修改至少一个元素以使其具有与另一元素相同的格式,并且可以生成包括经修改的对的示例。处理器可以以编程方式生成脚本,该脚本在被执行于所选择的元素上时产生与示例一致的值。针对具有与目标列的元素相匹配的输出的脚本,处理器可以传送输出以供显示,并且可以至少部分地通过对源列执行脚本来连接表。

Description

使用通过示例的格式修改的连接
背景技术
在使用涉及操纵数据表的计算机程序时,连接两个表是用户执行的常见任务。如果两个表中的数据具有不同格式,则用户编写脚本以连接它们会变得耗时且麻烦。下面进一步讨论这些挑战、它们被处理的方式以及其随之而来的潜在的有益技术效果。
发明内容
根据本公开的一个方面,提供了一种用于计算第一表与第二表之间的连接潜力的计算设备,其包括被配置为选择至少一个元素对的处理器。每对包括第一表的源列中的元素和第二表的目标列中的元素。针对每对,处理器可以被配置为检测该对中的元素具有不同格式。针对至少一个元素,处理器还可以被配置为应用预定映射,预定映射从该对中的第一元素的第一格式到由预定映射定义的公共格式。处理器可以修改至少一个元素以使得其具有与另一元素相同的格式以促进生成源列与目标列之间的对应匹配。此外,处理器可以生成包括在至少一个元素已被修改之后的该元素对的示例。针对每个示例,处理器可以被配置为基于示例以编程方式生成脚本,该脚本被执行于所选择的元素中的一个元素上时产生与该示例的所选择的元素中的另一元素一致的值。针对每个脚本,处理器还可以被配置为将该脚本应用于源列中的其他元素并且确定由该脚本生成的输出在目标列中。针对所生成的输出在与目标列的元素相比时满足所选择的匹配标准的脚本,处理器可以传送由该脚本生成的输出以用于在显示设备上显示,并且响应于接受所传送的脚本的输入信号,处理器可以至少部分地通过对源列执行所传送的脚本来对两个表执行连接操作。
提供本“发明内容”是为了以简化的形式介绍一些概念,这些概念将在下面的“具体实施方式”中进一步描述。本“发明内容”不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。此外,所要求保护的主题不限于解决在本公开的任何部分中提到的任何或所有缺点的实现。
附图说明
图1示出了根据本公开的一个实施例的配备有以编程方式计算至少两个表之间的连接潜力的预测格式化模块的计算设备。
图2示出了图1的预测格式化模块和图形用户界面,用户通过该图形用户界面向预测格式化模块中输入数据以及查看由预测格式化模块输出的数据。
图3示出了图3的示例编程算法及其输入和输出。
图4是根据本公开的一个实施例的用于以编程方式计算两个表之间的连接潜力的方法的流程图。
图5示出了根据本公开的一个实施例的被配置为执行应用程序以计算两个表之间的连接潜力的示例计算设备。
图6示出了根据本公开的一个实施例的示例计算系统。
具体实施方式
图1图示了用于计算第一表40与第二表42之间的连接潜力的计算设备90,计算设备90包括存储器92、处理器94、显示器96和输入设备98。根据本公开的一个实施例,处理器94被配置为执行存储器92中包含的应用程序86,应用程序86计算两个表44之间的连接潜力。处理器94可以被配置为响应于检测到触发条件50而计算第一表40与第二表42之间的连接潜力。应用程序86例如可以是电子表格应用程序86,并且触发条件50例如可以是用户在电子表格应用程序86中选择“搜索潜在连接”选项,或者可以是引起应用程序86自身在不需要用户输入的情况下搜索表44之间的潜在连接的编程触发器。
响应于触发条件50,计算设备90在第一表40和第二表42上执行自动连接模块52。自动连接模块52包括预测格式化模块54。预测格式化模块54以编程方式生成至少一个候选变换脚本82。处理器94可以被配置为使用示例编程算法80以编程方式生成脚本82。预测格式化模块54然后评估至少一个候选变换脚本82并且产生连接操作的排序列表84。然后,传送来自连接操作的排序列表84的至少一个建议的连接操作62以在显示设备96上显示。响应于接受建议的连接操作62中的一个连接操作的输入信号,应用程序86将表44连接成经连接的表66中,经连接的表66被传送以在显示器96上的图形用户界面68中显示。
图2图示了预测格式化模块54和图形用户界面68。预测格式化模块54被配置为检测用于计算第一表40与第二表42之间的连接潜力的触发条件50。从这两个表44中,预测格式化模块54选择至少一个元素对,其中每对包括第一表40的源列74中的元素和第二表42的目标列76中的元素。
为了使预测格式化模块54直接比较两个元素,预测格式化模块54将这些元素转换为公共数据类型。为了确定可能具有不同格式的两个元素是否包含任何相同信息,预测格式化模块54可以将两个元素转换为字符串并且可以确定它们是否共享任何子字符串。将元素转换为字符串而不是某个其他数据类型提供了一些优势。首先,字符串可以包含任何类型的字符,而其他数据类型(诸如整数)只能包含某些字符类型。此外,字符串可以被划分为仍然具有字符串数据类型的子字符串。这些子字符串可以彼此直接比较。因此,将源列74中的元素和目标列76中的元素转换为字符串允许比较元素的内容,即使元素最初不共享数据类型。
将第一表40的源列74中的元素和第二表42的目标列76中的元素修改为具有公共格式的过程如下。预测格式化模块54对每个所选择的元素对执行格式转换。首先,预测格式化模块54检测该对中的元素具有不同格式。针对至少一个元素,预测格式化模块54应用预定映射88,预定映射88从该对中的第一元素的第一格式到由预定映射88定义的公共格式。
预测格式化模块54可以修改该对中的至少一个元素以使得其具有与另一元素相同的格式。该修改可以至少部分地通过将该元素对转换为经转换的字符串对来执行。然后,预测格式化模块54可以使用公共格式映射来修改至少一个元素以使得其具有与另一元素相同的格式。例如,公共格式映射可以插入或移除分隔符,以大写字母书写字母或者以小写字母书写字母,改变时间的时区,或者对数字进行四舍五入。
公共格式映射可以将源列74中的元素的格式和目标列76中的元素的格式作为输入,并且将这些输入映射到公共格式。公共格式不一定与该对中的任一元素的格式相同。由公共格式映射输出的格式可以与源列74中的元素的格式和目标列76中的元素的格式不同。根据本公开的一个实施例,公共格式选自包括实体的各种标准格式的字符串表示的组,实体诸如数字、日期、时间、姓名、地址、电子邮件地址和距离。预测格式化模块54以编程方式生成示例78,该示例78包括在至少一个元素已被修改之后的该元素对。
针对每个示例78,预测格式化模块54基于示例78以编程方式生成脚本82,该脚本82在被执行于示例78的输入输出选择对100上时产生与输入输出示例对102一致的值。脚本被定义为要由计算设备90执行的程序指令集。
本公开的预测格式化模块54利用示例编程。示例编程是一种编程技术,通过该编程技术从脚本的期望输出的示例来生成这样的脚本。例如,示例编程被用在MicrosoftExcel 2016的闪式填充特征中。在本文中使用的示例编程技术中,示例可以由用户输入或者可以由预测数据格式化模块54以编程方式生成。
图3图示了示例编程算法80。首先,预测格式化模块54将输入输出示例对102输入到示例编程算法80中。输入输出示例对102可以是以编程方式生成的示例78或用户输入的示例70。针对通过上述方法生成的每个输入输出示例对102,预测格式化模块54使用示例编程算法80来生成脚本82,脚本82在被执行于源列74的所选择的元素上时产生输入输出示例对102。示例编程算法80可以被配置为接收输入输出选择对100和输入输出示例对102。示例编程算法80然后可以合成脚本82,脚本82在被执行于输入输出选择对100上时产生输入输出示例对102。
一旦生成脚本82,示例编程算法80就可以对源列74中的各种其他输入执行脚本82,并且将脚本的输出与目标列76中的元素进行比较。示例编程算法80可以确定目标列76的元素的相对覆盖范围、脚本82的与目标列76的元素相匹配的输出的比例。如果这些输出中的很多输出属于目标列76,则脚本82可以被添加到连接操作列表84。连接操作列表84中的脚本可以按照产生成功连接操作的概率来排序并且被传送以显示给用户。
代替以编程方式生成的示例78,示例编程算法80可以替代地使用用户输入的示例70来生成脚本82。输入输出示例对102可以由用户输入或者可以以编程方式确定。
如果输入输出示例对102是以编程方式确定的,则该确定可以至少通过以下过程来进行。首先,针对第一表40的源列74中的至少一个元素,示例编程算法80可以将该元素转换为经转换的字符串。其次,针对第二表42的目标列76中的至少一个元素,示例编程算法80也可以将该元素转换为经转换的字符串。然后,示例编程算法80可以确定目标列76中的在与源列74中的经转换的字符串相比时满足所选择的匹配标准的经转换的字符串。该确定可以至少部分地通过使用匹配标准来进行,匹配标准诸如字符串距离度量,例如,子字符串长度的比较。示例编程算法80可以至少部分地通过确定包括源列74中的经转换的字符串和目标列76中的具有最长子字符串匹配的经转换的字符串的对,以进行该确定。最后,示例编程算法80可以生成示例对,该示例对包括源列74中的经转换的字符串和目标列76中的在与源列74中的经转换的字符串相比时满足所选择的匹配标准的经转换的字符串。
针对每个脚本82,预测格式化模块54将该脚本82应用于源列74中的其他元素并且确定由该脚本82生成的输出在目标列76中。然后按照在被应用于源列74时脚本的输出中有多少与目标列76中的元素相匹配来对脚本进行排序。
下面提供确定所生成的输出在与目标列76中的元素相比时满足所选择的匹配标准的脚本104的示例。第一表40的列是名册号(整数)和GPA(实数)。第二表42的列是GPA(整数)和等级(字符串)。在第一表40中,GPA列的元素是实数的数据类型,而在第二表42中,它们是整数的数据类型。第一表40的GPA(实数)列是源列74,并且第二表42的GPA(整数)列是目标列76。
名册号(整数) GPA(实数)
1 4.1
2 3.5
GPA(整数) 等级(字符串)
4 'A'
3 'B'
2 'C'
1 'F'
考虑每个示例对包括来自源列74的元素和来自目标列76的在源列74的所选择的元素是“4.1”的情况下可以被产生的元素。首先,预测格式化模块54将源列74的所选择的元素“4.1”转换为经转换的字符串。接下来,预测格式化模块54将目标列76中的至少一个元素转换为经转换的字符串。在该示例中,它将目标列76中的每个元素转换为经转换的字符串。
接下来,预测格式化模块54确定包括源列74中的经转换的字符串和目标列76中的具有最长子字符串匹配的经转换的字符串的对。经转换的字符串“4.1”不与经转换的字符串“2”或“3”共享任何子字符串,因此目标列76中的元素“2”和“3”不被用来形成输入输出示例对102。另一方面,“4.1”与“1”共享长度为一个字符的子字符串,并且还与“4”共享长度为一个字符的子字符串。
示例编程算法80产生两个脚本82,一个脚本对应于一个输入示例对102。第一脚本通过获取在句点之后的内容来将4.1映射到1。第二脚本通过获取在句点之前的字符串来将4.2映射到4。
然后,示例编程算法80在源列74上执行脚本82中的每个脚本,并且确定由每个脚本82输出的每个元素是否在目标列76中。该确定通过示出经连接的表66来最好地说明,经连接的表66是使用脚本82中的每个脚本连接第一表40和第二表42得到的。
通过使用第一脚本82连接第一表40和第二表42而产生的表如下。
名册号(整数) GPA(实数) GPA(整数) 等级(字符串)
1 4.1 1 'A'
2 3.5 5
将第一脚本82应用于源列74中的元素“3.5”产生输出“5”,输出“5”不是目标列76的元素。第二表42不包含GPA具有值“5”的行,因此经连接的表66在第二行中没有对应的等级值。
通过使用第二脚本82连接第一表40和第二表42而产生的表如下。
名册号(整数) GPA(实数) GPA(整数) 等级(字符串)
1 4.1 4 'A'
2 3.5 3 'B'
在第二脚本82被执行于源列74上时由第二脚本82输出的所有元素都是目标列76的元素。因此,“4.1、4”是多个输入输出选择对100中的输入输出选择对100,其中使用该对100产生的脚本104的所生成的输出在与目标列76中的元素相比时满足所选择的匹配标准。从示例对102“4.1、4”生成的脚本82是最接近的拟合的脚本104,并且预测格式化模块54将其传送以显示给用户。
根据另一备选方案,预测格式化模块54可以替代地使用点系统来确定哪个脚本104产生在与目标列76中的元素相比时满足所选择的匹配标准的输出。例如,可以基于属于目标列76的输出的数目以及它们对目标列76中的元素的覆盖范围来将点分配给输出。可以选择具有最多点的输出作为建议的连接操作62。
针对所生成的输出在与目标列76的元素相比时满足所选择的匹配标准的脚本104,预测格式化模块54传送由该脚本104生成的输出以在显示设备96上的图形用户界面68中显示。排序较低的脚本的输出也可以作为建议的连接操作62被传送以显示给用户。响应于来自用户的接受脚本104的输入信号,其中输出被传送以在建议的连接操作62中显示,预测格式化模块54至少部分地通过对源列74执行所传送的脚本82来对两个表44执行连接操作。
虽然连接两个表44的过程可以由用户启动,但是应用程序86也可以在没有来自用户的提示的情况下计算表44的连接潜力,并且在计算出两个或更多个表44之间的连接潜力很高时传送连接建议62以显示给用户。如果这样做,则应用程序86可以使用包含关于表44的元素和这些元素的格式的信息的简档。使用这些简档,应用程序86可以确定两个或更多个表44之间的相似性水平并且确定成功连接操作的可能性。
预测格式化模块54可以被配置为针对第一表40中的每列和第二表42中的每列生成简档。每列的简档可以包括列的元素的最小字符串长度、最大字符串长度、平均字符串长度、数据类型和列的元素内包含的分隔符中的一项或多项。预测格式化模块54可以使用第一表40中的每列的简档和第二表42中的每列的简档来确定列之间的成功连接操作的概率。
使用列简档来确定列之间的成功连接操作的概率可以允许预测格式化模块54更快地计算表44的连接潜力。通过比较列简档,预测格式化模块54可以排除具有低连接潜力的列对,而不必确定这些列的元素之间的最长子字符串匹配。由于列简档与每个列对的元素之间的最长子字符串匹配相比可以更快地被确定和比较,因此在确定列之间的成功连接操作的概率时,列简档的使用可以节省计算时间。
下面提供使用列简档来确定两个列之间的成功连接操作的概率的两个示例。在第一示例中,列简档被用来确定两个列之间的成功连接操作的概率很低,即使多个经转换的字符串对中的具有最长子字符串匹配的那对是从这两个列的元素产生的。在第二示例中,列简档被用来确定两个列之间的成功连接操作的概率很高,即使多个经转换的字符串对中的具有最长子字符串匹配的那对不是从这两个列的元素产生的。
在第一示例中,第一表40的列是姓名(字符串)和地址。第二表42的列是姓名(字符串)和电话号码。表44如下。
姓名(字符串) 电话号码
'Jacob E.Burnside' 555-337-1220
'Jane P.Smith' 555-942-0306
在该示例中,如果每个表的每列的元素被转换为经转换的字符串,则最长子字符串匹配是在经转换的字符串“511E.Burnside”与“Jacob E.Burnside”之间。然而,使用第一表40的地址列和第二表42的姓名(字符串)列执行的连接操作将不会成功。
在预测格式化模块54确定两个经转换的字符串之间的最长子字符串匹配之前,预测格式化模块54针对每列生成列简档。每列的简档可以包括列的元素的最小字符串长度、最大字符串长度、平均字符串长度、数据类型和列的元素内包含的分隔符中的一项或多项。在该示例中,列的简档至少包括列的元素的数据类型和列的元素内包含的分隔符。
第一表40的地址列的元素和第二表42的姓名(字符串)列的元素不具有相同的数据类型。第一表40的地址列的元素具有地址数据类型,而姓名(字符串)列的元素具有字符串数据类型。
此外,两个列的元素不包含相同的分隔符。第一表40的地址列的元素各自包含两个空格和一个句点。在地址列的一个元素中,句点出现在元素的末尾,而在地址列的另一元素中,它出现在第二空格之前。另一方面,在第二表42的姓名(字符串)列中,两个元素都以左单引号开头并且以右单引号结束。姓名(字符串)列的每个元素都包含两个空格和一个句点,但是句点都出现在姓名(字符串)列的两个元素中的第二空格之前,而不是仅出现在一个元素中。
由于第一表40的地址列的简档与第二表42的姓名(字符串)列的简档的不相似性,预测格式化模块54可以确定两个列之间的成功连接操作的概率很低,而无需确定每个列对的两个元素之间的最长子字符串匹配。预测格式化模块54可以通过确定第一表40的地址列与第二表42的姓名(字符串)列之间的成功连接操作的概率很低来节省计算时间。
在第二示例中,第一表40的列是事件编号(整数)和日期,并且第二表42的列是日期和时间。在第一表40的日期列中,分隔符是连字符,而在第二表42的日期列中,分隔符是斜杠。表如下。
事件编号(整数) 日期
1 10-03-16
2 10-04-16
日期 时间
10/03/16 12:10
10/04/16 11:04
在该示例中,如果每列的元素被转换为经转换的字符串,则从第一表40中的元素和第二表42中的元素生成的七个经转换的字符串对并列为最长子字符串匹配(长度为两个字符)。示例编程算法80生成和测试针对七个经转换的字符串对的脚本82可能花费比理想的计算时间更长的时间。
预测格式化模块54可以不将七个输入输出选择对100输入到示例编程算法80中,而是通过使用列简档来确定每个列对的成功连接操作的概率以减少输入输出选择对100的数目。在该示例中,列简档至少包括列的元素的数据类型、元素内包含的分隔符和在元素被转换为经转换的字符串时的元素平均字符串长度。
第一表40的日期列的元素和第二表42的日期列的元素都具有日期数据类型。当第一表40的日期列的元素和第二表42的日期列的元素被转换为经转换的字符串时,它们也具有相同的平均字符串长度。此外,从第一表40的日期列的元素和第二表42的日期列的元素生成的经转换的字符串都包含作为其第三和第六元素的分隔符。第一表40的日期列的简档与第二表42的日期列的简档之间的这三个相似性指示两个列之间的成功连接操作的概率很高。
预测格式化模块54可以以编程方式预先计算一个或多个可能的连接操作。可能的连接操作可以在没有来自用户的输入的情况下被计算。如果成功连接操作的概率超过某个预定阈值,则预测格式化模块54可以传送连接建议62以显示给用户。如果预测格式化模块54执行连接操作,则所执行的连接操作可以是预测格式化模块54以编程方式预先计算的一个或多个可能的连接操作中的一个连接操作。
计算设备90可以包括显示用户界面68的显示器96,用户界面68包括可能的连接操作62。计算设备90还可以包括用户输入设备98,用户输入设备98被配置为接收指示所选择的连接操作的连接选择输入。预测格式化模块54可以在接收到连接选择输入时执行所选择的连接操作。
下面提供本公开的示例使用。在该示例中,预测格式化模块54连接关于班级中的学生的信息的两个表44。第一表40的列是名册号(字符串)、人名(字符串)和DOB(日期)。第二表42的列是名册号(整数)、地址和城市(字符串)。在第一表40中,名册号是字符串,而在第二表42中它是整数。第一表40中的名册号(字符串)列是源列74,并且第二表42中的名册号(整数)列是目标列76。
名册号(字符串) 人名(字符串) DOB(日期)
'1' 'John Smith' 01/01/1980
'2' 'Jane Smith' 02/01/1980
尽管两个列中的条目之间的格式不同,但是预测格式化模块54能够通过将源列74的元素和目标列76的元素转换为经转换的字符串来连接表44。然后,预测格式化模块54可以确定从源列74的元素产生的经转换的字符串包含与从目标列76的元素产生的经转换的字符串公共的子字符串。预测格式化模块54还可以确定经转换的字符串共享增加成功连接操作的概率的其他特性,诸如字符串长度。
预测格式化模块54从第一表40和第二表42生成经连接的表66。当表44被连接时,预测格式化模块54从第一表40的行和具有相同名册号的第二表42的行形成经连接的表66的行。经连接的表66包括其中名册号是整数的列和其中名册号是字符串的列。通过包括具有两种格式的名册号列,在预测格式化模块54生成经连接的表66之后,预测格式化模块54给用户选择在操纵或引用经连接的表66时使用哪种数据类型。
图4图示了用于与计算设备90一起使用以计算第一表40与第二表42之间的连接潜力的方法。在该方法中,计算设备90可以检测用于计算第一表40与第二表42之间的连接潜力的触发条件50。检测触发条件50可以引起计算设备90退出外部循环48并且进入预测格式化模块54。触发条件可以如上所述。一旦计算设备90进入预测格式化模块54,它就选择至少一个元素对。每个所选择的对包括第一表40的源列74中的元素和第二表42的目标列76中的元素。
针对每个所选择的元素对,预测格式化模块54检测对中的元素具有不同格式。如果元素不具有不同格式,则预测格式化模块54可以选择另一元素对并且确定它们是否具有不同格式。如果元素具有不同格式,则针对至少一个元素,预测格式化模块54应用预定映射88,预定映射88从该对中的第一元素的第一格式到由预定映射88定义的公共格式。预测格式化模块54然后修改至少一个元素以使其具有与另一元素相同的格式。预测格式化模块54以编程方式生成示例78,该示例78包括在至少一个元素已被修改之后的该元素对。
当预测格式化模块54修改至少一个元素以使其具有与另一元素相同的格式时,它可以至少部分地通过将该元素对转换为经转换的字符串对来进行修改。预测格式化模块54可以确定多个对中的针对其所生成的输出在与目标列76中的数据相比时满足所选择的匹配标准的一对。这样的对可以至少部分地通过确定与其他对相比具有最长子字符串匹配的经转换的字符串对来确定。
可以使用公共格式映射来修改至少一个元素以使其具有与另一元素相同的格式。公共格式映射可以将源列74中的元素的格式和目标列76中的元素的格式作为输入,并且将这些输入映射到公共格式。公共格式可以与源列74中的元素的格式和目标列76中的元素的格式中的一者或两者相同或不同。
针对每个示例,计算设备90基于该示例以编程方式生成脚本82,该脚本82在被执行于所选择的元素中的一个元素上时产生与示例78的所选择的元素中的另一元素一致的值。根据本公开的一个实施例,可以通过图3所示和以上描述的方法使用示例编程算法80来生成脚本82。针对由示例编程算法80生成的每个脚本82,预测格式化模块54可以将该脚本应用于源列74中的其他元素并且确定由该脚本82生成的输出在目标列76中。
一旦由示例编程算法80生成的所有脚本82都已经被应用于源列74,则预测格式化模块54然后标识生成与目标列76最相似的输出的脚本104。针对每个脚本,示例编程算法80可以确定目标列76的元素的相对覆盖范围、脚本82的与目标列76的元素相匹配的输出的比例。针对所生成的输出在与目标列76的元素相比时满足所选择的匹配标准的脚本104,计算设备90传送由该脚本生成的输出以在显示设备96上显示。计算设备90传送输出以作为图形用户界面68的一部分使用显示器96来显示。响应于用户接受所传送的脚本104,预测格式化模块54至少部分地通过对源列74执行所传送的脚本104来对两个表44执行连接操作。
预测格式化模块54可以针对第一表40中的每列和第二表42中的每列生成简档。每列的简档可以包括列的元素的最小字符串长度、最大字符串长度、平均字符串长度、数据类型和列的元素内包含的分隔符中的一项或多项。第一表40中的每列的简档和第二表42中的每列的简档可以被用来确定列之间的成功连接操作的概率。
在一个示例中,预测格式化模块54可以以编程方式预先计算一个或多个可能的连接操作。可能的连接操作可以在没有来自用户的输入的情况下被计算。如果成功连接操作的概率超过某个预定阈值,则预测格式化模块54可以向用户传送连接建议62。如果预测格式化模块54执行连接操作,则所执行的连接操作可以是预测格式化模块54以编程方式预先计算的一个或多个可能的连接操作中的一个连接操作。
图5图示了被配置为执行计算两个表44之间的连接潜力的应用程序86的示例计算设备90。计算设备可以包括显示图形用户界面68的显示器96。图形用户界面68可以至少显示第一表40和第二表42。图形用户界面68还可以显示用户可以向其中输入用户输入示例70以供示例编程算法80使用的字段。用户可以通过选择输入输出对100并且修改该对中的至少一个元素以产生输入输出示例对102来输入用户输入示例70。使用输入输出选择对100和输入输出示例对102,示例编程算法80可以产生至少一个脚本82,该脚本82在被应用于输入输出选择对100时产生输入输出示例对102。
一旦预测格式化模块54生成用以连接表44的至少一个脚本82,图形用户界面68就可以将由至少一个脚本82输出的经连接的表66作为建议的连接操作62显示给用户。图形用户界面可以指示用户尚未接受或拒绝经连接的表66,例如通过以不同的颜色显示表66。图形用户界面68还可以显示用于用户接受或拒绝连接操作的提示。如果用户接受连接操作,则预测格式化模块54可以执行连接操作。
在一些实施例中,本文中描述的方法和过程可以被绑定到一个或多个计算设备的计算系统。特别地,这样的方法和过程可以被实现为计算机应用程序或服务、应用编程接口(API)、库和/或其他计算机程序产品。
图6示意性地示出了可以实施上述方法和过程中的一个或多个的计算系统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可以包括涵盖随机存取存储器的物理设备。易失性存储器903通常由逻辑处理器902用来在软件指令的处理期间临时存储信息。应当理解,当切断易失性存储器903的电源时,易失性存储器903通常不继续存储指令。
逻辑处理器902、易失性存储器903和非易失性存储设备904的各方面可以被一起集成到一个或多个硬件逻辑组件中。例如,这样的硬件逻辑组件可以包括现场可编程门阵列(FPGA)、程序和应用特定的集成电路(PASIC/ASIC)、程序和应用特定的标准产品(PSSP/ASSP)、片上系统(SOC)和复杂可编程逻辑器件(CPLD)。
术语“模块”、“程序”和“引擎”可以被用来描述通常由处理器以软件实现以使用易失性存储器的各部分来执行特定功能的计算系统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.根据权利要求1所述的计算设备,其中所述处理器被配置为:至少部分地通过确定所生成的所述输出中的大多数元素属于所述目标列以及通过确定所述目标列中的所述元素的相对覆盖范围,来确定所述多个对中的针对其所生成的所述输出在与所述目标列中的所述元素相比时满足所选择的匹配标准的一对。
4.根据权利要求1所述的计算设备,其中所述处理器被配置为针对所述第一表中的每列和所述第二表中的每列生成简档,其中每列的所述简档包括所述列的所述元素的最小字符串长度、最大字符串长度、平均字符串长度、数据类型和所述列的所述元素内包含的分隔符中的一项或多项。
5.根据权利要求4所述的计算设备,其中所述处理器被配置为使用所述第一表中的每列的所述简档和所述第二表中的每列的所述简档来确定所述列之间的成功连接操作的概率。
6.根据权利要求1所述的计算设备,其中所述处理器被配置为以编程方式预先计算一个或多个可能的连接操作,并且其中所执行的所述连接操作是所述一个或多个可能的连接操作中的一个连接操作。
7.根据权利要求6所述的计算设备,还包括:
显示器,所述显示器显示用户界面,所述用户界面包括所述可能的连接操作;以及
用户输入设备,所述用户输入设备被配置为接收指示所选择的连接操作的连接选择输入;
其中所述处理器被配置为在接收到所述连接选择输入时执行所选择的所述连接操作。
8.根据权利要求1所述的计算设备,其中所述处理器被配置为使用示例编程算法以编程方式生成所述脚本,其中所述示例编程算法被配置为:
接收输入输出示例对;以及
合成脚本,所述脚本在被执行于所述示例对的所述输入上时,产生所述示例对的所述输出。
9.根据权利要求8所述的计算设备,其中所述输入输出示例对由用户输入或者至少通过以下方式以编程方式被确定:
针对所述第一表的所述源列中的至少一个元素,将所述元素转换为经转换的字符串;
针对所述第二表的所述目标列中的至少一个元素,将所述元素转换为经转换的字符串;
至少部分地通过确定包括所述源列中的经转换的所述字符串和所述目标列中的具有最长子字符串匹配的经转换的所述字符串的对,确定所述目标列中的在与所述源列中的经转换的所述字符串相比时满足所选择的匹配标准的经转换的所述字符串。
10.一种用于与计算设备一起使用以用于计算第一表与第二表之间的连接潜力的方法,包括:
选择至少一个元素对,其中每对包括所述第一表的源列中的元素和所述第二表的目标列中的元素;
针对每对:
检测所述对中的所述元素具有不同格式;
针对所述元素中的至少一个元素,应用预定映射,所述预定映射从所述对中的第一元素的第一格式到由所述预定映射定义的公共格式;
修改所述元素中的至少一个元素以使得所述至少一个元素具有与另一元素相同的格式以促进生成所述源列与所述目标列之间的对应匹配;以及
生成包括在所述元素中的至少一个元素已被修改之后的所述元素对的示例;
针对每个示例,基于所述示例以编程方式生成脚本,所述脚本在被执行于所选择的所述元素中的一个元素上时,产生与所述示例的所选择的所述元素中的所述另一元素一致的值;
针对每个脚本,将所述脚本应用于所述源列中的其他元素,并且确定由所述脚本生成的输出在所述目标列中;
针对所生成的所述输出在与所述目标列的所述元素相比时满足所选择的匹配标准的所述脚本,传送由所述脚本生成的所述输出以用于在显示设备上显示;以及
响应于接受所传送的所述脚本的输入信号,至少部分地通过在所述源列上执行所传送的所述脚本来执行两个所述表上的连接操作。
11.根据权利要求10所述的方法,其中至少部分地通过将所述元素对转换为经转换的字符串对来修改所述元素中的所述至少一个元素,以使得所述至少一个元素具有与所述另一元素相同的格式。
12.根据权利要求11所述的方法,其中至少部分地通过确定所生成的所述输出中的大多数元素属于所述目标列以及通过确定所述目标列中的所述元素的相对覆盖范围,来确定所述多个对中的针对其所生成的所述输出在与所述目标列中的数据相比时满足所选择的匹配标准的一对。
13.根据权利要求10所述的方法,其中使用公共格式映射修改所述元素中的至少一个元素以使得所述至少一个元素具有与所述另一元素相同的格式,其中所述公共格式映射将所述源列中的所述元素的所述格式和所述目标列中的所述元素的所述格式作为输入并且将这些输入映射到公共格式。
14.根据权利要求10所述的方法,其中针对所述第一表中的每列和所述第二表中的每列生成简档,其中每列的所述简档包括所述列的所述元素的最小字符串长度、最大字符串长度、平均字符串长度、数据类型和所述列的所述元素内包含的分隔符中的一项或多项,并且其中所述第一表中的每列的所述简档和所述第二表中的每列的所述简档被用来确定所述列之间的成功连接操作的概率。
15.根据权利要求10所述的方法,其中一个或多个可能的连接操作以编程方式被预先计算,并且其中所执行的所述连接操作是所述一个或多个可能的连接操作中的一个连接操作。
CN201780062937.3A 2016-10-20 2017-10-13 使用通过示例的格式修改的连接 Active CN109804363B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US15/299,363 2016-10-20
US15/299,363 US10546055B2 (en) 2016-10-20 2016-10-20 Join with format modification by example
PCT/US2017/056443 WO2018075336A1 (en) 2016-10-20 2017-10-13 Join with format modification by example

Publications (2)

Publication Number Publication Date
CN109804363A true CN109804363A (zh) 2019-05-24
CN109804363B CN109804363B (zh) 2023-05-30

Family

ID=60183145

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201780062937.3A Active CN109804363B (zh) 2016-10-20 2017-10-13 使用通过示例的格式修改的连接

Country Status (4)

Country Link
US (1) US10546055B2 (zh)
EP (1) EP3529715B1 (zh)
CN (1) CN109804363B (zh)
WO (1) WO2018075336A1 (zh)

Families Citing this family (12)

* 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
US20180143957A1 (en) * 2016-11-18 2018-05-24 Business Objects Software Limited Using format patterns for numeric formatting
JP7060797B2 (ja) * 2018-05-28 2022-04-27 富士通株式会社 テーブル生成方法、テーブル生成装置およびテーブル生成プログラム
US11036478B2 (en) * 2019-08-07 2021-06-15 Sap Se Automated determination of transformation objects
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
US11347483B2 (en) * 2020-10-13 2022-05-31 Adp, Inc. Linking stages in process flows with machine learning
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

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055369A1 (en) * 2003-09-10 2005-03-10 Alexander Gorelik Method and apparatus for semantic discovery and mapping between data sources
CN1877520A (zh) * 2005-06-10 2006-12-13 微软公司 通过脚本的成员资格确定方法和系统
CN101258490A (zh) * 2005-09-09 2008-09-03 微软公司 指定、设置和发现电子表格文档的参数
CN101258489A (zh) * 2005-09-09 2008-09-03 微软公司 用于文档格式化的快速样式
CN101526919A (zh) * 2009-04-29 2009-09-09 福建星网锐捷网络有限公司 生成脚本文件对Web应用软件进行测试的方法及装置
US20090327208A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
CN103455381A (zh) * 2012-05-29 2013-12-18 国际商业机器公司 用于将源软件组件的源对象的表示解序列化为目标软件组件的方法和系统
US20140164407A1 (en) * 2012-12-10 2014-06-12 International Business Machines Corporation Electronic document source ingestion for natural language processing systems

Family Cites Families (30)

* 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
US10791050B2 (en) 2012-12-13 2020-09-29 Level 3 Communications, Llc Geographic location determination in a content delivery framework
US20140344399A1 (en) 2012-12-13 2014-11-20 Level 3 Communications, Llc Origin Server-Side Channel 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
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
US11227104B2 (en) 2014-05-11 2022-01-18 Informatica Llc Composite data creation with refinement suggestions
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

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050055369A1 (en) * 2003-09-10 2005-03-10 Alexander Gorelik Method and apparatus for semantic discovery and mapping between data sources
CN1877520A (zh) * 2005-06-10 2006-12-13 微软公司 通过脚本的成员资格确定方法和系统
CN101258490A (zh) * 2005-09-09 2008-09-03 微软公司 指定、设置和发现电子表格文档的参数
CN101258489A (zh) * 2005-09-09 2008-09-03 微软公司 用于文档格式化的快速样式
US20090327208A1 (en) * 2008-06-30 2009-12-31 International Business Machines Corporation Discovering transformations applied to a source table to generate a target table
CN101526919A (zh) * 2009-04-29 2009-09-09 福建星网锐捷网络有限公司 生成脚本文件对Web应用软件进行测试的方法及装置
CN103455381A (zh) * 2012-05-29 2013-12-18 国际商业机器公司 用于将源软件组件的源对象的表示解序列化为目标软件组件的方法和系统
US20140164407A1 (en) * 2012-12-10 2014-06-12 International Business Machines Corporation Electronic document source ingestion for natural language processing systems

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
文娟,薛永生: "数据仓库中的一种提高多表连接效率的有效方法", 《计算机研究与发展》 *
梁锐城: "关系数据库连接的有效处理方法", 《计算机工程》 *
钟智昊等: "正则引擎的匹配原理及简单实现", 《工业控制计算机》 *

Also Published As

Publication number Publication date
US10546055B2 (en) 2020-01-28
EP3529715A1 (en) 2019-08-28
EP3529715B1 (en) 2022-02-23
CN109804363B (zh) 2023-05-30
US20180113848A1 (en) 2018-04-26
WO2018075336A1 (en) 2018-04-26

Similar Documents

Publication Publication Date Title
CN109804363A (zh) 使用通过示例的格式修改的连接
US11574116B2 (en) Apparatus and method for providing summarized information using an artificial intelligence model
CN109844729A (zh) 通过示例利用预测性粒度修改来合并
CN106462399B (zh) 代码推荐
US20190122135A1 (en) Prediction characterization for black box machine learning models
US20200089769A1 (en) Consumer Insights Analysis Using Word Embeddings
US8370808B2 (en) Apparatus and a method for generating a test case
US20170060931A1 (en) Intelligent data munging
US10685183B1 (en) Consumer insights analysis using word embeddings
US10970900B2 (en) Electronic apparatus and controlling method thereof
US20170337449A1 (en) Program, system, and method for determining similarity of objects
US10558759B1 (en) Consumer insights analysis using word embeddings
US11675928B2 (en) Electronic device for obfuscating and decoding data and method for controlling same
US11551818B2 (en) Computer system and method of presenting information related to basis of predicted value output by predictor
US10853580B1 (en) Generation of text classifier training data
US10803248B1 (en) Consumer insights analysis using word embeddings
CN113408558B (zh) 用于模型验证的方法、装置、设备和介质
US11403550B2 (en) Classifier
US11983105B2 (en) Systems and methods for generating and executing a test case plan for a software product
US20190250975A1 (en) Tree-based anomaly detection
CN111902812A (zh) 电子装置及其控制方法
CN110059799A (zh) 包含中间层背景的神经网络的生成
US10685184B1 (en) Consumer insights analysis using entity and attribute word embeddings
AU2015204339A1 (en) Information processing apparatus and information processing program
CN110348581B (zh) 用户特征群中用户特征寻优方法、装置、介质及电子设备

Legal Events

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