比较所提取的用户名与所存储的用户数据的制作方法

文档序号:14491509阅读:194来源:国知局
比较所提取的用户名与所存储的用户数据的制作方法

相关申请的交叉引用

本申请要求享有2015年8月16日提交的、题为“comparinganextractedusernamewithstoreduserdata”的美国专利申请号14/827,330的优先权。上文所标识的优先权申请的全部内容通过引用完全并入本文。

本文所公开的技术属于从金融卡提取用户名并且将用户名的分段与存储在用户数据中的名字相比较来完善所提取的名字。



背景技术:

当消费者使用移动设备进行在线购买或购买时,他们常常被迫使将信用卡信息录入移动设备用于支付。由于移动设备上的小的屏幕尺寸和键盘接口,因而这样的记入通常是麻烦且易于出错的。用户可能使用许多不同的卡(诸如信用卡、借记卡、储值卡和其它卡)进行购买。对于尝试处理移动设备上的移动支付进行多个交易的商家,信息记入困难倍增。

对于使用从支付卡获得支付信息的光学字符识别(“ocr”)应用的当前应用没有利用诸如存储在用户数据中的名字和联系人的其它可用数据来修正所提取的名字。



技术实现要素:

本文中的技术提供允许用户计算设备使用光学字符识别(“ocr”)从金融卡图像提取用户名并且将用户名的分段与存储在用户数据中的名字相比较来完善所提取的名字的计算机实现的方法。ocr应用捕获卡的图像并且在卡图像上执行ocr算法。ocr应用标识潜在地匹配的所存储的名字的列表。ocr应用将所提取的名字分解为一个或多个系列的分段并且将来自所提取的名字的分段与来自所存储的名字的分段相比较。ocr应用确定所提取的名字与每个潜在的匹配的所存储的名字之间的编辑距离。总体编辑距离通过在用于每个分段的编辑距离和分段之间的编辑距离中因式分解计算。在标识具有最低总体编辑距离的系列之后,ocr应用将编辑距离与所配置的阈值相比较。如果编辑距离在阈值以下,那么ocr应用修正所提取的名字来匹配所标识的所存储的名字。将所完善的名字呈现给用户用于验证。

在本文所描述的特定其它示例方面中,系统和计算机程序产品从金融卡提取用户名并且将用户名的分段与存储在用户数据中的名字相比较来完善所提取的名字。

在考虑所图示的示例实施例的以下详细描述时,示例实施例的这些和其它方面、目标、特征和优点对于本领域的普通技术人员将变得显而易见。

附图说明

图1是根据本文所公开的技术的特定示例实施例的描绘使用所存储的用户名验证和校正所提取的用户名的系统的框图。

图2是根据特定示例实施例的描绘使用所存储的用户名验证和校正所提取的用户名的方法的块流程图。

图3是根据特定示例实施例的描绘将所提取的名字与所分析的用户数据相比较的方法的块流程图。

图4是根据特定示例实施例的显示金融卡的图像的用户计算设备的图示。

图5是根据特定示例实施例的描绘计算机器和模块的框图。

具体实施方式

概述

本文中的实施例提供允许用户计算设备使用光学字符识别(“ocr”)从金融卡图像提取用户名并且将用户名的分段与存储在用户数据中的名字相比较来完善所提取的名字的计算机实现的技术。

用户采用移动电话、数字相机或其它用户计算设备捕获与用户期望输入用户计算设备的账户相关联的卡的图像。在用户计算设备或者与用户计算设备相关联的服务器上操作的ocr应用接收卡的图像。ocr应用在卡图像上执行ocr算法并且将所提取的名字与存储在用户计算设备上或者与用户相关联的任何相关账户,诸如联系人数据库、用户金融账户、数字钱包账户中的用户数据或任何其它适合的用户数据相比较。ocr应用标识潜在地匹配的所存储的名字的列表。

ocr应用将所提取的名字分解为一个或多个系列的分段。在示例中,分段在所提取的名字中的每个空格处被分解。例如,在名字johnasmith中,分段可以被分解为三个分段(诸如jon/a/smith)。名字识别算法中所标识的所存储的名字以类似的方式被分解为分段。

ocr应用将来自所提取的名字的分段与来自所存储的名字的分段相比较。ocr应用确定比较中的每组名字之间的编辑距离。例如,如果所存储的名字的第一分段是jan,那么编辑距离将是一个字母。即,将jon中的单个字母“o”改变到“a”将产生所存储的名字分段“jan”。可以通过用于每个分段中的编辑距离与分段之间的编辑距离因式分解来计算总体编辑距离。例如,如果三个分段中的两个完美地匹配,但是一个分段要求编辑,那么分段之间的编辑距离将是一个分段。

在另一示例中,可以通过将用于每个分段的编辑距离求和来计算总体编辑距离。在另一示例中,在比较的名字中不具有对应的分段的分段对总体编辑距离没有贡献。在另一示例中,从所存储的名字的跳过分段对总体编辑距离没有贡献,但是不具有对应的所存储的名字分段的所提取的分段对总体编辑距离有贡献。

在另一示例中,附加分段分割可以被标识用于所提取的名字。例如,jonasmith可以被分段为jon/asmith、jona/smith或jon/a/smith或分段的任何其它适合的分组。

在另一示例中,金融卡的某些字母可能被磨损并且在所提取的名字中留下空格,诸如在所提取的名字为jonasmth的情况。ocr应用可以将示例提取的名字划分为1、2、3或4个分段。在与所存储的名字的比较之后,可以利用产生最低编辑距离的分段的数目。

在标识具有最短总体编辑距离的系列之后,ocr应用将编辑距离与所配置的阈值相比较。如果编辑距离在阈值以下,那么ocr应用修正所提取的名字来匹配所标识的所存储的名字。所修正的名字被呈现给用户用于验证。所修正的名字被传递到将利用用户名的应用或系统,诸如数字钱包应用。

在特定示例中,所提取的名字未被修正以反映完整的所存储的名字。即,总体编辑距离不被用于仅接受或拒绝修正。相反,如果单独的所提取的名字分段具有在所配置的阈值以下的编辑距离,则可以修正单独的所提取的名字分段。修正单独分段允许部分匹配被使用。在示例中,用户使用用户设备扫描配偶的卡。如果卡上的最后名字分段匹配与用户设备相关联的手机账户上的账户名的最后名字,则ocr应用将在最后名字分段上执行校正。然而,如果第一名字在阈值以下不匹配,则第一名字将不被修正。

通过使用并且依赖于本文所描述的方法和系统,ocr应用、ocr系统、用户计算设备或其它计算系统从金融卡提取用户名并且将用户名的分段与存储在用户数据中的名字相比较来通过完善名字改进提取过程。如此,本文所描述的系统和方法可以被用于允许计算设备利用用户数据,诸如联系人应用和账户名,以在呈现给用户之前验证并且修正建议的用户名。依赖于用户数据来改进提取过程允许计算设备向用户提供更准确并且精确的数据提取。经改进的提取将允许用户缩短时间并且减少将金融卡数据输入数字钱包或其它适合的应用中所要求的努力。进一步地,将所提取的名字和所存储的名字分解为一个或多个系列的分段并且然后逐分段比较并且计算编辑距离导致用于计算完善的名字的高效实施方式,因为在全名上执行对应的操作相比逐分段执行相同操作通常要求更多的计算资源(由于较高的计算复杂性)。

示例系统架构

现在转到附图,在附图中贯穿附图相同附图标记表示相似(但是不必相同)元件的附图,详细描述了示例实施例。

图1是根据特定示例实施例的描绘使用所存储的用户名验证和校正所提取的用户名的系统的框图。

如在图1中所描绘的,系统100包括被配置成经由一个或多个网络105相互通信的网络计算设备110、120和170。在一些实施例中,与设备相关联的用户101必须安装应用和/或进行特征选择来获得本文所描述的技术的益处。

每个网络105包括网络设备(包括设备110、120和170)能够通过其交换数据的有线或无线电信装置。例如,每个网络105能够包括局域网(“lan”)、广域网(“wan”)、内联网、互联网、移动电话网络、存储区域网络(san)、个域网(pan)、城域网(man)、无线局域网(wlan)、虚拟专用网络(vpn)、蜂窝或其它移动通信网络、蓝牙、nfc或其任何组合或促进信号或数据的通信的任何其它适当的架构或系统。贯穿示例实施例的讨论,应该理解的是,术语“数据”和“信息”在本文中可交换地被用于指代能够存在于基于计算机的环境中的文本、图像、音频、视频或任何其它形式的信息。由设备110、120和170利用的通信技术可以是与网络105类似的网络或者替选通信技术。

每个网络计算设备110、120和170包括具有能够通过网络105发送和接收数据的通信模块的设备。例如,每个网络设备110、120和170能够包括服务器、台式计算机、膝上型计算机、平板计算机、具有嵌入其中和/或耦合到其的一个或多个处理器的电视、智能电话、手持式计算机、个人数字助理(“pda”)或任何其它有线或无线处理器驱动的设备。在图1中所描绘的示例实施例中,网络设备110、120和170相应地由终端用户或消费者、ocr系统操作者和卡发行方操作者操作。

用户101能够使用通信应用112(其可以是例如web浏览器应用或独立应用)以经由分布式网络105查看、下载、上载或以其它方式访问文档或web页面。网络105包括网络设备(包括设备110、120和170)能够通过其交换数据的有线或无线电信系统或设备。例如,网络105能够包括局域网(“lan”)、广域网(“wan”)、内联网、互联网、存储区域网络(san)、个域网(pan)、城域网(man)、无线局域网(wlan)、虚拟专用网络(vpn)、蜂窝或其它移动通信网络、蓝牙、nfc或其任何组合或促进信号、数据和/或消息的通信的任何其它适当的架构或系统。

用户计算设备110可以采用通信应用112与ocr系统120的web服务器124或其它服务器通信。通信应用112可以允许设备经由除网络105外的技术通信。示例可以包括蜂窝网络、无线电网络或其它通信网络。

用户计算设备110可以包括数字钱包应用111。数字钱包应用111可以涵盖用户计算设备110可以用于辅助用户101完成购买的任何应用、硬件、软件或过程。数字钱包应用111能够与通信应用112相互作用或者能够被实现为通信应用112的配套应用。作为配套应用,数字钱包应用111在通信应用112内执行。即,数字钱包应用111可以是被嵌入在通信应用112中的应用程序。在特定实施例中,用户101的数字钱包可以驻留在云计算环境中、在商家服务器上或在任何其它环境中。

用户计算设备110可以包括光学字符识别(“ocr”)应用115。ocr应用115可以与通信应用112相互作用或者被实现为通信应用112的配套应用并且在通信应用112内执行。在示例性实施例中,ocr应用115可以附加地或替选地被实现为数字钱包应用111的配套应用并且在数字钱包应用111内执行。ocr应用115可以采用在数字钱包应用111中打开或者可以在通信应用112中打开的软件接口。接口能够允许用户101对ocr应用115进行配置。

ocr应用115可以被用于分析卡102并且从卡102提取信息或其它数据。开发ocr算法或其它方法的ocr系统120或其它系统可以包括使得ocr系统120能够与ocr应用115相互作用的计算机可读程序指令集(例如,使用javascript)。

如由ocr应用115所执行的说明书中所描述的功能中的任一个能够由ocr系统120、用户计算设备110、数字钱包应用111、商家系统(未绘出)或任何其它适合的硬件或软件系统或应用执行。在示例中,用户计算设备110上的ocr应用115可以获得卡102的图像并且将图像发送到ocr系统120来提取关于卡102的信息。

用户计算设备110包括由ocr应用115、通信应用112或任何适合的计算设备或应用可访问的数据存储单元113。示例性数据存储单元113能够包括一个或多个有形计算机可读介质。数据存储单元113能够被存储在用户计算设备110上或者能够逻辑地耦合到用户计算设备110。例如,数据存储单元113能够包括板载闪速存储器和/或一个或多个可移除的存储器卡或可移除的闪速存储器。

用户计算设备110可以包括相机114。相机可以是获得数字图像的用户计算设备110的任何模块或功能。相机114可以板载用户计算设备110或者以逻辑连接到用户计算设备110的任何方式。相机114可能能够获得单独的图像或者视频扫描。任何其它适合的图像捕获设备可以由相机114表示。

用户计算设备110可以包括用户应用116。用户应用116可以是联系人应用、电子邮件应用、数字钱包应用111或可以采用用户101的名字和/或用户101的相识人的名字的任何应用。用户101可以提供对ocr应用115访问来自用户应用116的名字和其它数据的允许。ocr应用115可以使用来自用户应用116的数据验证或改进ocr过程。

卡发行方(诸如银行或其它机构)可以是被注册的金融账户的发行方。例如,卡发行方可以是信用卡发行方、借记卡发行方、储值卡发行方、提供账户的金融机构或金融账户的任何其它提供方。支付处理系统(未绘出)还可以用作用于相关联的金融账户的发行方。用户101的注册信息被保存在卡发行方的数据存储单元中并且是由web服务器174可访问的。卡发行方采用卡发行方系统170来发行卡、管理用户账户并且执行任何其它适合的功能。卡发行方系统170可以替选地发行被用于标识、访问、验证、售票的卡或用于任何其它适合的目的的卡。卡发行方系统170采用web服务器174允许用户101注册卡、允许商家与卡发行方系统170通信、进行交易或执行任何其它适合的任务。

ocr系统120利用操作产生、管理、存储或维护ocr算法、方法、过程或服务的系统的ocr系统web服务器124。ocr系统web服务器124可以表示ocr系统120采用以向用户计算设备110、商家计算系统或任何适合的实体提供ocr服务的计算机实现的系统。ocr系统web服务器124能够经由任何可用的技术与一个或多个支付处理系统、用户计算设备110或其它计算设备通信。这样的技术可以包括例如经由网络105、电子邮件、文本、即时消息或其它适合的通信技术的互联网连接。ocr系统120可以包括由ocr系统120的web服务器124可访问的数据存储单元127。数据存储单元127能够包括一个或多个有形计算机可读存储设备。

在特定示例中,如由ocr系统120所执行的说明书中所描述的功能中的任一个能够由ocr应用115、用户计算设备110或任何其它适合的硬件或软件系统或应用执行。

贯穿说明书,一般术语“卡”将被用于表示任何类型的物理卡仪器(诸如支付账户卡102)。在示例实施例中,由“卡”102所表示的不同类型的卡102能够包括信用卡、借记卡、储值卡、忠诚卡、标识卡或表示用户101的账户的任何其它适合的卡或其上的其它信息。

当进行交易(诸如购买、售票条目、忠诚度登记或其它适合的交易)时,用户101可以采用卡102。出于将由卡102所表示的账户输入到计算设备110的数字钱包应用111中的目的或者出于其它数字账户目的,用户101可以获得卡信息。卡102通常是包含卡102上的账户信息和其它数据的塑料卡。在许多卡102实施例中,客户名、有效期和卡号在卡102上物理凸出。凸出信息是从卡102的前面和后面二者可见的,但是凸出信息通常在卡102的后面被反转。

应当理解,所示的网络连接是示例性的,并且能够使用建立计算机与设备之间的通信链路的其它装置。而且,具有本公开的益处的本领域的普通技术人员将理解到,图1中所图示的用户计算设备110、ocr系统120和卡发行方系统170能够具有若干其它适合的计算机系统配置中的任一个。例如,被实现为移动电话或手持式计算机的用户计算设备110可以不包括上文所描述的所有部件。

在示例实施例中,网络计算设备和与本文所呈现的技术相关联的任何其它计算机器可以是任何类型的计算机器(诸如但不限于相对于图5更详细讨论的那些计算机器)。而且,与这些计算机器中的任一个相关联的任何功能、应用或模块,诸如本文所描述的那些计算机器或者与本文所呈现的技术相关联的任何其它(例如,脚本、web内容、软件、固件或硬件)可以是相对于图5更详细讨论的模块中的任一个。本文所讨论的计算机器可以相互通信,以及通过一个或多个网络(诸如网络105)与其它计算机器或通信系统通信。网络105可以包括任何类型的数据或通信网络,包括相对于图5所讨论的网络技术中的任一个。

示例过程

相对于示例操作环境100的部件,在下文中描述图2-3中所图示的示例方法。还可以利用其它系统并且在其它环境中执行图2-3的示例方法。

图2是根据特定示例性实施例的描绘使用所存储的用户名验证并且校正所提取的用户名的方法200的块流程图。

参考图1和图2,在块205中,用户计算设备110上的光学字符识别(“ocr”)应用115获得支付账户卡102的数字扫描或图像。用户101采用移动电话、数字相机或其它用户计算设备110捕获与用户101期望输入到用户计算设备110中的账户相关联的卡102的图像。

贯穿说明书,一般术语“卡”将被用于表示任何类型的物理卡仪器(诸如磁条卡)。在示例实施例中,由“卡”102所表示的不同类型的仪器能够包括信用卡、借记卡、储值卡、忠诚卡、标识卡或表示用户的账户或其它记录的任何其它适合的卡或其上的其它信息。本文所描述的示例实施例可以被应用到其它项(诸如收据、登机牌、票据和其它适合的项)的图像。卡102还可以是卡的图像或传真。例如,卡102可以是显示屏上的卡的表示或卡102的打印图像。

当进行交易(诸如购买、售票条目、忠诚度登记或其它适合的交易)时,用户101可以采用卡102。出于将由卡102所表示的账户输入到计算设备110的数字钱包应用111模块中的目的或者出于其它数字账户目的,用户101可以获得卡信息。卡102通常是包含卡102上的账户信息和其它数据的塑料卡。在许多卡102实施例中,用户名、有效期和卡号在卡上物理凸出或以其它方式写入。

用户101可以期望将信息从卡102录入用户计算设备110或其它计算设备,例如,以进行在线购买、在商家位置处进行购买、将信息添加到用户计算设备上的数字钱包应用111或用于任何其它适合的原因。在示例中,用户101期望使用用户计算设备110以使用在移动计算设备上执行的数字钱包应用111进行购买交易。数字钱包应用111可以要求特定用户支付账户的细节的输入以与特定用户支付账户进行交易或建立账户。由于移动设备上的小的屏幕尺寸和键盘接口,因而这样的记入是麻烦的并且对于手动输入易于出错的。此外,商家系统可能需要捕获卡信息来进行交易或用于其它原因。

用户计算设备110上的ocr应用115出于提取所要求的信息(诸如用户102的名字)的目的,接收卡102的图像。图像可以从用户计算设备110的相机114或其它数字图像模块(诸如移动电话上的相机114)获得。图像可以从耦合到用户计算设备110或任何其它适合的数字成像设备的扫描器获得。图像可以从由用户计算设备110所捕获的视频获得。图像可以从用户计算设备110上的存储位置、从远程存储位置或从任何适合的位置由用户计算设备110上的ocr应用115访问。能够提供图像的全部源在本文中将被称为“相机”114。

ocr应用115从相机114接收卡102的图像。ocr应用115的功能可以由在用户计算设备上操作的任何适合的模块、硬件、软件或应用执行。ocr应用115的功能中的一些或全部可以由远程服务器或其它计算设备(诸如在ocr系统120中操作的服务器)执行。例如,用户计算设备110上的数字钱包应用111可以获得卡102的图像并且将图像发送到ocr系统120用于处理。在另一示例中,ocr功能中的一些可以由用户计算设备110进行并且一些ocr功能可以由ocr系统120或另一远程服务器进行。本文所提供的示例可以指示功能中的许多功能由用户计算设备110上的ocr应用115执行,但是功能中的一些或全部可以由任何适合的计算设备执行。

图像被呈现在用户计算设备110的用户接口上作为卡102的实况视频图像或卡102的单个图像。ocr应用115能够将一个或多个图像与相机114的视频馈送隔离并且存储。例如,用户101可以将用户计算设备110的相机114功能悬停在卡上并且观察用户计算设备110的用户接口上的卡的表示。在图4中呈现了被显示在用户计算设备上的卡102的图示。

图4是根据特定示例实施例的显示金融卡102的图像的用户计算设备110的图示。用户计算设备110被示出为移动智能电话。用户计算设备110被示出有显示屏405作为用户接口。卡102被示出被显示在用户计算设备110上。

返回图2,在块210中,ocr应用115隔离卡的图像。任何图像数据操纵或图像提取可以被用于隔离卡图像。

ocr应用115、相机114或用户计算设备110或其它计算设备在图像上执行模糊检测。图像可以被识别为模糊的、过亮的、过暗的或否则以在防止高分辨率图像被获得的方式模糊。ocr应用115或其它计算设备可以调节图像捕获方法来减少图像中的模糊。例如,ocr应用115可以引导相机114以调节金融卡上的焦点。在另一示例中,ocr应用115可以引导用户以将相机114移动更接近或更远离金融卡。在另一示例中,ocr应用115可以执行数字图像操纵以移除模糊。可以利用校正模糊图像的任何其它适合的方法。

在块215中,ocr应用115从卡102的图像提取用户名。ocr应用115将ocr算法应用到卡图像来标识卡102上的信息。ocr算法可以表示识别在卡图像上所表示的数字或字符的任何适合的过程、程序、方法或其它方式。ocr算法可以被定制以查找卡图像上的特定位置中的用户名的字符。ocr算法可以被定制以查找字符的特定组合。ocr算法可以被定制以知道来自特定信用卡公司的卡通常具有卡102的反面上的特定数据。ocr算法可以被定制以知道哪些字符通常突出。ocr算法可以被定制以查找任何配置的布置、数据位置、限制、卡类型、字符配置或其它适合的卡数据来标识用户名和其它账户信息。ocr应用115可以使用统计语言模型来完善结果。语言模型使用关于不同的字符的概率的信息并且组合字符来确定最可能的名字。例如,如果ocr算法的结果返回“anma”的所提取的名字,则统计语言模型将推断“anna”是最可能的结果并且将更新结果。

在块220中,ocr应用115分析用户联系人列表和其它用户数据。ocr应用115从用户计算设备110和任何其它适合的位置访问与用户101相关联的所存储的信息。名字可以从联系人列表、电子邮件应用、用户社交网络和其它适合的用户应用116、从其可以被存储在用户计算设备110上的信息、ocr系统120或另一适合的位置提取。在另一示例中,ocr应用115访问与各种用户账户(诸如数字钱包账户、金融支付账户或用户101的任何其它适合的账户)相关联的所存储的信息。ocr应用115标识用户数据中的名字以与所提取的名字相比较。例如,ocr应用115访问用户计算设备110上的数字钱包账户并且标识与数字钱包账户相关联的用户101的名字。与数字钱包账户相关联的用户101的名字可能是与卡102上的用户名相同的名字。

在块225中,ocr应用115将所提取的名字与分析的用户数据相比较。相对于图3的方法225更详细地描述了块225的细节。

图3是根据特定示例实施例的描绘将所提取的名字与所分析的用户数据相比较的方法的块流程图。在块305中,ocr应用115标识可能与所提取的名字相关联的一个或多个所存储的名字。ocr应用115标识在用户数据中重复的名字(诸如在用户计算设备110上管理的用户账户上的名字)。替选地,ocr应用115标识与用户名类似的名字。例如,用户101的配偶或相同姓氏的其它家庭成员可以频繁地表示在用户数据中(诸如在联系人列表或社交网络上)。

在块310中,ocr应用115将所提取的名字分解为一个或多个系列的分段。在示例中,分段在所提取的名字中的每个空格处被分解。例如,在名字jonasmith中,分段可以被分解为三个分段(诸如jon/a/smith)。名字识别算法中所标识的所存储的名字以类似的方式被分解为分段。

在另一示例中,附加分段分割可以被标识用于所提取的名字。例如,jonasmith可以被分段为jon/asmith、jona/smith或jon/a/smith或分段的任何其它适合的分组。

在另一示例中,金融卡的某些字母可能被磨损并且在所提取的名字中留下空格(诸如具有所提取的名字jonasmth)。ocr应用可以将示例提取的名字划分为1、2、3或4个分段。例如,分段可以被表示为jon/asm/th、jonasm/th、jon/asmth、jon/a/smth、jona/smth、jon/a/sm/th或任何其它适合的系列的分段。

在块315中,ocr应用115将所存储的名字分解为一个或多个系列的分段。以与在块310中用于将所提取的名字分段的方法类似的方法执行所存储的名字的分段。通常地,所存储的名字在名字中的每个空格处被分解。

在块320中,ocr应用115将所提取的名字的一个或多个系列的分段的每个分段与所存储的名字的分段相比较。所提取的名字的分段中的每个分段与所存储的名字的分段相比较。例如,ocr应用115将所提取的名字的分段的每个字母与所存储的名字的分段的每个字母相比较并且确定字母是否是相同的。如果字母不相同,则不同的字母被标识。

在块325中,ocr应用115计算用于分段中的每个分段的编辑距离。ocr应用115确定比较中的每个分段之间的编辑距离。在示例中,如果所存储的名字的第一分段是jan,那么编辑距离将是一个字母。即,将jon中的单个字母“o”改变为“a”将产生所存储的名字分段“jan”。改变单个字母将提供1的编辑距离。可以针对系列中的分段的每个分段执行编辑距离比较。分段可以与被标识为可能地与所提取的名字匹配的所存储的名字中的每个相比较。

在块330中,ocr应用115计算用于所提取的名字的一个或多个系列中的分段的每个分段到所存储的名字的分段的总体编辑距离。ocr应用115通过组合系列的分段的单独分段中的每个分段的编辑距离计算用于一系列的分段的总体编辑距离。编辑距离可以被添加或具有应用到分段编辑距离的任何其它数学函数。例如,得分(诸如“90%”或“a”)可以基于系列的分段的单独分段中的每个分段的编辑距离而产生。

在特定示例中,当计算总体编辑距离时,特定分段可以从计算省略。在示例中,所提取的用户名被分段为“jon/smith”,而所存储的名字被分段为“dr/jon/a/smith”。分段“jon”和“smith”具有0的编辑距离,并且来自所存储的名字的“dr”和“a”分段可以出于计算总体编辑距离的目的而省略,这提供0的总体编辑距离。在另一示例中,跳过的所存储的分段对总体编辑距离没有贡献,但是不具有对应的所存储的名字分段的所提取的分段对总体编辑距离有贡献。

在示例中,所提取的用户名被分段为“jon/a/smith”,而所存储的名字被分段为“dr/jan/smith”。对于“jon”和“a”的编辑距离各自被确定为1。即,一个字母可以针对每个分段改变来创建与所存储的名字的匹配。来自存储名字的分段“dr”从总体编辑距离省略,因为所提取的名字不包括对应的分段。添加所要求的编辑距离将创建2的总体编辑距离。替选地,基于编辑距离(诸如a的得分90%或者任何其它适合的评分系统),可以创建匹配得分。

在示例中,仅在字符中而非在分段中测量编辑距离。例如,编辑距离将被计数为总编辑字符并且不包括编辑分段的数目。建立所提取的名字的分段与所存储的名字分段之间的对应性,使得每个所提取的名字分段或者具有对应的所存储的名字分段或者被跳过,并且类似地每个所存储的名字分段或者具有对应的所提取的名字分段或者被跳过。总编辑距离然后通过将每对对应的分段之间的编辑距离求和并且添加到跳过的所有所提取的名字分段的总长度来计算。即,跳过的所存储的名字分段未被惩罚并且跳过所存储的名字分段未添加到总编辑距离。

作为示例:

所提取的名字:mrjonsmith

所存储的名字:joepsmithers

编辑距离将是如下:来自所提取的名字的“mr”将具有2的编辑距离,因为分段来自所提取的名字。与“joe”相比较,“jon”将具有1的编辑距离。来自所存储的名字的“p”将对编辑距离没有贡献,因为跳过的分段来自所存储的名字。与“smithers”相比较,“smith”将具有3的编辑距离。

因此,总体编辑距离是2+1+3=6。

在块335中,ocr应用115标识具有最低编辑距离的系列的分段。在与被标识为可能匹配的所存储的名字中的每个相比较从系列的分段中的每个计算总体编辑距离或得分之后,ocr应用115标识具有最低总体编辑距离的系列的分段。在示例中,如果所提取的名字被分解为分段如下:jon/asmith、jona/smith或jon/a/smith。jon/asmith具有3的总体编辑距离。jona/smith具有2的总体编辑距离。jon/a/smith具有1的总体编辑距离。因此,jon/a/smith具有不同的系列的分段的最低总体编辑距离。

在块340中,ocr应用115将编辑距离与阈值编辑距离相比较。在标识具有最低总体编辑距离的系列之后,ocr应用115将总体编辑距离与所配置的阈值相比较。如果编辑距离在阈值以下,那么ocr应用115修正所提取的名字来匹配所标识的所存储的名字。在示例中,阈值总体编辑距离被配置成是3。阈值可以由用户101、ocr系统140的操作者、卡发行方系统170的操作者或任何其它适合的人、系统或方配置。阈值可以基于所计算的总体编辑距离,得分可以基于分段的编辑距离,或者任何其它阈值可以基于被用于评估所提取的用户名的系统。

从块340,方法225返回图3的块230。

在块230中,ocr应用115确定总体编辑距离是否在配置阈值以下。如果总体编辑距离在配置阈值以下,则方法200转到块235。

在块235中,ocr应用115基于所存储的名字,完善所提取的名字。由于所存储的名字被假定为由用户101、卡发行方或另一人或系统准确地录入,所以所提取的名字被修正以与所存储的名字一致。例如,如果所提取的名字是“jona.smith”并且所存储的名字是“jana.smith”,那么ocr应用115将所提取的名字改变为“jana.smith”。在所提取的名字中未出现的分段可以不计入修正或插入。即,如果所提取的名字是“jona.smith”并且所存储的名字是“drjonh.smith”,那么ocr应用115可以将所提取的名字修正为“drjonh.smith”。替选地,ocr应用115可以仅将所提取的名字校正为“jonh.smith”并且省略“dr”。

在特定示例中,完整的所提取的名字未被修正以反映完整的所存储的名字。即,总体编辑距离未被用于仅接受或拒绝修正。相反,如果单独的所提取的名字分组具有在所配置的阈值以下的编辑距离,则可以修正单独的所提取的名字分段。修正单独分段允许部分匹配被使用。在示例中,用户101使用用户计算设备110扫描配偶的卡。如果卡上最后名字匹配与用户计算设备110相关联的手机账户上的账户名字,则ocr应用115将在最后名字上执行校正。然而,如果第一名字在阈值以下不匹配,则第一名字将不被修正。例如,如果来自卡的所提取的名字是“alicesmathers”并且所存储的名字“jonsmithers”频繁地出现在用户数据中,那么ocr应用115可以将所提取的名字完善为“alicesmithers”。

在块240中,ocr应用115从用户101接收所提取的名字的确认。ocr应用115利用验证或校正名字的指令在用户计算设备110的用户接口上向用户101提供完善的名字。例如,如果ocr应用115不正确地修正所提取的名字,则用户101可以将正确名字录入用户接口中。

从块240,方法200转到块245。

返回块230,如果总体编辑距离等于配置的阈值或在配置的阈值以上,则方法200转到块240。ocr应用115仅继续向用户计算设备110提供未修正的名字,如在块235中所描述的。即,ocr应用115利用验证或校正名字的指令在用户计算设备110的用户接口上向用户101提供未校正的名字。例如,如果ocr应用115不正确地提取所提取的名字,则用户101可以将正确名字录入用户接口中。

在替选示例中,如果编辑距离等于配置的阈值或在配置的阈值以上,则方法200从块230返回块215。方法200可以在提取产生在阈值以下的总体编辑距离的用户名的尝试中重复块215、220、225和230的方法。在示例中,方法200重复块215、220、225和230有限数目的尝试,诸如2、5或10。在另一示例中,方法200重复块215、220、225和230,直到尝试由用户101放弃,适合的用户名被获得,或者其它指令被接收。

在块245中,ocr应用115将所提取的数据供应到数字钱包应用111、销售点终端、支付处理系统、网站或用户101授权的任何其它适合的应用或系统。可以由用户计算设备110上的应用,诸如数字钱包应用111,使用所提取的数据。所提取的数据可以通过网络105经由互联网连接发送、经由近场通信(“nfc”)技术、电子邮件、文本、或者以任何适合的方式发送。

示例系统

图5描绘了根据特定示例实施例的计算机器2000和模块2050。计算机器2000可以对应于各种计算机、服务器、移动设备、嵌入式系统或本文所呈现的计算系统中的任一个。模块2050可以包括被配置成促进计算机器2000执行各种方法和处理本文所呈现的功能的一个或多个硬件或软件元件。计算机器2000可以包括各种内部或附接部件,诸如处理器2010、系统总线2020、系统存储器2030、存储介质2040、输入/输出接口2060和用于与网络2080通信的网络接口2070。

计算机器2000可以被实现为常规计算机系统、嵌入式控制器、膝上型电脑、服务器、移动设备、智能电话、可穿戴计算机、机顶盒、信报亭、车辆信息系统、与电视相关联的一个或多个处理器、定制机器、任何其它硬件平台或其任何组合或重复。计算机器2000可以是被配置成使用经由数据网络或总线系统互连的多个计算机器运行。

处理器2010可以被配置成执行代码或者指令来执行本文所描述的操作和功能、管理请求流和地址映射并且执行计算和生成命令。处理器2010可以被配置成监测和控制计算机器2000中的部件的操作。处理器2010可以是通用处理器、处理器核心、多处理器、可重新配置的处理器、微控制器、数字信号处理器(“dsp”)、专用集成电路(“asic”)、图形处理单元(“gpu”)、现场可编程门阵列(“fpga”)、可编程逻辑器件(“pld”)、控制器、状态机、门逻辑、分立的硬件部件、任何其它处理单元或其任何组合或重复。处理器2010可以是单个处理单元、多个处理器单元、单个处理核心、多个处理核心、专用处理核心、协处理器或其任何组合。根据特定实施例,处理器2010连同计算机器2000的其它部件可以是在一个或多个其它计算机器内执行的虚拟化计算机器。

系统存储器2030可以包括非易失性存储器,诸如只读存储器(“rom”)、可编程只读存储器(“prom”)、可擦可编程只读存储器(“eprom”)、闪速存储器或能够在有或没有输入功率的情况下存储程序指令或数据的任何其它设备。系统存储器2030还可以包括易失性存储器,诸如随机存取存储器(“ram”)、静态随机存取存储器(“sram”)、动态随机存取存储器(“dram”)和同步动态随机存取存储器(“sdram”)。其它类型的ram还可以被用于实现系统存储器2030。可以使用单个存储器模块或多个存储器模块实现系统存储器2030。虽然系统存储器2030被描绘为计算机器2000的一部分,本领域的技术人员将认识到系统存储器2030可以与计算机器2000分离而不脱离本技术的范围。还应该理解的是,系统存储器2030可以包括非易失性存储设备,诸如存储介质2040,或结合其操作。

存储介质2040可以包括硬盘、软盘、光盘只读存储器(“cd-rom”)、数字通用光盘(“dvd”)、蓝光盘、磁带、闪速存储器、其它非易失性存储器设备、固态驱动器(“ssd”)、任何磁性存储设备、任何光学存储设备、任何电气存储设备、任何半导体存储设备、任何基于物理的存储设备、任何其它数据存储设备或其任何组合或重复。存储介质2040可以存储一个或多个操作系统、应用程序和程序模块,诸如模块2050、数据或任何其它信息。存储介质2040可以是计算机器2000的一部分或连接到计算机器2000。存储介质2040还可以是与计算机器2000通信的一个或多个其它计算机器的一部分,诸如服务器、数据库服务器、云存储、网络附加存储等。

模块2050可以包括被配置成利用执行各种方法和处理本文所呈现的功能促进计算机器2000的一个或多个硬件或软件元件。模块2050可以包括被存储为与系统存储器2030、存储介质2040或二者相关联的软件或固件的指令的一个或多个序列。存储介质2040可以因此表示在其上指令或代码可以被存储用于由处理器2010执行的机器或计算机可读介质的示例。机器或计算机可读介质可以通常指代被用于向处理器2010提供指令的任何媒介或介质。与模块2050相关联的这样的机器或计算机可读介质可以包括计算机软件产品。应该理解的是,包括模块2050的计算机软件产品还可以与用于经由网络2080、任何信号承载介质或任何其它通信或递送技术将模块2050递送到计算机器2000的一个或多个过程或方法相关联。模块2050还可以包括用于配置硬件电路,诸如用于fpga或其它pld的微代码或配置信息的硬件电路或信息。

输入/输出(“i/o”)接口2060可以被配置成耦合到一个或多个外部设备、从一个或多个外部设备接收数据并且将数据发送到一个或多个外部设备。这样的外部设备连同各种内部设备还可以被称为外围设备。i/o接口2060可以包括用于操作地将各种外围设备耦合到计算机器2000或处理器2010的电气连接和物理连接二者。i/o接口2060可以被配置成在外围设备、计算机器2000或处理器2010之间传递数据、地址和控制信号。i/o接口2060可以被配置成实现任何标准接口,诸如小型计算机系统接口(“scsi”)、串行附加scsi(“sas”)、光纤信道、外围部件互连(“pci”)、pciexpress(pcie)、串行总线、并行总线、先进技术附加(“ata”)、串行ata(“sata”)、通用串行总线(“usb”)、雷电接口(thunderbolt)、火线、各种视频总线等。i/o接口2060可以被配置成实现仅一个接口或总线技术。替选地,i/o接口2060可以被配置成实现多个接口或总线技术。i/o接口2060可以被配置为结合系统总线2020操作的一部分或全部。i/o接口2060可以包括用于缓冲一个或多个外部设备、内部设备、计算机器2000或处理器2010之间的传输的一个或多个缓冲器。

i/o接口2060可以将计算机器2000耦合到各种输入设备,包括鼠标、触摸屏、扫描器、电子数字器、传感器、接收器、触摸板、轨迹球、相机、麦克风、键盘、任何其它指点设备或其任何组合。i/o接口2060可以将计算机器2000耦合到各种输出设备,包括视频显示器、扬声器、打印机、投影仪、触觉反馈设备、自动控制、机器人部件、致动器、电机、风扇、螺线管、泵、发射器、信号发射器、灯等。

计算机器2000可以跨越网络2080通过网络接口2070到一个或多个其它系统或计算机器的逻辑连接在联网环境中操作。网络2080可以包括广域网(wan)、局域网(lan)、内联网、互联网、无线接入网络、有线网络、移动网络、电话网络、光学网络或其组合。网络2080可以是分组交换、电路交换的任何技术,并且可以使用任何通信协议。网络2080内的通信链路可以包含各种数字或模拟通信介质,诸如光纤电缆、自由空间光学元件、波导、电导体、无线链路、天线、射频通信等。

处理器2010可以通过系统总线2020连接到计算机器2000的其它元件或本文所讨论的各种外围设备。应该理解的是,系统总线2020可以在处理器2010内、在处理器2010外或二者。根据一些实施例,处理器2010、计算机器2000的其它元件或本文所讨论的各种外围设备中的任一个可以集成为单个设备,诸如片上系统(“soc”、封装系统(“sop”)或asic设备。

对于在其中此处所讨论的系统采集关于用户的个人信息或可以利用个人信息的情况而言,用户可以被提供有控制是程序还是特征采集个人信息,例如,关于用户的社交网络、社交动作或活动、职业、用户的偏好或用户的当前位置的信息,或者控制是否和/或如何从可以与用户更相关的内容服务器接收内容的机会。另外,在其被存储或被使用之前,特定数据可以以一个或多个方式处理,使得个人可识别的信息被移除。例如,用户的身份可以被处理使得对于用户可以确定没有个人可识别的信息,或者用户的地理位置可以一般化,其中,位置信息被获得诸如到城市、邮政编码或州级,使得不能确定用户的特定位置。因此,用户可以控制如何采集关于用户的信息以及由内容服务器使用。

实施例可以包括实现本文所描述和所图示的功能的计算机程序,其中,计算机程序被实现在包括被存储在机器可读介质中的指令的计算机系统和执行指令的处理器中。然而,应该明显的是,可以存在在计算机编程中实现实施例的许多不同的方式,并且实施例不应该被解释为限于计算机程序指令的任何一个集合。进一步地,熟练的程序设计员将能够写入这样的计算机程序以基于申请文本中的附加流程图和相关联的描述来实现所公开的实施例的实施例。因此,特定程序代码指令集的公开内容未被认为对于如何制造和使用实施例的足够的理解是必要的。进一步地,本领域的技术人员将理解到,可以由如可以在一个或多个计算系统中实现的硬件、软件或其组合执行本文所描述的实施例的一个或多个方面。而且,由于超过一个计算机可以执行动作,因而对由计算机正执行的动作的任何引用不应该被解释为由单个处理器执行

本文所描述的示例实施例能够与执行先前地所描述的方法和处理功能的计算机硬件和软件使用。本文所描述的系统、方法和程序能够在可编程计算机、计算机可执行软件或数字电路中实现。软件能够可以被存储在计算机可读介质上。例如,计算机可读介质能够包括软盘、ram、rom、硬盘、可移除的介质、闪速存储器、记忆棒、光学介质、磁光介质、cd-rom等。数字电路能够包括集成电路、门阵列、构建块逻辑、现场可编程门阵列(fpga)等。

先前地所呈现的实施例中所描述的示例系统、方法和动作是说明性的,并且在替选实施例中,在不脱离各种实施例的范围和精神的情况下,特定动作能够以不同的次序、彼此平行、完全省略和/或在不同的示例实施例之间组合被执行和/或特定附加动作能够被执行。因此,这样的替选实施例被包括在本文所描述的本发明中。

虽然上文已详细描述特定实施例,但是描述仅出于图示的目的。因此,应该理解的是,除非另外明确说明,否则上文所描述的许多方面未被预期为所要求的或必要的元件。除上文所描述的那些之外,示例实施例的所公开的方面的修改和对应于其的等效部件或动作能够由具有本公开的益处的本领域的普通技术人员制造而不脱离以下权利要求中定义的实施例的精神和范围,其范围将符合最宽的解释以便涵盖这样的修改和等效结构。

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