可配置实体匹配系统的制作方法

文档序号:29914196发布日期:2022-05-06 03:11阅读:71来源:国知局
可配置实体匹配系统的制作方法

1.本公开涉及数据处理领域,并且更具体地涉及一种计算机实现的方法、系统及计算机可读介质。


背景技术:

2.识别不同系统中被不同表示的同一实体是一项挑战。例如,实体可以驻留在分布式异构数据源中,并且每个数据源可以具有关于每个实体的各种信息位。由于有限的数据质量、不完整的数据和跨系统的不一致性,匹配同一现实世界实体的多个表示的任务并不容易。此外,庞大的数据量不适合以任何简单或手动的方式进行匹配。


技术实现要素:

3.本公开的示例实施例提供一种计算机实现的方法,包括:在计算系统处接收包括一个或多个属性的输入;由所述计算系统访问包括查询选项的列表的查询配置;由所述计算系统从与所述输入的属性相关的所述查询选项的列表中并基于来自先前查询的审核的查询优化结果来选择查询选项的子集合;由所述计算系统将所述查询选项的子集合的每个查询选项翻译成包括所述输入的一个或多个属性中的至少一个属性的查询,以生成查询的集合;由所述计算系统基于所述查询优化结果确定运行所述查询的集合中的每个查询的优先级顺序;由所述计算系统按所述优先级顺序运行每个查询,以生成候选列表,所述候选列表包括潜在地与所述输入相匹配的候选的列表;由所述计算系统访问包括工作流的列表的工作流配置,用于确定输入是否与候选相匹配;对于所述候选的列表中的每个候选,执行操作,所述操作包括:基于与所述候选的相关性并基于来自先前工作流运行的审核的工作流优化结果,选择可用工作流的子集合;基于所述工作流优化结果确定要运行所选择的工作流的子集合的顺序;和按所确定的顺序运行所选择的工作流的子集合,以生成指示所述候选与所述输入相匹配的概率的匹配分数;以及基于为每个候选生成的匹配分数,提供至少指示与所述输入相匹配的候选的输出。
4.本公开的示例实施例提供一种系统,包括:存储指令的存储器;和由所述指令配置的一个或多个处理器,用于执行操作,所述操作包括:接收包括一个或多个属性的输入;访问包括查询选项的列表的查询配置;从与输入的属性相关的所述查询选项的列表中并基于来自先前查询的审核的查询优化结果来选择查询选项的子集合;将所述查询选项的子集合的每个查询选项翻译成包括所述输入的一个或多个属性中的至少一个属性的查询,以生成查询的集合;基于所述查询优化结果确定运行所述查询的集合中的每个查询的优先级顺序;按所述优先级顺序运行每个查询,以生成候选列表,所述候选列表包括潜在地与所述输入相匹配的候选的列表;访问包括工作流的列表的工作流配置,用于确定输入是否与候选相匹配;对于所述候选的列表中的每个候选,执行操作,所述操作包括:基于与所述候选的相关性并基于来自先前工作流运行的审核的工作流优化结果,选择可用工作流的子集合;基于所述工作流优化结果确定要运行所选择的工作流的子集合的顺序;以及按所确定的顺
序运行所选择的工作流的子集合,以生成指示所述候选与所述输入相匹配的概率的匹配分数;以及基于为每个候选生成的匹配分数,提供至少指示与所述输入相匹配的候选的输出。
5.本公开的示例实施例提供一种包括存储在其上的指令的非暂时性计算机可读介质,所述指令可由至少一个处理器执行以使计算设备执行包括以下步骤的操作:接收包括一个或多个属性的输入;访问包括查询选项的列表的查询配置;从与所述输入的属性相关的查询选项的列表中并基于来自先前查询的审核的查询优化结果来选择查询选项的子集合;将所述查询选项的子集合的每个查询选项翻译成包括所述输入的一个或多个属性中的至少一个属性的查询,以生成查询的集合;基于所述查询优化结果确定运行所述查询的集合中的每个查询的优先级顺序;按所述优先级顺序运行每个查询,以生成候选列表,所述候选列表包括潜在地与所述输入相匹配的候选的列表;访问包括工作流的列表的工作流配置,用于确定输入是否与候选相匹配;对于所述候选的列表中的每个候选,执行操作,所述操作包括:基于与所述候选的相关性并基于来自先前工作流运行的审核的工作流优化结果,选择可用工作流的子集合;基于所述工作流优化结果确定要运行所选择的工作流的子集合的顺序;以及按所确定的顺序运行所选择的工作流的子集合,以生成指示所述候选与所述输入相匹配的概率的匹配分数;以及基于为每个候选生成的匹配分数,提供至少指示与输入相匹配的候选的输出。
附图说明
6.各个附图仅示出了本公开的示例性实施例,不应被视为限制其范围。
7.图1是示出根据一些示例实施例的网络化系统的框图。
8.图2是示出根据一些示例实施例的实体匹配系统的框图。
9.图3a和图3b包括示出根据一些示例实施例的用于为输入生成匹配结果的方法的各方面的流程图。
10.图4示出了根据一些示例实施例的针对两个输入-候选的所选择的工作流的子集合的运行的示例。
11.图5是示出根据一些示例实施例的可以安装在机器上的软件架构的示例的框图。
12.图6示出了根据示例实施例的计算机系统形式的机器的图示,在该机器中可以运行指令集合,用于使得该机器执行本文讨论的任何一种或多种方法论。
具体实施方式
13.本文描述的系统和方法涉及可配置实体匹配系统。如上所述,由于有限的数据质量、不完整的数据和跨系统的不一致性,匹配同一现实世界实体的多个表示的任务并不容易。此外,庞大的数据量不适合以任何简单或手动的方式进行匹配。示例实施例提供了一种系统,用于动态地确定查询多个源以得到可能与输入相匹配的潜在候选的最佳过程,用于将候选与输入相匹配的最佳过程,以及提供反馈回路以优化查询多个源的过程以及将候选与输入相匹配的过程。因此,示例实施例提供了动态选择和优化过程,以跨不同数据源识别类似的实体,诸如组织、贸易、雇员、支出类别等。
14.例如,计算设备接收包括一个或多个属性的输入,并访问包括查询选项的列表的查询配置,以从与输入的属性相关的查询选项的列表中、并且基于来自先前查询的审核的
查询优化结果,来选择查询选项的子集合。计算系统还基于查询优化结果确定运行查询的集合中的每个查询的优先级顺序,并将该查询选项的子集合的每个查询选项翻译成包括输入的一个或多个属性中的至少一个属性的查询,以生成查询的集合。计算系统按优先级顺序运行每个查询,以生成包括潜在地与输入相匹配的候选的列表的候选列表,并访问包括工作流的列表的工作流配置,用于确定输入是否与候选相匹配。对于候选的列表中的每个候选,计算系统基于与候选的相关性并基于来自先前工作流运行的审核的工作流优化结果来选择可用工作流的子集合,基于工作流优化结果来确定所选择的工作流的子集合将被运行的顺序,并按所确定的顺序运行所选择的工作流的子集合,以生成指示候选与输入相匹配的概率的匹配分数。计算系统基于为每个候选生成的匹配分数,提供至少指示与输入相匹配的候选的输出。
15.图1是示出根据一些示例实施例的网络化系统100的框图。系统100可以包括一个或多个客户端设备,诸如客户端设备110。客户端设备110可以包括但不限于移动电话、台式计算机、膝上型电脑、便携式数字助理(pda)、智能电话、平板电脑、超极本、上网本、膝上型电脑、多处理器系统、基于微处理器或可编程的消费电子产品、游戏控制台、机顶盒、车辆中的计算机或用户可以用来访问联网系统100的任何其他计算或通信设备。在一些实施例中,客户端设备110可以包括显示信息(例如,以用户界面的形式)的显示模块(未示出)。在进一步的实施例中,客户端设备110可以包括触摸屏、加速度计、陀螺仪、照相机、麦克风、全球定位系统(gps)设备等中的一个或多个。客户端设备110可以是用户106的用于访问和利用云服务以及其他应用的设备。
16.一个或多个用户106可以是人、机器或与客户端设备110交互的其他手段。在示例实施例中,用户106可以不是系统100的一部分,但是可以经由客户端设备110或其他手段与系统100交互。例如,用户106可以向客户端设备110提供输入(例如,触摸屏输入或字母数字输入),并且该输入可以经由网络104传送给系统100中的其他实体(例如,第三方服务器系统130、服务器系统102)。在这种情况下,系统100中的其他实体响应于接收到来自用户106的输入,可以经由网络104将信息传送给客户端设备110以呈现给用户106。这样,用户106可以使用客户端设备110与系统100中的各种实体交互。在一个示例中,用户是一个或多个应用(例如,移动和桌面网络应用)的开发者或质量保证工程师。
17.系统100还可以包括网络104。网络104的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网的一部分、公共交换电话网(pstn)的一部分、蜂窝电话网、无线网络、wifi网络、wimax网络、另一种类型的网络或两个或多个这样的网络的组合。
18.客户端设备110可以经由网络客户端112(例如,浏览器,诸如华盛顿州雷蒙德市的微软公司开发的因特网浏览器)或一个或多个客户端应用114来访问由系统100中的其他实体提供的各种数据和应用。客户端设备110可以包括一个或多个客户端应用114(也称为“app”),诸如但不限于网络浏览器、搜索引擎、消息传递应用、电子邮件(email)应用、电子商务网站应用、地图或位置应用、企业资源规划(erp)应用、客户关系管理(crm)应用、采购、支出管理和供应链服务应用、实体匹配系统等。
19.在一些实施例中,一个或多个客户端应用114可以被包括在给定的客户端设备110中,并且被配置为在本地提供用户界面和至少一些功能,(多个)客户端应用114被配置为根
据需要与系统100中的其他实体(例如,第三方服务器系统130、服务器系统102等)通信,以得到用于本地不可用的数据和/或处理能力(例如,访问位置信息、访问软件版本信息、访问rrp系统、访问crm系统、访问机器学习模型、访问采购、支出管理和供应链服务、实体匹配系统、认证用户106、验证支付方法、访问测试数据等),搜索供应商,用于目录或非目录请购等。相反,一个或多个应用114可以不包括在客户端设备110中,并且然后客户端设备110可以使用其网络浏览器来访问系统100中的其他实体(例如,第三方服务器系统130、服务器系统102)上托管的一个或多个应用。
20.服务器系统102可以经由网络104(例如,因特网或广域网(wan))向一个或多个第三方服务器系统130和/或一个或多个客户端设备110提供服务器侧功能。服务器系统102可以包括应用接口(api)服务器120、网络服务器122和可以与一个或多个数据库126通信耦合的实体匹配系统124。
21.一个或多个数据库126可以是存储与系统100的用户相关的数据、与系统100相关联的应用、云服务、机器学习模型等的存储设备。一个或多个数据库126可以进一步存储与第三方服务器系统130、第三方应用132、客户端设备110、客户端应用114、用户106等相关的信息。在一个示例中,一个或多个数据库126是基于云的存储。
22.根据一些示例实施例,服务器系统102可以是云计算环境。在一个示例实施例中,服务器系统102以及与服务器系统102相关联的任何服务器可以与基于云的应用相关联。
23.实体匹配系统124可以为第三方应用132和客户端应用114提供后端支持,第三方应用132和客户端应用114可以包括基于云的应用。此外,实体匹配系统124可以提供输入和查询候选结果之间的匹配结果,如下文进一步详细描述的。实体匹配系统124可以包括一个或多个服务器或其他计算设备或系统。
24.系统100还包括一个或多个第三方服务器系统130。一个或多个第三方服务器系统130可以包括一个或多个第三方应用。在(多个)第三方服务器130上运行的一个或多个第三方应用132可以经由api服务器120提供的编程接口经由api服务器120与服务器系统102交互。例如,一个或多个第三方应用132可以经由api服务器120请求并利用来自服务器系统102的信息来支持由第三方托管的网站或由第三方托管的应用上的一个或多个特征或功能。
25.例如,第三方网站或应用132可以提供对由第三方服务器系统130支持的功能和数据的访问。在一个示例实施例中,第三方网站或应用132可以提供对由第三方服务器系统130中的相关功能和数据支持的功能的访问。在一个示例中,第三方服务器系统130是与经由服务器系统102访问云服务的实体相关联的系统。
26.图2是示出实体匹配系统124的进一步细节的框图。实体匹配系统124获取输入206,并输出该输入206的匹配结果208(例如,标识跨系统以不同格式表示的相同实体)。实体匹配系统124包括候选生成器202和工作流生成器204。
27.候选生成器202生成潜在地与输入206相匹配的候选的列表。候选生成器202访问包括查询选项的综合列表的查询配置210。在一个示例中,查询选项包括多个查询的配置,该多个查询指定了在查询配置210中维护的一个或多个查询操作符和筛选器(filter)。以下是对四个不同查询(例如,查询选项)中的每一个的配置的示例定义:
28.种类:查询
29.名称:用公司名称搜索
30.规范(spec):
31.类型:组织
32.优先级:1
33.取(take):50
34.步骤:
[0035]-名称:移除输入.名称上的停止词
[0036]
移除_停止_词:
[0037]
路径:$.名称
[0038]
筛选器:
[0039]-输入:$.名称
[0040]
筛选器:名称
[0041]
操作:模糊
[0042]
‑‑‑
[0043]
种类:查询
[0044]
名称:用位置数据搜索
[0045]
规范:
[0046]
类型:组织
[0047]
优先级:3
[0048]
取:20
[0049]
筛选器:
[0050]-输入:$.地址.[*].地址.城市
[0051]
筛选器:地址.城市
[0052]
操作:eq
[0053]
‑‑‑
[0054]
种类:查询
[0055]
名称:对于组织用名称进行模糊
[0056]
规范:
[0057]
类型:组织
[0058]
优先级:1
[0059]
取:50
[0060]
步骤:
[0061]-组织:移除输入.名称上的停止词
[0062]
移除_停止_词:
[0063]
路径:$.名称
[0064]
筛选器:
[0065]-输入:$.名称
[0066]
筛选器:名称
[0067]
操作:模糊
[0068]
‑‑‑
[0069]
种类:查询
[0070]
名称:对于组织用城市进行模糊
[0071]
规范:
[0072]
类型:组织
[0073]
优先级:2
[0074]
取:30
[0075]
筛选器:
[0076]-输入:$.外部id.[0].id
[0077]
筛选器:外部id.id
[0078]
操作:eq
[0079]
下面提供了每个查询选项的定义属性的进一步细节的示例:
[0080][0081][0082]
查询构建器212为输入选择相关的查询选项,并将查询选项中的每一个翻译成包括输入的一个或多个属性的查询。在一个示例中,查询构建器212将配置的查询规范翻译成可在数据库中运行的语法。以下示例展示了查询构建器212可以将配置的查询转换成
[0087][0088][0089]
在一个示例中,查询构建器212还基于来自先前查询的审核的查询优化结果来选择输入的相关查询选项,该查询优化结果可以存储在一个或多个数据存储中,例如图1所示的(多个)数据库126。下面参照图3a至图3b描述查询生成和审核过程的进一步细节。
[0090]
查询运行引擎214运行查询(例如,通过访问一个或多个数据存储库,诸如数据库216(a)和216(b))以返回查询结果,从而生成候选列表,该候选列表包括可能与输入相匹配的候选。每个查询产生结果集合(例如,该查询的候选列表)。这些结果的结合创建了最终候选列表。在一个示例中,候选生成器202移除重复项以产生最终候选列表。候选列表被提供给工作流生成器204。
[0091]
工作流生成器204配置不同的工作流来运行匹配。每个工作流使用谓词规则(predicate rule)、机器学习模型和/或其他方法来在输入和来自候选生成器202生成的候选列表的候选之间做出匹配决策。工作流的概念提供了在输入-候选对上组合许多预处理操作以定义特定匹配策略的可能性。每个工作流都是步骤的聚集,这些步骤允许对数据、特征工程计算和核心匹配操作进行细化。工作流是在给定的输入-候选对上执行的运行步骤集合。工作流可以由诸如细化操作、特征工程操作和核心匹配功能的操作组成。
[0092]
细化操作用于清理数据,以便以预期比原始形式产生更好结果的形式使用数据。以下示出了可在工作流定义中使用的示例细化操作。
[0093][0094][0095]
特征生成是从一个或多个现有特征创建新特征的过程。无论是通过ml模型还是谓词规则,流程都会添加工作流可以在其评估中使用的新的信息。例如,计算两个地址之间以
英里为单位的地理距离或检测一段文本的语言都是潜在的特征生成过程。
[0096]
以下示出了可在工作流定义中使用的示例特征工程选项。
[0097][0098][0099]
以下示例示出了可在工作流定义中使用的核心匹配功能:
[0100][0101]
工作流生成器204访问包括工作流选项的综合列表的工作流配置218。以下是工作流配置的示例定义(例如,工作流选项):
[0102]
种类:工作流
[0103]
名称:完全匹配
[0104]
规范:
[0105]
条件:
[0106]-具有名称
[0107]
步骤:
[0108]-名称:从输入.名称中移除停止词
[0109]
移除_停止_词:
[0110]
路径:输入.名称
[0111]-名称:设置名称距离
[0112]
特征:名称_距离
[0113]
字符串_距离:
[0114]
路径1:输入.名称
[0115]
路径2:候选.名称
[0116]-名称:使用名称_和_地址_规则集合进行匹配
[0117]
规则_匹配:
[0118]
规则集合:名称_和_地址
[0119]
并且下面提供了每个工作流选项的定义的属性的进一步细节的示例:
[0120][0121]
路由器220检查每个输入-候选对(例如,与最终候选列表中的每个候选成对的输入),并建立要针对每个输入-候选对运行的工作流的集合以及运行该工作流的集合的工作流的优先级顺序。在一个示例中,路由器220还基于来自对先前工作流运行的审核的工作流优化结果来选择输入-候选对的相关工作流选项,该工作流优化结果可以存储在一个或多个数据存储中,诸如图1所示的(多个)数据库126。关于输入-候选对的工作流生成和审核过程的进一步细节在下面参考图3a至图3b进行描述。
[0122]
在一个示例中,路由配置引导路由器220选择相关工作流。例如,一个工作流可以用“可完成地址”的路由条件来定义,如下例所示:
[0123]
wf1
[0124]
路由:
[0125]-可完成-地址
[0126]
在路由配置中,可以指定该路由的含义,诸如:
[0127]
路由可完成-地址
[0128]-具有街道和邮政编码的地址
[0129]
在一个示例中,路由配置包括路由器可以用来确定特定工作流是否适用于输入-候选对的标准。该标准可以作用于输入-候选对的任何字段或特征。考虑到有很多工作流。有些工作流被设计用于评估组织之间的相似性,而有些工作流则被设计用于评估其他实体的相似性。路由条件告诉路由器哪些工作流应用了它试图评估的数据。如果路由器具有作为组织的输入-候选对,它可以使用路由条件来只选择那些应用于组织的工作流。在实践中,路由条件要精细得多,诸如只指定具有特定属性的组织的标准,该特定属性诸如完整的地址信息、特定的地理位置(即中国组织对美国组织),或者具有网址信息的组织。
[0130]
以下是路由配置的示例定义:
[0131]
种类:路由
[0132]
名称:有名称
[0133]
规范:
[0134]
条件:
[0135]-输入:$.输入.名称
[0136]
候选:$.候选.名称
[0137]
条件:m.输入.名称&m.候选.名称
[0138]
并且下面提供了路由配置的定义的属性的更多细节的示例:
[0139]
类型:配置的类型,始终设置为值“路由”名称:用作标识符的路由的唯一名称规范:条件使工作流适用于输入-候选对的条件的集合
[0140]
每个输入-候选对可以具有其自己的要运行的工作流集合(例如,工作流1(222)、工作流2(224)、工作流n(226))。输入-候选对可以有创建其运行路径的一个或多个工作流。每个所选择的候选都经由最适合评估输入-候选对的一系列工作流进行路由。运行所有所选择的工作流,直到找到匹配或完成所有工作流。
[0141]
在一个示例中,不同的生成的候选的工作流运行是异步的,因为多个配置的查询产生具有不同响应时间的潜在候选,并且因此,在该示例中,每个候选都是异步评估的。给定候选的工作流集合的运行是顺序的。在一个示例中,在返回对输入的响应之前,对所有候选的匹配结果进行排序。
[0142]
图3a和图3b示出了根据一些示例实施例的流程图,该流程图示出了用于为输入生成匹配结果的方法300的各方面。为了示出的目的,方法300是参照图1和图2的框图描述的。应当理解,在其他实施例中,方法300可以用其他系统配置来实践。
[0143]
在操作302中,计算系统(例如,服务器系统102或实体匹配系统124)接收包括一个或多个属性的输入。例如,计算系统可以从第三方服务器系统130或其他计算设备或系统经由客户端设备110接收包括来自终端用户的输入的匹配请求。该输入包括一个或多个属性,诸如实体名称(例如,公司名称)、地址、发票标识符、图像或另一个属性。以下是匹配组织的请求中的示例有效载荷(payload):
[0144]
{
[0145]“对象类型”:“组织”,
[0146]“名称”:“vmware”,
[0147]“地址”:[
[0148]
{
[0149]“类型”:“付款给”,
[0150]“地址”:{
[0151]“对象类型”:“地址”,
[0152]“街道1”:“第一大道”,
[0153]“城市”:{“对象类型”:“城市”、“名称”:“纽约”},
[0154]“州省”:{“对象类型”:“州省”、“缩写”:“ny”,
[0155]“名称”:“纽约”},
[0156]“国家地区”:{“对象类型”:“国家地区”,“缩写”:“usa”},
[0157]“邮政编码”:{“对象类型”:“邮政编码”,“名称”:“10009”}}]
[0158]
}
[0159]
在一个示例中,对照驻留在一个或多个数据存储(例如,数据库126)中的数据模型定义中的对象模式(schema)来验证接收的输入(例如,有效载荷),并且设置请求上下文。在一个示例中,请求上下文提供被匹配的实体的上下文。例如,上下文可以是位置站点、供应
商公司、发票文档等等。本质上,请求上下文是输入的另一个属性,请求者可以在调用服务时为查询手动设置该属性。系统像使用任何其他属性一样使用该信息来帮助它选择适当的查询和工作流评估。
[0160]
在操作304中,如上所述,计算系统访问包括查询选项的列表的查询配置,诸如,例如,计算系统访问可以存储在一个或多个数据库126中的查询配置210。在操作306中,计算系统从与输入的属性相关的查询选项的列表中选择查询选项的子集合,以找到与输入的最佳匹配。例如,如果输入是公司名称和地址,则计算系统选择与组织相关的查询选项(例如,具有以上示例查询选项中的“组织”的“类型”),或者如果输入是图像,则计算设备选择与图像相关的查询选项。作为另一个示例,如果输入是公司名称,则将不会选择包括股票代码或图像的查询选项。
[0161]
在一个示例中,计算系统还基于来自先前运行的查询的审核的查询优化结果来选择查询选项的子集合。例如,计算系统存储由计算系统运行的过去查询的数据(例如,在一个或多个数据库126中)。然后,计算系统选择先前运行(run)的查询和结果的子集合,以为每个查询生成混淆矩阵。使用混淆矩阵,计算系统可以为每个查询导出度量,并将度量作为优化结果存储在一个或多个数据存储(例如,数据库126)中。在一个示例中,度量包括查准率和查全率(recall)。
[0162]
例如,计算系统选择先前运行的查询的子集合,并呈现要在计算设备(例如,客户端设备110)上显示的输入和结果。终端用户选择哪些是正确的,以及哪些是不正确的(例如,验证每个结果是否与输入相匹配)。然后,计算系统使用所提供的关于哪个结果(例如,候选)对每个查询是正确的和哪个是不正确的数据来生成混淆矩阵。混淆矩阵是允许算法的性能的可视化的表,或者在这种情况下,是查询选项。计算系统接下来从混淆矩阵中导出诸如查准率和查全率的度量,以为每个查询生成准确率分数。应当理解,在示例实施例中可以使用其他方法和度量。
[0163]
在一个示例中,可以为查询生成以下不同的度量:
[0164]
混淆矩阵(真正例、假正例、真负例、
[0165]
准确率
[0166]
查准率
[0167]
查全率
[0168]
为查询生成的度量的一个示例包括:
[0169]
查询:对于组织关于贸易方式进行模糊
[0170][0171]
对于上面的示例查询:
[0172]
真正例(true positive,tp)-生成正确的候选
[0173]
假正例(false positive,fp)

生成不正确的候选
[0174]
假负例(false negative,fn)-未生成正确的候选
[0175]
真负例(true negative,tn)-未生成不正确的候选
[0176]
查准率=tp/(tp+fp)
[0177]
查全率=tp/(tp+fn)
[0178]
准确率=(tp+tn)/(tp+tn+fp+fn)
[0179]
其中,查全率是通过搜索检索到的相关文档数量除以现有相关文档总数量,而查准率是通过搜索检索到的相关文档数量除以通过该搜索检索到的文档总数量。
[0180]
对于候选生成查询,一个目标是在一定的成本约束下最大化查准率和查全率两者。如上所述,查全率测量查询返回匹配候选的频率,而查准率测量为了找到相关候选而返回的不相关候选的数量。最大化查全率的最简单方法是返回所有候选。这保证了候选的列表包括相关的一个(或多个),然而,与这种方法相关联的查准率非常差,因为会有许多不相关的候选返回。通过最大化这两个度量,计算系统可以优化候选生成过程,以返回具有包含(多个)相关/匹配候选的高概率的最小的候选的列表。不幸的是,同时最大化查全率和查准率两者是非常昂贵的(计算资源)。因此,计算系统被优化为以最小的成本最大化查全率和查准率两者。
[0181]
优化结果可以基于定期进行的更新的审核定期更新(例如,基于新的或额外的数据),以便优化结果始终是最新的和最准确的。以这种方式,计算系统具有自动反馈回路来调整查询选项(以及如下所述的工作流选项),以连续地适应变化的数据和用例。该反馈回路也用于改进本文描述的机器学习模型。
[0182]
然后,每个查询的优化结果,诸如度量,可以用于为给定的输入选择最佳的查询选项,这提供了更高效和有效的系统和结果。例如,代替使用所有相关的查询选项(例如,占用有价值的处理资源),计算系统选择与输入相关的具有高于特定阈值的准确率分数(或其他度量)的查询选项。例如,准确率分数可以在0和1之间。阈值可以设置为.85。因此,计算系统将只选择与输入相关的具有超过.85的准确率分数的查询选项。例如,计算设备确定存在与给定输入相关的10个查询选项。在本例中,查询选项1的准确率分数为.91,查询选项2的准确率分数为.45,查询选项3的准确率分数为.89,查询选项4的准确率分数为.97,查询选项5的准确率为.73,其余的查询选项的准确率分别为.32、.80、.44、.69和.84。计算系统将选择查询选项1、3和4,因为它们都具有超过阈值.85准确率分数的准确率分数。
[0183]
在另一个示例中,计算系统可以基于成本选择查询选项。例如,考虑具有以下查全率、查准率和成本的输入的四个潜在查询:
[0184]
查询1:查全率=0.2,查准率=0.3,成本:$1
[0185]
查询2:查全率=0.2,查准率=0.9,成本:$3
[0186]
查询3:查全率=0.8,查准率=0.3,成本:$2
[0187]
查询4:查全率=0.8,查准率=0.9,成本:$10
[0188]
如果计算系统只能花费$5来获得候选,则计算系统将只运行查询2和3,因为这些查询在成本约束内最大化了查准率和查全率。
[0189]
计算系统将查询选项的子集合的每个查询选项翻译成包括输入的一个或多个属
性中的至少一个属性的查询,以生成查询的集合。例如,查询选项可以是人工配置的(例如,由终端用户管理员配置的)查询选项,该查询选项然后被翻译成要搜索的特定源(例如,数据库)理解的语言,如上所述。
[0190]
在一个示例中,在操作308,计算系统还确定运行查询的集合中的每个查询的优先级顺序。优先级顺序也可以基于查询优化结果来确定。例如,输入可以是公司名称,并且选择的查询选项1、3和4可以包括关于公司名称的细化的查询(例如,丽思卡尔顿伯林加美细化为丽思卡尔顿)加上细化的公司名称的等同体(查询选项1)、公司名称的等同体(查询选项3)、以及移除停止词加上模糊重叠(例如,确定名称有多相似,并且如果超过阈值,则返回结果作为候选)(查询选项4)。在一个示例中,计算系统从最高准确率分数到最低准确率分数对将查询选项进行优先化。在这个示例中,查询选项将被优先化以运行查询选项4(准确率分数为.97)、查询选项1(准确率分数为.91)和查询选项3(准确率分数为.89)。
[0191]
在另一个示例中,可以选择以下四个潜在的查询作为输入:
[0192]
查询1:查全率=0.2,查准率=0.3
[0193]
查询2:查全率=0.2,查准率=0.9
[0194]
查询3:查全率=0.8,查准率=0.3
[0195]
查询4:查全率=0.8,查准率=0.9
[0196]
使用该信息,计算系统将按照以下优先级顺序运行查询:4、3、2、1。
[0197]
在操作310中,计算系统以优先级顺序运行每个查询,以生成候选列表,该候选列表包括潜在地与输入相匹配的候选的列表。
[0198]
在一个示例中,可以指定期望的候选数量,并且以优先级顺序运行每个查询,直到生成指定数量的候选,之后终止按优先级顺序的每个查询的运行。例如,期望的候选的指定数量可以是100。运行查询选项4可以得到45个候选,并且运行查询选项1可以得到57个候选。因此,查询选项子集合的运行将在查询选项1的运行之后被终止,因为已经达到了期望的候选数量。
[0199]
在操作312中,计算系统访问包括工作流的列表的工作流配置,用于确定输入是否与候选相匹配。对于候选的列表中的每个候选,计算系统基于与候选的相关性(并且可选地基于来自对先前工作流运行的审核的工作流优化结果)选择可用工作流的子集合,基于工作流优化结果确定运行所选择的工作流的子集合的顺序,并且以所确定的顺序运行所选择的工作流的子集合,以生成指示候选与输入相匹配的概率的匹配分数。
[0200]
在操作314中,计算系统基于与候选的相关性选择可用工作流的子集合。在一个示例中,计算系统可以进一步基于来自对先前工作流运行的审核的工作流优化结果来选择可用工作流的子集合。
[0201]
例如,计算系统确定输入的类型,以及然后确定与输入的类型相关的工作流。例如,如果输入是名称,则计算系统确定与名称相关的工作流。下面示出了一些输入和相关工作流的简单示例。应该理解,对于任何给定的输入-候选对,可能有相当多的工作流和相关工作流。
[0202][0203]
因此,对于输入-候选包含名称的示例,工作流集合包括工作流1和工作流2,因为工作流1和工作流2与包含名称的输入-候选相关。
[0204]
如上所述,工作流使用谓词规则、机器学习模型和/或其他方法在输入和来自候选列表的候选之间做出匹配决策。用于匹配决策的机器学习模型的工作流配置的示例包括:
[0205]-名称:使用6个特征模型的匹配
[0206]
ml_匹配:
[0207]
模型:site-6f(sagemaker-xgboost-200320-1732-012-5740ff8e)
[0208]
特征:
[0209]-名称_距离
[0210]-街道_距离
[0211]-城市_距离
[0212]-州_距离
[0213]-国家_距离
[0214]-邮政编码_距离
[0215]-名称_存在
[0216]-街道_存在
[0217]-城市_存在
[0218]-州_存在
[0219]-国家_存在
[0220]-邮政编码_存在
[0221]
例如,在组织匹配中使用机器学习模型,期望以下数据:(1)输入和支持特征的候选之间的字符串距离,以及(2)指示输入和候选两者中特征的存在的标志。对于名称和地址(街道、城市、州、国家、邮政编码)的精确匹配,生成特征向量作为ml模型的输入:
[0222]
[[100],[100],[100],[100],[100],[100],[0],[0],[0],[0],[0],[0]]
[0223]
其中100指示所比较的字符串之间的精确匹配,以及0指示该特征在输入和候选两者中都存在。用特征向量调用机器学习匹配配置中指定的sagemaker端点。
[0224]
根据工作流中用于在输入和来自候选列表的候选之间做出匹配决策的规则,可以
定义多个规则文件。可以在工作流中指定规则文件的名称。不同的工作流可以使用不同的规则文件进行评估。以下是两种不同规则定义的示例:
[0225]
1)用于评估外部id的匹配的规则集合(规则文件-外部_id_匹配.yml)
[0226]
种类:规则集合
[0227]
名称:外部_id_匹配
[0228]
规范:
[0229]
聚集_规则:
[0230]-名称:外部id_规则
[0231]
输入_路径:$.外部id
[0232]
候选_路径:$.外部id
[0233]
条件:(m.输入.id==m.候选.id)&(m.输入.源==m.候选.源)
[0234]
匹配_规则:
[0235]-名称:外部_id_匹配
[0236]
条件:(m.规则集合.外部id_规则.匹配_任何==真)
[0237]
2)用于评估名称相似性和地址的匹配的规则集合(规则文件

名称_相似性_地址_匹配.yml)
[0238]
种类:规则集合
[0239]
名称:名称_相似性_和_街道_地址_匹配
[0240]
规范:
[0241]
聚集_规则:
[0242]-名称:街道_规则
[0243]
输入_路径:$.地址
[0244]
候选_路径:$.地址
[0245]
条件:(m.输入.地址.街道1==m.候选.地址.街道1)
[0246]
匹配_规则:
[0247]-名称:名称_相似性_和_街道_地址_匹配
[0248]
条件:(m.特征.名称_距离》95)&(m.规则集合.街道_规则.匹配_任何==真)
[0249]
下面提供了规则的定义的属性的进一步细节的示例:
[0250][0251][0252]
此外,适用于特定工作流的规则文件可以设置为:
[0253]
种类:工作流
[0254]
名称:外部id匹配
[0255]
规范:
[0256]
条件:
[0257]-具有外部id
[0258]
步骤:
[0259]-名称:使用外部id规则集合匹配
[0260]
规则_匹配:
[0261]
规则集合:外部id_匹配_规则集合
[0262]
规则_匹配加载相关的规则文件数据。对于正在评估的输入-候选,如果不满足匹配条件,则返回0分,并且如果满足匹配条件,则返回1分。
[0263]
类似于针对审核过程和查询优化结果所描述的,计算系统可以进一步基于来自对先前工作流运行的审核的工作流优化结果来选择可用工作流的子集合。例如,计算系统存储由计算系统运行的过去工作流的数据(例如,在一个或多个数据库126中)。计算系统选择先前运行的工作流的子集合,并呈现输入、候选和匹配结果以在计算设备(例如,客户端设备110)上显示。终端用户选择哪些是正确的,哪些是不正确的(例如,验证每个工作流是否正确与输入和候选相匹配)。然后,计算系统使用所提供的数据来为每个工作流生成准确率度量或分数(例如,基于由每个工作流进行的正确匹配)。应当理解,在示例实施例中可以使用其他方法和度量。
[0264]
例如,也为每个工作流生成了与上面关于查询所解释的相似的度量:
[0265]
工作流:贸易类型重叠,和细化的行业匹配
[0266][0267][0268]
在一个示例中,计算系统(例如,经由路由器)使用从每个工作流的混淆矩阵导出的度量来优化要运行的工作流,并给用户最佳结果。具体地,计算系统试图最大化真正例率(true positive rate,tpr),同时最小化假正例率(false positive rate,fpr)。tpr测量的是当两件事情实际上相同时,工作流指示两件事情相同的频率,而fpr测量的是当两件事情实际上不相同时,工作流指示两件事情相同的频率。优化这两个度量允许计算系统选择最佳工作流来评估输入-候选对。此外,给定来自多个工作流的竞争结果,计算系统可以将来自具有最大tpr和最小fpr的工作流的结果返回给用户。
[0269]
如上所述,优化结果可以基于周期进行的更新的审核(例如,基于新的或额外的数据)定期更新,以便优化结果总是最新且最准确的。通过这种方式,计算系统有一个自动反馈回路来调整工作流选项,以不断适应不断变化的数据和用例。该反馈回路也用于改进本文描述的机器学习模型。
[0270]
每个工作流的优化结果(诸如准确率分数)可用于为给定输入选择最佳工作流选项,从而提供更高效和有效的系统和结果。例如,代替使用所有相关的工作流选项(例如,占用有价值的处理资源),计算系统选择与输入相关的具有高于特定阈值的准确率分数(或其他度量)的工作流选项。例如,准确率分数可以在0和1之间。阈值可以设置为.85。因此,计算系统将只选择与输入相关的准确率分数超过.85的工作流选项。例如,计算设备确定存在与给定输入相关的10个工作流选项。在此示例中,工作流选项1的准确率分数为.91,工作流选
项2的准确率分数为.45,工作流选项3的准确率分数为.89,工作流选项4的准确率分数为.97,工作流选项5的准确率分数为.73,其余工作流选项的准确率分数分别为.32、.80、.44、.69和.84。计算系统将选择工作流选项1、3和4,因为它们都具有超过阈值.85准确率分数的准确率分数。
[0271]
在另一个示例中,考虑输入-候选对的四个潜在工作流:
[0272]
工作流1:tpr=0.9,fpr=0.1
[0273]
工作流2:tpr=0.8,fpr=0.8
[0274]
工作流3:tpr=0.95,fpr=0.01
[0275]
工作流4:tpr=0.91,fpr=0.5
[0276]
如果服务被配置为仅运行两个工作流(例如,针对性能),则计算系统将选择运行工作流1和3,因为这两个工作流具有最大的tpr和最小的fpr。
[0277]
在操作316中,计算系统确定运行所选择的工作流的子集合的顺序。在一个示例中,也基于工作流优化结果来确定顺序。在一个示例中,计算系统从最高准确率分数到最低准确率分数对工作流选项进行优先化。在本例中,工作流选项将被优先化以执行工作流选项4(准确率分数为.97)、查询选项1(准确率分数为.91)和查询选项3(准确率分数为.89)。
[0278]
在另一个示例中,考虑输入-候选对的四个潜在工作流:
[0279]
工作流1:tpr=0.9,fpr=0.1
[0280]
工作流2:tpr=0.8,fpr=0.8
[0281]
工作流3:tpr=0.95,fpr=0.01
[0282]
工作流4:tpr=0.91,fpr=0.5
[0283]
如果服务被配置为仅运行两个工作流(例如,针对性能),则计算系统将选择运行工作流1和3,因为这两个工作流具有最大的tpr和最小的fpr。此外,它将首先运行工作流3,然后运行工作流1,因为工作流3比工作流1具有更大的tpr和更小的fpr两者。
[0284]
在操作318中,计算系统以确定的顺序运行工作流的子集合,以生成指示候选与输入相匹配的概率的匹配分数。例如,计算系统获取工作流配置中指定的步骤,并将每个步骤转换为任务。例如,如果该步骤是“移除输入.名称上的停止词”,则计算系统将该步骤转换为任务“移除_停止_词”。计算系统然后运行对应于在工作流中定义为核心、特征或细化功能的任务的功能。
[0285]
如上所述,对于输入-候选对,可以运行一个或多个工作流。每个工作流都有输入-候选数据的新副本,因此工作流中细化的更改不会影响后续工作流。
[0286]
在一个示例中,每个工作流具有相关联的条件,该条件基于当前运行的工作流的输出来指示是否前进到所选择的工作流的子集合中的下一个工作流。当条件已经满足时,计算系统终止所选择的工作流的子集合的运行,并将所选择的工作流的子集合的输出设置为特定工作流的输出。例如,条件是找到匹配。一旦在工作流序列中找到匹配,就不会评估后续工作流。对下一个输入-候选对的处理继续进行。
[0287]
图4示出了为输入-候选402和输入-候选404执行所选择的工作流的子集合的示例400。输入-候选402具有所选择的工作流的子集合410(例如,wf1、wf2、wf4、wf5)。路由器220以所示顺序运行所选择的工作流的子集合410。可以看出,在运行wf1和wf2之后没有找到匹配,但是在运行wf4之后找到了匹配。因此,路由器220终止所选择的工作流的子集合410的
运行(即使工作流5尚未被运行),并从工作流4的运行中输出匹配。
[0288]
输入-候选404具有所选择的工作流的子集合412(例如,wf1、wf2、wf6、wf9、wf12)。路由器220以所示顺序运行所选择的工作流的子集合412。可以看出,在运行所选择的工作流的子集合412的所有工作流之后,没有找到匹配,并且因此,输出是“无匹配”,指示输入-候选404的候选与输入不匹配。
[0289]
在一个示例中,匹配的结果是为输入选择的所有候选的分数在0到1之间。在一个示例中,匹配的结果是0(无匹配)或1(匹配)。如上所述,核心匹配经由谓词(规则)、机器模型或其他方法来评估。
[0290]
在操作320中,计算系统提供具有匹配结果的输出(例如,哪些候选与输入相匹配,以及哪些候选不与输入相匹配)。在一个示例中,计算系统基于为每个候选生成的匹配分数来提供至少指示与输入相匹配的候选的输出。结果可以在计算设备上显示,或者在幕后的各种用例中使用。
[0291]
一些示例用例包括匹配来自不同来源的发票,匹配来自不同来源的组织,或来源之间的其他实体匹配。在一个示例用例中,诸如sap的公司可以有一个或多个sap系统,如concur、ariba、s/4hana、fieldglass等。以“达美航空”为例,它可以是concur旅行系统中的供应商,在ariba有供应商档案,并且可以是s/4hana中企业资源规划的一部分。为了跨不同的sap系统识别该实体,可以使用匹配服务,并且给予跨不同系统的支出的统一视图的仪表板可以基于来自本文所述的系统和方法的结果。
[0292]
另一个示例用例是将旅行预订数据(例如,关于旅行购买的元数据)与旅行费用数据进行匹配,以确定旅行者是否使用适当的工具预订了他或她的费用。如果可以在来自concur预订工具的预订数据之间进行匹配,该工具管理客户与各种旅行供应商的协商价格,则旅行经理知道旅行者获得了最佳的合同价格。如果不能匹配,则旅行经理知道旅行者在concur系统之外预订了他或她的旅行,并且因此没有利用通过concur可得到的合同价格。匹配(或无匹配)可以基于来自本文描述的系统和方法的结果。
[0293]
图5是示出软件架构502的框图500,软件架构502可以安装在上述任何一个或多个设备上。例如,在各种实施例中,客户端设备110以及服务器和系统130、102、120、122和124可以使用软件架构502的一些或全部元件来实现。图5仅仅是软件架构的非限制性示例,并且应当理解,可以实现许多其他架构来促进本文描述的功能。在各种实施例中,软件架构502由硬件实现,诸如图6的机器600,其包括处理器610、存储器630和i/o组件650。在这个示例中,软件架构502可以被概念化为层的栈,其中每一层可以提供特定的功能。例如,软件架构502包括诸如操作系统504、库506、框架508和应用510的层。在操作上,与一些实施例一致,应用510通过软件栈调用(invoke)应用接口(api)调用(call)512,并响应于api调用512接收消息514。
[0294]
在各种实施方式中,操作系统504管理硬件资源并提供公共服务。操作系统504包括例如内核520、服务522和驱动程序524。与一些实施例一致,内核520充当硬件和其他软件层之间的抽象层。例如,内核520提供存储器管理、处理器管理(例如,调度)、组件管理、联网和安全设置等功能。服务522可以为其他软件层提供其他公共服务。根据一些实施例,驱动程序524负责控制底层硬件或与底层硬件接口。例如,驱动程序524可以包括显示驱动程序、照相机驱动程序、蓝牙或蓝牙低能量驱动程序、闪存驱动程序、串行通信驱动程序(例如,通
用串行总线(usb)驱动程序)、wi-fi驱动程序、音频驱动程序、电源管理驱动程序等。
[0295]
在一些实施例中,库506提供由应用510利用的低级公共基础设施。库506可以包括系统库530(例如,c标准库),其可以提供诸如存储器分配函数、字符串操作函数、数学函数等的功能。此外,库506可以包括api库532,诸如媒体库(例如,支持各种媒体格式的呈现和操纵的库,诸如运动图像专家组-4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组第3层(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合图像专家组(jpeg或jpg)或便携式网络图形(png))、图形库(例如,用于在显示器上以二维(2d)和三维(3d)图形内容进行渲染的opengl框架)、数据库库(例如,提供各种关系数据库功能的sqlite)、网络库(例如,提供网络浏览功能的webkit)等。库506还可以包括各种各样的其他库534,以向应用510提供许多其他的应用接口。
[0296]
根据一些实施例,框架508提供可由应用510利用的高级公共基础设施。例如,框架508提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架508可以提供可由应用510利用的广泛的其他api,其中一些可以是特定于特定操作系统504或平台的。
[0297]
在示例实施例中,应用510包括主页应用550、联系人应用552、浏览器应用554、图书阅读器应用556、位置应用558、媒体应用560、消息传递应用562、游戏应用564以及诸如第三方应用566和567的广泛分类的其他应用。根据一些实施例,应用510是运行程序中定义的功能的程序。可以采用各种编程语言来创建一个或多个应用510,以各种方式构建,诸如面向对象的编程语言(例如,c语言、java语言或c++)或过程编程语言(例如,c语言或汇编语言)。在特定示例中,第三方应用566(例如,由特定平台的供应商之外的实体使用android
tm
或ios
tm
软件开发工具包(sdk)开发的应用)可以是在移动操作系统上运行的移动软件,诸如ios
tm
、android
tm
、phone或另一个移动操作系统。在该示例中,第三方应用566可以调用由操作系统504提供的api调用512来促进本文描述的功能。
[0298]
图6是示出根据一些实施例的机器600的组件的框图,该机器600能够从机器可读介质(例如,机器可读存储介质)读取指令并执行本文讨论的任何一种或多种方法论。具体而言,图6以计算机系统的示例形式示出了机器600的图示,其中可以运行用于使机器600执行本文讨论的任何一种或多种方法论的指令616(例如,软件、程序、应用510、小程序、应用或其他可运行代码)。在替代实施例中,机器600作为独立设备操作,或者可以耦合(例如,联网)到其他机器。在网络化部署中,机器600可以以服务器机器或系统130、102、120、122、124等、或服务器-客户端网络环境中的客户端设备110、或作为对等(或分布式)网络环境中的对等机器的能力操作。机器600可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设备、可穿戴设备(例如智能手表)、智能家庭设备(例如智能电器)、其他智能设备、网络设备、网络路由器、网络交换机、网桥或能够顺序地或以其他方式运行指令616的任何机器。此外,虽然仅示出了单个机器600,但是术语“机器”也应被理解为包括单独或共同运行指令616以执行本文讨论的任何一种或多种方法论的机器600的聚集。
[0299]
在各种实施例中,机器600包括处理器610、存储器630和i/o组件650,它们可以被配置成经由总线602彼此通信。在示例实施例中,处理器610(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic)、射频集成电路(rfic)、另一处理器或其任何合适的
组合)包括例如可以运行指令616的处理器612和处理器614。术语“处理器”旨在包括多核处理器610,该多核处理器610可以包括能够同时运行指令616的两个或更多个独立处理器612、614(也称为“核”)。尽管图6示出了多个处理器610,但是机器600可以包括具有单核的单个处理器610、具有多核的单个处理器610(例如,多核处理器610)、具有单个核的多个处理器612、614、具有多个核的多个处理器612、614或者它们的任意组合。
[0300]
根据一些实施例,存储器630包括主存储器632、静态存储器634和处理器610可经由总线602访问的存储单元636。存储单元636可以包括机器可读介质638,其上存储有体现本文描述的任何一种或多种方法论或功能的指令616。在由机器600运行期间,指令616还可以完全地或至少部分地驻留在主存储器632内、静态存储器634内、至少一个处理器610内(例如,在处理器的高速缓冲存储器内)或其任何合适的组合内。因此,在各种实施例中,主存储器632、静态存储器634和处理器610被认为是机器可读介质638。
[0301]
如本文所用,术语“存储器”是指能够临时或永久存储数据的机器可读介质638,并且可以被认为包括但不限于随机存取存储器(ram)、只读存储器(rom)、缓冲器存储器、闪存和高速缓冲存储器。虽然在示例实施例中,机器可读介质638被示为单个介质,但是术语“机器可读介质”应当被理解为包括能够存储指令616的单个介质或多个介质(例如,集中式或分布式数据库,或者相关联的高速缓存和服务器)。术语“机器可读介质”还应被理解为包括能够存储由机器(例如,机器600)运行的指令(例如,指令616)的任何介质或多种介质的组合,使得当指令616由机器600的一个或多个处理器(例如,处理器610)执行时,使得机器600执行本文描述的任何一种或多种方法论。因此,“机器可读介质”是指单个存储装置或设备,以及包括多个存储装置或设备的“基于云的”存储系统或存储网络。因此,术语“机器可读介质”应被理解为包括但不限于固态存储器(例如闪存)、光学介质、磁介质、其他非易失性存储器(例如可擦除可编程只读存储器(eprom))或其任何合适的组合形式的一个或多个数据存储库。术语“机器可读介质”明确排除了非法定(non-statutory)信号本身。
[0302]
i/o组件650包括接收输入、提供输出、产生输出、传输信息、交换信息、捕获测量结果等的多种多样的组件。一般而言,将会理解,i/o组件650可以包括图6中未示出的许多其他组件。i/o组件650根据功能进行分组仅仅是为了简化下面的讨论,并且该分组决不是限制性的。在各种示例实施例中,i/o组件650包括输出组件652和输入组件654。输出组件652包括视觉组件(例如,诸如等离子体显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt)的显示器)、听觉组件(例如,扬声器)、触觉组件(例如,振动马达)、其他信号发生器等。输入组件654包括字母数字输入组件(例如,键盘、被配置为接收字母数字输入的触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他指示仪器)、触觉输入组件(例如,物理按钮、提供触摸位置和力或触摸手势的触摸屏或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
[0303]
在一些进一步的示例实施例中,i/o组件650包括生物特征(biometric)组件656、运动组件658、环境组件660或位置组件662,以及其他各种组件。例如,生物特征组件656包括用于检测表情(例如,手表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、排汗或脑电波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件658包括加速度传感器组件(例如,加速
度计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件660包括,例如,照明传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度计)、湿度传感器组件、压力传感器组件(例如,气压计)、声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器组件(例如,机器嗅觉检测传感器、为了安全检测危险气体的浓度或测量大气中的污染物的气体检测传感器)、或者可以提供对应于周围物理环境的指示、测量或信号的其他组件。位置组件662包括位置传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,检测气压的高度计或气压计,从该气压可以得出高度)、方位传感器组件(例如,磁力计)等。
[0304]
通信可以使用多种多样的技术来实现。i/o组件650可以包括通信组件664,通信组件664可操作来分别经由耦合682和耦合672将机器600耦合到网络680或设备670。例如,通信组件664包括网络接口组件或与网络680接口的另一合适的设备。在进一步的示例中,通信组件664包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低能量)、组件和经由其他形式提供通信的其他通信组件。设备670可以是另一机器600或各种外围设备中的任何一种(例如,经由通用串行总线(usb)耦合的外围设备)。
[0305]
此外,在一些实施例中,通信组件664检测标识符或包括可操作来检测标识符的组件。例如,通信组件664包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,检测诸如通用产品代码(upc)条形码的一维条形码、诸如快速响应(qr)码的多维条形码、阿兹特克码、数据矩阵、数据字形(dataglyph)、最大码、pdf417、超码、统一商业码缩减空间符号(ucc rss)-2d条形码和其他光学码的光学传感器)、声学检测组件(例如,用于标识标记的音频信号的麦克风)、或者它们的任何合适的组合。此外,可以经由通信组件664导出各种信息,诸如经由互联网协议(ip)地理位置的位置、经由信号三角测量的位置、经由检测可能指示特定位置的或nfc信标信号的位置等。
[0306]
在各种示例实施例中,网络680的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网络(vpn)、局域网(lan)、无线lan(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网(pstn)的一部分、普通老式电话服务(pots)网络、蜂窝电话网、无线网络、网络、另一种类型的网络、或两个或多个这样的网络的组合。例如,网络680或网络680的一部分可以包括无线或蜂窝网络,并且耦合682可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一种类型的蜂窝或无线耦合。在该示例中,耦合682可以实现多种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、增强型数据速率gsm演进(edge)技术、包括3g的第三代合作伙伴计划(3gpp)、第四代无线(4g)网络、通用移动电信系统(umts)、高速分组接入(hspa)、微波接入全球互通(wimax)、长期演进(lte)标准、由各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。
[0307]
在示例实施例中,使用传输介质,经由网络接口设备(例如,包括在通信组件664中的网络接口组件),并利用多种众所周知的传输协议(例如,超文本传输协议(http))中的任
何一种,在网络680上发送或接收指令616。类似地,在其他示例实施例中,指令616使用传输介质经由耦合672(例如,对等耦合)发送输或接收到设备670。术语“传输介质”应被理解为包括能够存储、编码或携带由机器600运行的指令616的任何无形介质,并且包括数字或模拟通信信号或其他无形介质,以便于这种软件的通信。
[0308]
此外,机器可读介质638是非暂时性的(换句话说,不具有任何暂时性信号),因为它不包含传播信号。然而,将机器可读介质638标记为“非暂时性”不应被解释为意味着该介质不能移动;介质638应该被认为是可从一个物理位置运输到另一个物理位置的。另外,由于机器可读介质638是有形的,所以介质638可以被认为是机器可读设备。
[0309]
在整个说明书中,多个实例可以实现描述为单个实例的组件、操作或结构。尽管一个或多个方法的单独操作被示出并描述为单独的操作,但是一个或多个单独的操作可以同时执行,并且不需要以所示的顺序执行操作。在示例配置中呈现为独立组件的结构和功能可以实现为组合的结构或组件。类似地,呈现为单个组件的结构和功能可以实现为单独的组件。这些和其他变化、修改、添加和改进都落在本文主题的范围内。
[0310]
虽然已经参考特定示例实施例描述了本发明主题的概述,但是在不脱离本公开的实施例的更宽范围的情况下,可以对这些实施例进行各种修改和改变。
[0311]
在此示出的实施例被足够详细地描述,以使本领域技术人员能够实践所公开的教导。可以使用其他实施例并从中导出,从而可以在不脱离本公开的范围的情况下进行结构和逻辑的替换和改变。因此,详细描述不应被视为限制性的,并且各种实施例的范围仅由所附权利要求以及这些权利要求所赋予的等同物的全部范围来限定。
[0312]
如本文所用,术语“或”可以被解释为包含性或排他性的含义。此外,可以为本文描述为单个实例的资源、操作或结构提供多个实例。此外,各种资源、操作、模块、引擎和数据存储之间的边界有些任意,并且特定操作在特定说明性配置的上下文中示出。功能的其他分配是可预见的,并且可以落入本公开的各种实施例的范围内。一般而言,在示例配置中呈现为单独资源的结构和功能可以实现为组合结构或资源。类似地,作为单个资源呈现的结构和功能可以作为单独的资源来实现。这些和其他变化、修改、添加和改进落入由所附权利要求表示的本公开的实施例的范围内。因此,说明书和附图被认为是说明性的,而不是限制性的。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1