利用学习程序用于数据操纵的制作方法

文档序号:13350718阅读:163来源:国知局
利用学习程序用于数据操纵的制作方法



背景技术:

系统和应用的大多数用户不能开发用于执行数据操纵处理操作的程序代码。因此,用户依赖于程序员/开发人员编写代码来完成这样的处理。程序员通常开发面向域特定的并被设计为利用标注的内容进行工作的编程解决方案。然而,用户可访问的大多数信息都是非结构化的。本申请针对关于这种一般技术环境。



技术实现要素:

本公开的示例描述了利用学习程序用于数据操纵。通过应用将包括未标注内容的信息与多个存储的模板进行比较的机器学习处理来检测与该信息相关联的模板。基于所检测的模板来确定学习程序池。从包括多个学习程序的学习程序池中检测学习程序。从该信息中提取的数据是基于学习程序的应用被操作的。还描述了其它示例。

提供本发明内容以简化的形式介绍概念的选择,概念在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或基本特征,也不旨在用于限制所要求保护的主题的范围。示例的其他方面、特征和/或优点将部分地在下面的描述中阐述,并且部分地将从描述中显而易见,或者可以通过对本公开的实践来了解。

附图说明

参考以下附图描述非限制性和非穷尽性示例。

图1示出了如本文所述的用于学习程序的生成的示例系统的概述。

图2示出了如本文所述的用于利用所创建的学习程序的示例系统的概述。

图3a示出了如本文所述的用于根据信息的模板检测的示例处理流程的概述。

图3b示出了如本文所述的基于模板检测来确定学习程序的示例处理流程的概述。

图4示出了如本文所述的利用学习程序的示例方法。

图5是示出了可以利用其来实践本公开的方面的计算设备的示例的框图。

图6a和6b是可以利用其来实践本公开的方面的移动计算设备的简化框图。

图7是可以在其中实践本公开的方面的分布式计算系统的简化框图。

具体实施方式

本公开的系统和/或服务提供学习程序创建和可用的学习程序的利用,用以执行数据操纵操作,诸如信息标记和提取以及其他示例。本公开的系统/服务通过基于示例的学习来根据用户输入操作创建学习程序。学习程序是被创建用于基于由用户执行的示例操作来执行指定任务的操作或指令序列。在示例中,用户示出了如何执行特定操作一次的系统/服务,并且本公开的系统/服务能够自动生成用于执行任务或类似于该任务的操作的学习程序。任务是可执行的操作。任务的示例包括但不限于:信息添加、信息提取、信息审查、信息检索和信息处理以及其他示例。可以针对系统/服务的用户利用所创建的学习程序用于数据操纵处理。

作为许多示例中的一个,用户可能希望从护照文件或护照的扫描副本中提取信息。在这种情况下,用户可以标注护照持有人的姓名和护照号的位置,使用本公开的用户接口来添加这些信息。学习程序可以由系统/服务自动创建,用于添加和提取护照信息。每当呈现新的文档、图像等时,本公开的系统/服务识别用户正在使用护照文件,并且可以自动检测用于应用的学习程序,执行操作来提取护照信息。例如,当护照的护照文件/扫描副本被打开或护照信息在网页上被查看时,本公开的系统/服务可以自动检测并应用执行诸如提取针对用户的护照信息的数据操纵的学习程序。如果以前没有针对诸如护照号码提取的某个任务创建学习程序,则与本公开相关联的系统/服务的用户接口可以根据用户提供的示例自动创建学习程序。一旦创建了学习程序,它可以被本公开的系统/服务存储和利用以应用于来由创建程序的用户以及系统/服务的其他用户执行类似的任务或操作。在示例中,系统/服务创建并维护这种学习程序的大型存储库,其可以基于正被查看、处理等的文档/文件/图像等而被智能地应用。可以利用在本公开内容中描述的数据操纵示例的应用/服务和/或应用领域包括但不限于:数据挖掘、信息发现领域(例如,合法的ediscovery服务)、数据分析(例如,诸如用于非结构化大数据的文本分析的任何数据分析)、日志评估(例如,网络日志、查询日志、遥测数据、系统日志、错误日志等)、数据丢失防护、和数据泄漏防护以其它示例。本领域技术人员将认识到,本公开中描述的示例可以适用于任何应用领域或服务。

因此,本公开提供多种技术效果,包括但不限于:根据基于示例的操作的自动程序生成,最小化对开发人员/程序员编写定制程序以执行任务的需要,减少完成任务(例如,手动编程用于任务处理的代码)所需时间,提高任务完成/学习程序创建中的处理效率,所创建的学习程序与正在查看/处理的信息/数据之间的相似性的检测,创建和利用学习程序的可扩展性,提高应用的效率和可用性(包括处理任何类型内容(例如,结构化、半结构化、非结构化、标注、未标注等)的能力),以及控制用于学习程序创建和利用的用户交互,以及其他示例。

图1示出了如本文所述的用于学习程序的生成的示例系统的概述。呈现的示例系统100是相互依赖的组件的组合,组件相互作用以形成用于基于用户示例操作的学习程序生成的集成的整体。系统的组件可以是硬件组件或,或在系统的硬件组件上实现和/或由系统的硬件组件执行的软件。在示例中,系统100可以包括硬件组件(例如,用于执行/运行操作系统(os)的asic、处理器等)和在硬件上运行的软件组件(例如应用、应用编程接口、模块、虚拟机、运行时间库等)中的任意一个。在一个示例中,示例系统100可以提供环境用于软件组件运行、遵守针对操作设置的约束、并利用系统100的资源或设施,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能电话/电话、平板计算机)和/或任何其它电子设备的处理设备上运行。作为处理设备操作环境的示例,参考图5-7的操作环境。在其他示例中,本文公开的系统的组件可以分布在多个设备上。例如,可以在客户端设备(例如,处理设备)上输入输入,并且可以从诸如一个或多个服务器设备的网络中的其他设备处理或访问信息。

作为一个示例,系统100包括学习组件102、用户接口组件104和学习程序池106,每个均具有一个或多个附加组件。本领域技术人员将理解,诸如系统100的系统的规模可以变化并且可以包括比图1中描述的更多或更少的组件。在一些示例中,系统100的组件之间的接口可以远程进行,例如其中系统100的组件可以分布在分布式网络的一个或多个设备上。

数据学习组件102被配置为控制用于基于示例根据输入(例如,信息)操纵数据的学习程序的合成和执行。学习组件使得能够从各种输入类型(例如,未标注的内容)中提取结构化数据(例如,输出数据模式的实例)。此外,学习组件102支持跨越不同输入/输入类型的统一的用户交互处理。示例输入包括但不限于:任何类型的标注内容、未标注内容、半结构化内容、邮件数据(例如,电子邮件消息)、文本/移动消息(例如,sms)或通知、对话、日志文件、社交馈送数据(例如rss馈送)、文件数据(例如文本文件、日志文件、视频文件、文字处理器文档)、电子表格、网页、固定版式文档(例如便携式文档格式(pdf)文档)、音频数据、图像数据/文件(例如,照片、扫描图像、医疗处方、优惠/广告、传单等)、法律文档、印刷文档和目录以及其他示例。这样的输入可以组合模型和视图,这可以使数据能够被组织(例如,可能是分层的);然而,通常难以从这些类型的输入文档中提取数据用于进一步的操纵或查询。

作为示例,与传统技术相比,学习组件102导致用于对输入的数据执行数据提取任务的改进的用户效率。例如,用户不需要学习如何创建程序用以从输入中提取数据。此外,用户不需要花费时间来生成程序用以从输入中提取数据。此外,用户不需要理解输入的底层格式化细节或呈现逻辑。此外,与传统技术相比,用户交互性能可以得到改善,因为用户可以经由统一的用户接口(例如,用户接口组件104)提供示例,并且可以基于这些示例来合成并执行用于从输入提取数据的程序。

学习组件102与用户接口组件104接口以与用户交互并引导用户创建和/或利用学习程序。学习组件102可以使用由用户提供的示例来从输入中提取数据。在一个示例中,学习组件102(其中用户由用户接口组件104引导)处理指示根据输入信息的数据操纵的示例。例如,示例可以指定要从输入信息中添加和/或提取的各种字段。数据操纵可以涉及对输入执行的任何操作,包括但不限于:审查、选择、插入、删除、修改、更新、添加、提取、查看、复制、剪切、粘贴、通知和组织,以及其他示例。然而,本领域技术人员将认识到,本公开不限于这样的数据操纵示例。可以针对任何类型的操作处理创建和利用学习程序。

此外,学习组件102可以被配置为使用结构和序列构造将由示例指定的字段关联到分层组织中。例如,用户接口组件104可以被配置为接收学习组件102定义为输出数据模式的用户输入。输出数据模式包括结构和序列构造的分层组合,例如输入信息的操纵数据的集合。如上所述,可以从用户示例操作自动地生成学习程序。也就是说,学习组件102可以监视经由用户接口组件104输入的用户处理操作,并且应用合成处理以从示例操作自动生成学习程序。由学习组件102接收的示例可以包括一个或多个正面示例和/或一个或多个反面示例。例如,可以针对输出数据模式的每个结构接收至少一个示例。所接收的示例可以包括在输入文档102上的高亮区域(例如,二维区域);这种高亮区域可以指示要提取的字段或围绕相关字段的结构边界(例如,记录边界)。在一个示例中,用户可以示出要从一个或多个电子邮件消息中提取的系统100数据。示例操作是为完成用户的数据操纵目标而执行的任何操作。例如,示例操作包括但不限于诸如以下各项的动作:信息选择、形状选择、图像选择、套索、语音输入、触摸输入(例如拖动、轻拂、点击)和设备输入(例如,键盘、鼠标等)以及其他示例。

在一个示例中,学习程序可以用针对输入的类型提供适当抽象的域特定语言(dsl)来合成(例如,创建)。此外,学习程序可以对输入或所检测的类似输入执行,以提取输出数据模式的实例。例如,用户可以从银行接收每月银行警报/通知。用户可以创建从警报中提取日期和帐户金额的程序。在该示例中,学习组件102可以创建用于从银行警报中的数据提取的学习程序,并且当接收到未来的银行警报时,学习组件可以智能地检测(经由机器学习处理)银行警报并提取数据(例如,日期和金额)以呈现给用户。学习组件102可以使用户能够设置所创建的程序何时可以运行以及何时更新所创建的程序。例如,如果用户在接收到每月银行警报之后希望也想要从银行警报中提取借记信息,则学习组件102可以使所创建的程序可修改,或者可以智能地创建新版本的学习程序,以存储在学习程序池组件206(以下称为“学习程序池”)中。

学习组件102可配置为执行程序合成处理以创建学习程序。在一个示例中,程序合成处理可以包括对于预定义库中的核心运算子的归纳合成处理。核心运算子的示例包括但不限于:映射、过滤、合并、配对、删除、编辑和组织以及其他示例。例如,通过对核心运算子执行归纳合成处理,可以在dsl中针对输入类型创建学习程序。此外,dsl可以根据核心运算子的预定义库构建。例如,如果输入是文本文件,则可以针对文本文件构建dsl。因此,学习组件102与常规的域特定的合成器不同,因为不需要开发专门的程序合成处理算法,从而减少与针对给定的dsl创建归纳合成器相关联的时间和精力。因此,系统100的开发人员可以定义具有足够表现力的dsl,以提供适当的抽象用于根据输入的数据操纵和从由核心库提供的运算子中构建。因此,不需要开发专门的程序综合处理算法来创建学习程序。

用户接口组件104是用于系统100与用户交互以用于学习程序的创建和应用/利用的接口。在一个示例中,用户接口组件104可以被配置为生成图形表示,用于用户与系统100交互,系统100包括但不限于操作系统、应用、模块、插件/附加件、和应用命令控制以及其他示例。例如,在查看输入时,输入的图形表示内的字段或结构边界可被高亮以向学习组件102提供示例。在一个示例中,用户接口组件104独立于输入的底层类型。系统100支持的用户接口跨越不同的输入类型可以是均匀的。在示例中,用户接口组件102能够通过多种类型的输入与用户交互。例如,用户接口组件102可以(经由与学习组件102的通信)识别数据操纵输入/操作处理以及用于学习程序的创建和利用的命令/查询(例如,语音或自然语言命令)。

可以预期,由用户接口组件104接收的示例可以从系统100的用户接收(例如,用户经由输入设备提供)。在一个示例中,通过用户接口组件104接收的示例或处理动作/操作可以从客户端计算设备经由与客户端计算设备相关联的输入设备和网络连接发送,其中数据可以传送到在诸如服务器的另一处理设备上操作的系统100。用户接口组件104能够通过包括但不限于触摸输入、设备输入和语音输入以及其他示例的任何形式与用户接口。例如,用户接口组件104提供用户可以在其中指定数据操纵处理/示出对数据操纵处理感兴趣的接口。接口的一个这样的示例可以是示出网页,其中用户可以围绕用户想要提取的信息绘制套索。用户可以示出提取数据的一个或多个这样的示例,并且例如基于示例,系统100开始学习程序以提取数据。接口交互的另一实例可以是用户用自然语言指定,例如“我对这个页面上的看起来是主要联系人的地址的文字感兴趣”。可以生成用户接口的多个不同版本,以供使用和适用于用户接口组件104。

学习程序池106存储用于应用和利用的创建的学习程序。在示例中,学习组件102与学习程序池106(和用户接口组件104)接口,用于学习程序的创建和利用。学习程序池106包括一个或多个存储设备/存储器,用于维护关于所创建的学习程序的信息以及由学习程序池106维护的信息的其他示例。当创建学习程序时,系统100发送要存储在学习程序池106中的学习程序。当学习程序要被利用(例如,用于其他用户的应用)时,系统/服务的组件可以访问学习程序池106以访问所创建的学习程序或更新已经创建的学习程序。

除了维护所创建的学习程序之外,学习程序池106还维护与学习程序相关联的数据,诸如与学习程序相关联的模板信息。模板信息包括与输入或可用于分析输入的版式和/或内容的数据的创建相关联的任何数据。模板信息的示例包括但不限于:数据提取模板、标注的内容(例如,网页模板)、格式化信息、未标注内容的摘要/概要、视频数据、音频数据、文件数据(例如,扫描文件、票据、处方、记录、证书等)和社交馈送以及其他示例。这些信息由学习程序池106连续地收集和更新,用于检测应用于各种输入/输入类型的学习程序。

图2示出了如本文所述的用于利用所创建的学习程序的示例系统200的概述。由系统200利用的所创建的学习程序包括如图1所示的由系统100创建的学习程序。在替代示例中,单个系统(包括一个或多个组件,诸如处理器和/或存储器)可执行分别在系统100和200中描述的处理。此外,系统200可以包括诸如图1的描述中描述的用户接口组件104的用户接口组件。用户接口组件可以用于可用于与用户交互以监视与系统200(例如,处理设备)的交互,包括标识用于学习程序的创建或利用的输入。

呈现的示例系统200是相互依赖的组件的组合,其相互作用以形成用于利用学习程序的集成的整体。系统的组件可以是硬件组件或在系统的硬件组件上实现和/或由系统的硬件组件执行的软件。在示例中,系统200可以包括硬件组件(例如,用于执行/运行操作系统(os))和在硬件上运行的软件组件(例如,应用、应用编程接口、模块、虚拟机、运行时间库等)中的任何组件。在一个示例中,示例系统100可以提供环境用于软件组件运行、遵守针对操作设置的约束、并利用系统100的资源或设施,其中组件可以是在一个或多个处理设备上运行的软件(例如,应用、程序、模块等)。例如,软件(例如,应用、操作指令、模块等)可以在诸如计算机、移动设备(例如,智能电话/电话、平板计算机)和/或任何其它电子设备的处理设备上运行。作为处理设备操作环境的示例,参考图4-7的操作环境。在其他示例中,本文公开的系统的组件可以分布在多个设备上。例如,可以在客户端设备(例如,处理设备)上输入输入,并且可以从诸如一个或多个服务器设备的网络中的其他设备处理或访问信息。

作为一个示例,系统200包括模板/学习程序检测组件202、学习程序应用组件204、和学习程序池106,每个均具有一个或多个附加组件。本领域技术人员将理解,诸如系统200的系统的规模可以变化并且可以包括比图2中描述的更多或更少的组件。在一些示例中,系统200的组件之间的接口可以远程进行,例如其中系统200的组件可以分布在分布式网络的一个或多个设备上。

模板/学习程序检测组件202基于对输入或输入类型的评估来检测用于利用/应用的学习程序。输入在图1的描述中描述。在一个示例中,系统200的模板/学习程序检测组件202(例如,经由用户接口组件)连续地监视用户正在使用或被接收的输入(例如消息/通知等)。也就是说,系统200监视多个源,包括但不限于电子邮件帐户、消息、社交媒体/社交馈送、文件/计算机可读存储设备和数字图书馆以及其他示例,用于学习程序的应用。

在识别输入之后,模板/学习程序检测组件202使用诸如启发式机器学习处理和/或模板处理算法或操作的机器学习处理来将输入的模板或结构映射到模板。在一个示例中,应用模板/指纹模板处理来评估输入的模板(例如,指纹)。模板是可以评估以确定输入(或与输入相关联的信息)的任何数据。在一个示例中,应用机器学习处理来学习与输入相关联的数据(例如,输入中包括的文档和/或内容的格式)。应用于评估模板的机器学习处理的示例包括但不限于用于以下的处理:数据/概念挖掘、数据提取、特征散列、自然语言评估、w-shingling、n-gram/word-gram检测、统计分析、排名(如置信水平值确定)等。

在示例中,输入可以与一个或多个模板相关联。作为示例,图3a示出了用于根据一个或多个输入的模板检测的处理流程300。在示例中,模板/学习程序检测组件202可以检测与输入相关联的模板,并且使输入的模板与多个所存储的模板(例如,模板信息)之一匹配。作为示例,模板/学习程序检测组件202可以使用机器学习处理来确定与模板检测相关联的置信水平,并且基于输入与所存储的模板相关联的可能性来对所存储的模板进行排序。如果没有确定学习程序(例如,未获得用于应用学习程序的置信水平),则模板/学习程序检测组件202可以请求(或者替代地接收请求)学习程序的创建。

此外,模板/学习程序检测组件202基于对输入的模板的检测,将输入的模板与在学习程序池106中存储的一个或多个学习程序相关联。模板/学习程序检测组件202使用诸如启发式机器学习处理和/或模板处理算法或操作的机器学习处理,将模板映射到来自学习程序池106中的学习程序。启发式机器学习处理是可以从与模板相关联的数据中学习以在输入的模板和学习程序的一个或多个模板之间逼近最佳可能的任何处理。模板处理算法/操作是可以评估模板或模板中的数据的数据特征以将输入的模板与学习程序的一个或多个模板相匹配的任何处理。在另一个示例中,通过运行在学习程序池106中的一个或多个学习程序并且使用置信水平来评估具有存储的模板的学习程序的被提取的输出以便将存储模板与学习程序映射的处理来实现模板到学习程序的映射。在一个示例中,学习程序在没有任何预过滤的情况下运行。但是,在其他示例中可以应用过滤。

在示例中,模板可以与一个或多个学习程序相关联。作为示例,图3b示出了用于确定要应用的学习程序的处理流程310。在示例中,作为示例,模板/学习程序检测组件202使用机器学习处理来将学习程序与模板相匹配,以确定与学习程序检测相关联的置信水平和适用的学习程序的排名。如果没有识别出可适用的学习程序(例如,未获得用于应用学习程序的置信水平),则模板/学习程序检测组件202可以请求(或者替代地接收请求)学习程序的创建。

系统200还包括学习程序应用组件204。学习程序应用组件204执行用于数据操纵的一个或多个学习程序。作为示例,学习程序应用组件204可以应用数据操纵处理,提取用于输出的数据。然而,本领域技术人员将认识到,学习程序的应用不限于数据提取。输出是学习程序的应用的任何结果。例如,学习程序应用组件204可以执行包括将提取的数据聚合并导出到提取的值的集合中的操作。在该示例中,输出可以是(例如,在文档、文件、通知等中)提取的值的集合。在至少一个示例中,输出可以被输送以被另一应用或服务使用。作为示例,输出可以被发送到一个或多个数据库,通过连接两个或多个应用的应用管道来输入到另一应用中,或者可以作为数据馈送或富集站点摘要(rss)馈送以及其他示例来呈现。

在示例中,学习程序应用组件204还可以确定如何呈现输出,诸如如何向用户通知内容(例如,即时显示、下载、消息、通知、提醒、电话呼叫等)。例如,系统200可以使得系统200的用户或与系统200相关联的服务能够规定如何呈现输出。呈现的规定可以在学习程序的创建中或通过可能并不特定于学习程序的应用命令控制的使用来发生。

图3a示出了如本文所述的用于根据信息的模板检测的示例处理流程300的概述。图3a中所示的过程300是根据诸如图2中描述的模板/学习程序检测组件202的输入执行模板检测的系统或服务的示例性处理。如图3a所示的输入是前面在系统100和系统200的描述中所述的输入。在一个示例中,输入(例如,一个或多个输入)可以与模板(例如,一个或多个模板)相关联,以使能可应用于输入的学习程序的准确检测。模板检测组件302是被配置为检测与输入相关联的模板的组件(硬件或软件)。作为示例,模板检测组件302可以执行类似于图2所描述的模板/学习程序检测组件202的操作。例如,模板检测组件302应用机器学习处理来识别与输入相关联的模板。基于机器学习处理,模板检测组件302将与输入匹配的一个或多个模板识别为输出(框304)。例如,一个或多个输入可以与一个或多个模板相关联。在一个示例中,输入1和输入3与模板1相关联,输入2与模板2相关联。

图3b示出了如本文所述的基于模板检测来确定学习程序的示例处理流程310的概述。图3b所示的处理310是由利用诸如图2中描述的模板/学习程序检测组件202来执行学习程序的系统或服务的示例性处理。学习程序检测组件312是被配置为基于与输入相关联的模板的检测来确定要应用的学习程序的组件(硬件或者软件)。在一个示例中,模板(例如,一个或多个模板)可以与学习程序(例如,一个或多个学习程序)相关联,以使能可应用于输入的学习程序的准确检测。作为示例,学习程序检测组件312可以执行类似于图2所描述的模板/学习程序检测组件202的操作。例如,学习程序检测组件312应用机器学习处理以基于与输入相关联的模板的检测来识别一个或多个学习程序是否可以应用于输入。基于机器学习处理,学习程序检测组件312将可以用于操纵输入的数据的一个或多个学习程序识别为输出(框314)。在多个学习程序与模板相关联的示例中,学习程序检测组件312可以应用机器学习处理来对学习程序进行排序以用于应用于特定输入。在一个示例中,可以评估学习程序的提取的输出,并且可以确定置信水平以识别学习程序是否可应用于特定输入。在其他示例中,系统/服务可以向用户呈现一个或多个学习程序,以在应用学习程序之前进行选择。

图4示出了如本文所述的利用学习程序的示例方法400。作为示例,方法400可以由诸如图1的系统100和图2的系统200的示例系统执行。在示例中,方法400可以在包括被配置为存储和执行操作、程序或指令的至少一个处理器的设备上执行。然而,方法400不限于这些示例。在其他示例中,方法400可以被用于学习程序生成和管理的应用或服务执行。在至少一个示例中,方法400可以由分布式网络的一个或多个组件(例如,web服务/分布式网络服务(例如,云服务))执行(例如,计算机实现的操作),以利用学习程序进行数据操纵处理。

方法400可以在操作402开始,其中构建或开发学习程序池。学习程序池可以是在图1的描述中详细描述的学习程序池106。在一个示例中,系统/服务的用户可以通过用户接口创建学习程序,其使用户能够通过示例操作来描述数据操纵处理步骤和可应用的数据字段。作为示例,通过提供操作示例,用户可以从输入中提取数据。当创建学习程序时,学习程序被聚合到学习程序池中。系统/服务学习程序并将学习程序与模板(例如,学习程序池的所存储的模板)相关联。在示例中,在学习程序与学习程序池相关联时,识别输入格式和/或输入类型。

在示例用户接口中,可以针对用户显示类似的输入(例如,文档、邮件、文件等)和/或要应用的学习程序。用户接口还提供用于用户将任何识别的输入、模板或学习程序标注为正确或不正确的功能。在示例中,关于输入/模板/学习程序识别的正确性的遥测数据可以被报告并用于适应系统/服务。例如,基于用户输入和/或遥测数据,系统/服务可以自适应地重新学习要应用的用于利用学习程序的机器学习处理。

在操作404中,检测与信息(例如,输入)相关联的模板(例如指纹)。当通过系统/服务识别新的输入时,机器学习处理被应用以自动检测与特定输入相关联的一个或多个模板。在示例中,被分析的信息可以包括未标注的内容。在本公开中描述的系统/服务示例提供了对通常仅对标注内容有效的包装器归纳技术的改进。操作404应用机器学习处理,其将信息与多个所存储的模板进行比较,以检测与该信息匹配的模板。如前所述,使用诸如启发式机器学习处理和/或模板处理算法或操作的机器学习处理,模板可以被映射到学习程序的模板。启发式机器学习处理是可以从与模板相关联的数据中学习以在输入的模板和学习程序的一个或多个模板之间逼近最佳可能的任何处理。模板处理算法/操作是可以评估模板或模板中的数据的数据特征以将输入的模板与学习程序的一个或多个模板相匹配的任何处理。在另一个示例中,通过以下处理来实现模板到学习程序的映射,该处理运行学习程序池中的一个或多个学习程序并且使用置信水平来评估具有存储的模板的学习程序的被提取的输出以便将存储模板与学习程序映射。操作404还包括确定置信水平用于将所存储的模板与关联于该信息的模板进行匹配。可以通过执行启发式机器学习处理和用于指纹模板识别的机器学习处理中的至少一个来确定置信水平。至少一个模板是基于置信水平确定从多个所存储的模板中被选择的。

在模板的检测中,流程进行到判定操作406,其中确定用于模板检测的置信水平是否小于阈值。阈值可以由与本公开相关联的系统/服务的开发人员预先确定。如果置信水平小于阈值,则值流可以分支到操作408,其中用户被请求提供用于分析信息的示例操作。基于由用户提供的示例,根据示例操作生成新的学习程序(操作410)。每当生成新的学习程序(操作410)时,流程进行到操作402,其中学习程序池被更新。当用于模板检测的置信水平等于或大于阈值时,流程分支到操作412,其中确定候选学习程序。基于包括启发式机器学习处理和用于模板识别的机器学习处理中的至少一个的机器学习处理的应用来确定用于应用的学习程序(操作412)。启发式机器学习处理是可以从与学习程序相关联的数据中学习以逼近可以与输入的模板相关联的学习程序的任何处理。模板处理算法/操作是可以评估模板或学习程序的模板内的数据的数据特征以将输入的模板与一个或多个学习程序相匹配的任何处理。在另一个示例中,通过在学习程序池中运行一个或多个学习程序并且使用置信水平来评估学习程序的提取的输出以选择可以用于输入的学习程序的处理来实现模板到学习程序的映射。在任何示例中,机器学习处理基于从输入信息的机器学习处理中选择的所检测的模板来评估学习程序的兼容性。操作412还包括确定用于将所存储的模板与在学习程序池中存储的学习程序进行匹配的置信水平。置信水平可以通过如上所述的机器学习处理来确定。

在检测要应用的学习程序时,流程进行到判定操作414,其中确定学习程序确定的置信水平是否小于阈值。阈值可以由与本公开相关联的系统/服务的开发人员预先确定。如果置信水平小于阈值,则值流程可以进行到操作408,其中请求用户提供用于分析信息的示例操作。基于由用户提供的示例,从示例操作来生成新的学习程序(操作410)。每当生成新的学习程序(操作410)时,流程进行到操作402,其中学习程序池被更新。

当用于模板检测的置信水平等于或大于阈值时,流程进行到操作416,其中一个或多个学习程序被应用。作为示例,学习程序的应用可以操纵从输入信息中提取的数据。例如,学习程序的应用还可以包括将所提取的数据聚合并导出到提取的值(例如,输出)的集合。在示例中,在输出提取的值之前,可以应用机器学习处理来估计与提取的值相关联的置信水平。

然后,流程可以进行到输出(操作418)所提取的数据。在其他示例中,系统/服务可以基于提取的数据的输出(操作418)来继续与用户交互。在一个示例中,提取的数据的输出包括将提取的值的集合呈现为用于由其他应用使用的数据馈送。例如,输出可以被传送以供另一应用或服务使用。作为示例,输出可以被发送到一个或多个数据库,通过连接两个或多个应用的应用管道来输入到另一应用中,或者可以呈现为数据馈送或富集站点摘要(rss)馈送,以及其他示例。

图5-7和相关描述提供了可以在其中实践本发明的示例的各种操作环境的讨论。然而,关于图5-7示出和讨论的设备和系统是出于示例和说明的目的,并且不限于可用于实施本文所述的本发明的示例的大量计算设备配置。

图5是示出了计算设备502的物理组件的框图,例如可以用其实施本公开的示例的系统的组件。下面描述的计算设备组件可以适用于上述计算设备。在基本配置中,计算设备502可以包括至少一个处理单元504和系统存储器506。根据计算设备的配置和类型,系统存储器506可以包括但不限于易失性存储器(例如,随机存取存储器)、非易失性存储器(例如,只读存储器)、闪存、或这些存储器的任何组合。系统存储器506可以包括操作系统507和适于运行诸如应用528、io管理器524、和其他实用程序526的软件应用520的一个或多个程序模块508。作为示例,系统存储器506可以存储用于执行的指令。作为示例,系统存储器506的其他示例可以是诸如知识资源或学习程序池的组件。例如,操作系统507可以适于控制计算设备502的操作。此外,本发明的示例可以结合图形库、其他操作系统或任何其他应用来实践并且不限于任何特定的应用或系统。该基本配置在图5中由虚线522中的那些组件示出。计算设备502可以具有附加特征或功能。例如,计算设备502还可以包括例如磁盘、光盘或磁带的附加数据存储设备(可移除和/或不可移除)。图5中通过可移除存储设备509和不可移除存储设备510示出了这种附加存储。

如上所述,可以将多个程序模块和数据文件存储在系统存储器506中。在处理单元504上执行时,程序模块508(例如,输入/输出(i/o)管理器524、其他实用程序526和应用528)可以执行例如包括但不限于图4所示的操作方法400的一个或多个阶段的处理。可以根据本发明的示例使用的其他程序模块可以包括电子邮件和联系人应用、文字处理应用、电子表格应用、数据库应用、幻灯片呈现应用、输入识别应用、绘图或计算机辅助应用等。

此外,本发明的示例可以在包括分立电子元件的电路、包含逻辑门的封装或集成电子芯片、利用微处理器的电路中、或包含电子元件或微处理器的单个芯片上实践。例如,可以经由片上系统(soc)来实施本发明的示例,在soc中,图5所示的组件中的每一个或多个可以被集成到单个集成电路上。这样的soc器件可以包括一个或多个处理单元、图形单元、通信单元、系统虚拟化单元和各种应用功能,所有这些都作为单个集成电路被集成(或“烧录”)到芯片基板上。当经由soc操作时,本文所描述的功能可以经由与单个集成电路(芯片)上的计算设备502的其他组件集成的专用逻辑来操作。本公开的示例也可以使用能够执行诸如例如and、or和not的逻辑操作的其他技术来实践,该其他技术包括但不限于机械、光学、流体和量子技术。此外,本发明的示例可以在通用计算机内或在任何其它电路或系统中实践。

计算设备502还可以具有一个或多个输入设备512,诸如键盘、鼠标、笔、声音输入设备、用于语音输入/识别的设备、触摸输入设备等。还可以包括诸如显示器、扬声器、打印机等的输出设备514。上述设备是示例,并且其他设备可以被使用。计算设备504可以包括允许与其他计算设备518进行通信的一个或多个通信连接516。合适的通信连接516的示例包括但不限于:rf发射机、接收机和/或收发器电路;通用串行总线(usb)、并行和/或串行端口。

本文所使用的术语计算机可读介质可以包括计算机存储介质。计算机存储介质可以包括以用于存储诸如计算机可读指令、数据结构或程序模块的信息的任何方法或技术实现的易失性和非易失性、可移除和不可移除介质。系统存储器506、可移除存储设备509和不可移除存储设备510均是计算机存储介质示例(即,存储器存储)。计算机存储介质可以包括ram、rom、电可擦除只读存储器(eeprom)、闪存或其他存储器技术、cd-rom、数字通用盘(dvd)或其他光学存储器、磁带盒、磁带、磁盘存储器或其他磁存储设备或可用于存储信息并且可以被计算设备502访问的任何其他制品。任何这样的计算机存储介质可以是计算设备502的一部分。计算机存储介质不包括载波或其他传播或调制的数据信号。

通信介质可以由计算机可读指令、数据结构、程序模块或诸如载波或其他传输机制的调制数据信号中的其他数据来实现,并且包括任何信息传递介质。术语“调制数据信号”可以描述信号,该信号使一个或多个特性以一种方式被设置或改变以便在该信号中编码信息。作为示例而非限制,通信介质可以包括诸如有线网络或直接有线连接的有线介质以及诸如声学、射频(rf)、红外的无线介质和其它无线介质。

图6a和6b示出了利用其可以实施本发明的示例的移动计算设备600,例如移动电话、智能电话、个人数据助理、平板个人计算机、膝上型计算机等。例如,移动计算设备600可以被实现为系统100,系统100的组件可以被配置为执行图4所描述的处理方法以及其他示例。参考图6a,示出了用于实现该示例的移动计算设备600的一个示例。在基本配置中,移动计算设备600是具有输入元件和输出元件两者的手持式计算机。移动计算设备600通常包括显示器605和允许用户将信息输入到移动计算设备600中的一个或多个输入按钮610。移动计算设备600的显示器605还可以用作输入设备(例如,触摸屏显示器)。如果包括,可选的侧输入元件615允许进一步的用户输入。侧输入元件615可以是旋转开关、按钮或任何其他类型的手动输入元件。在替代示例中,移动计算设备600可以包含更多或更少的输入元件。例如,在一些示例中,显示器605可以不是触摸屏。在又一替代示例中,移动计算设备600是诸如蜂窝电话的便携式电话系统。移动计算设备600还可以包括可选的小键盘635。可选的小键盘635可以是物理小键盘或在触摸屏显示器上生成的“软”小键盘。在各种示例中,输出元件包括用于显示图形用户接口(gui)显示器605、视觉指示器620(例如,发光二极管)和/或音频换能器625(例如扬声器)。在一些示例中,移动计算设备600包含用于向用户提供触觉反馈的振动换能器。在又一示例中,移动计算设备600集成诸如音频输入(例如,麦克风插孔)、音频输出(例如,耳机插孔)和视频输出(例如,hdmi端口)的输入和/或输出端口,用于向外部设备发送信号或从外部设备接收信号。

图6b是示出了移动计算设备的一个示例的架构的框图。也就是说,移动计算设备600可以包含系统(即,架构)602以实现一些示例。在示例中,系统602被实现为能够运行一个或多个应用(例如浏览器、电子邮件、输入处理、日历、联系人管理器、消息收发客户端、游戏和媒体客户端/播放器)的“智能电话”。在一些示例中,系统602被集成为诸如集成个人数字助理(pda)和无线电话的计算设备。

一个或多个应用程序666可以被加载到存储器662中并且在操作系统664上运行或与操作系统664相关联地运行。应用程序的示例包括电话拨号程序、电子邮件程序、个人信息管理(pim)程序、文字处理程序、电子表格程序、互联网浏览器程序、消息程序等。系统602还包括存储器662内的非易失性存储区域668。非易失性存储区域668可用于存储在系统602断电时不应丢失的持久信息。应用程序666可以使用和在非易失性存储区域668中存储信息,诸如电子邮件或由电子邮件应用使用的其他消息等。同步应用(未示出)也驻留在系统602上,并且被编程为与驻留在主机计算机上的对应同步应用进行交互,以将在非易失性存储区域668中存储的信息与在主计算机上存储的对应信息同步。应当理解,其他应用可以被加载到存储器662中并在移动计算设备600上运行,包括本文所述的应用528、io管理器524和其他实用程序526。

系统602具有电源670,其可以被实现为一个或多个电池。电源670还可以包括外部电源,诸如ac适配器或用于对电池进行补充或再充电的供电的底座(powereddockingcradle)。

系统602可以包括执行促进系统602和一个或多个外围设备之间的连接的功能的外围设备端口678。去往和来自外部设备端口672的传输在操作系统664的控制下进行。换句话说,外围设备端口678所接收的通信可以经由操作系统664传播到应用程序666,反之亦然。

系统602还可以包括执行发射和接收射频通信的功能的无线电672。无线电672经由通信运营商或服务提供商来促进系统602和“外部世界”之间的无线连接。去往和来自无线电设备672的传输在操作系统664的控制下进行。换句话说,无线电672所接收的通信可以经由操作系统664传播到应用程序666,反之亦然。

视觉指示器620可以用于提供视觉通知,并且/或者音频接口674可以用于经由音频变换器625产生可听见的通知。在所示示例中,视觉指示器620是发光二极管(led),并且音频变换器625是扬声器。这些设备可以直接耦合到电源670,使得当被激活时,它们保持打开达通知机制所指示的持续时间,即使处理器660和其他组件可能关闭以节省电池电量。led可能被编程为无限期地保持点亮,直到用户采取动作来指示设备的通电状态。音频接口674用于向用户提供可听见的信号并从用户接收可听见的信号。例如,除了耦合到音频变换器625之外,音频接口674还可以耦合到麦克风以接收可听见的输入,以便于促进电话通话。根据本发明的示例,麦克风还可以用作音频传感器以促进通知的控制,如下文将描述。系统602还可以包括视频接口676,该视频接口676使能机载照相机630的操作以记录静止图像、视频流等。

实现系统602的移动计算设备600可以具有附加的特征或功能。例如,移动计算设备600还可以包括诸如磁盘、光盘或磁带的附加数据存储设备(可移除和/或不可移除)。图6b中由非易失性存储区域668示出了这种附加的存储器。

如上所述,移动计算设备600生成或捕捉并经由系统602存储的数据/信息可以在移动计算设备600上被本地存储,或者数据可以存储在任何数量的存储介质上,该存储介质可以由设备经由无线电672或经由移动计算设备600和与移动计算设备600相关联的分离计算设备(例如,分布式计算网络(诸如因特网)中的服务器计算机)之间的有线连接来访问。应当理解,这样的数据/信息可以经由无线电672经由移动计算设备600或经由分布式计算网络来访问。类似地,这样的数据/信息可以根据公知的数据/信息传送和存储装置(包括电子邮件和协作数据/信息共享系统)容易地在计算设备之间传送以进行存储和使用。

图7示出了如上所述的用于提供可靠地访问存储系统上的目标数据并且处理到一个或多个客户端设备的通信故障的应用的系统的架构的一个示例。与应用528、io管理器524、其他实用程序526和存储相关联地被访问、交互或编辑的目标数据可以以不同的通信信道或其他存储类型被存储。例如,各种文档可以使用目录服务722、门户网站724、邮箱服务726、即时消息存储728或社交网站730、应用528、io管理器524、其他实用程序526来存储,并且存储系统可以使用这些类型的系统等中的任何一个来能够实现数据利用,如本文所描述。服务器720可以提供用于由在通用计算设备502操作的客户端使用和由移动设备600通过网络715使用的存储系统。作为示例,网络715可以包括因特网或任何其他类型的本地或广域网,并且客户端节点可被实现为在个人计算机、平板计算设备中和/或由移动计算设备600(例如,智能电话)体现的计算设备502。客户端计算设备502或600的这些示例中的任一个可以从商店716获得内容。

在整个说明书中已经提到“一个示例”或“示例”,这意味着在至少一个示例中包括特定描述的特征、结构或特性。因此,这样的短语的使用可以指代多于仅一个示例。此外,所描述的特征、结构或特性可以以任何合适的方式组合在一个或多个实例中。

然而,相关领域的技术人员可以认识到,可以在没有一个或多个具体细节的情况下或利用其他方法、资源、材料等来实践示例。在其他实例中,公知的结构、资源、或者操作没有被详细地示出或描述,仅为了观察示例的模糊方面。

虽然已经示出和描述了样本示例和应用,但是应当理解,示例不限于上述的精确配置和资源。在不脱离所要求保护的示例的范围的情况下,可以在本文所公开的方法和系统的布置、操作和细节中作出对本领域技术人员显而易见的各种修改、改变和变体。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1