识别文档中的键值对的制作方法

文档序号:28959513发布日期:2022-02-19 12:34阅读:101来源:国知局
识别文档中的键值对的制作方法

1.本说明书涉及文档处理。


背景技术:

2.理解文档(例如,发票、支付存根、采购收据等)是许多现代企业的重要业务需要。企业数据的大部分(例如,90%或更多)被以非结构化文档的形式存储和表示。从文档中人工地提取结构化数据可能是昂贵的、费时的且易出错的。


技术实现要素:

3.本说明书通常描述被作为计算机程序实现在一个或多个位置中的一个或多个计算机上的一种解析系统和一种解析方法,该解析系统和该解析方法将非结构化文档自动地转换为结构化键值对。更具体地,该解析系统被配置成处理文档以识别文档中的“键”文本数据和对应的“值”文本数据。广义上,键定义表征(即,描述)对应的值的标签。例如,键“date(日期)”可以对应于值“2-23-2019”。
4.根据第一方面,提供了一种由一个或多个数据处理装置执行的方法,该方法包括:向检测模型提供文档的图像,其中:检测模型被配置成根据多个检测模型参数的值来处理图像以生成定义为图像生成的一个或多个边界框的输出;并且为图像生成的每个边界框被预测成包围包括键文本数据和值文本数据的键值对,其中,键文本数据定义表征值文本数据的标签;以及对于为图像生成的一个或多个边界框中的每个:使用光学字符辨识技术来识别由边界框包围的文本数据;确定由边界框包围的文本数据是否定义键值对;以及响应于确定由边界框包围的文本数据定义键值对,提供该键值对以用于在表征文档时使用。
5.在一些实现方式中,检测模型是神经网络模型。
6.在一些实现方式中,神经网络模型包括卷积神经网络。
7.在一些实现方式中,在训练示例集合上训练神经网络模型,每个训练示例包括训练输入和目标输出,训练输入包括训练文档的训练图像,且目标输出包括定义训练图像中各自包围相应的键值对的一个或多个边界框的数据。
8.在一些实现方式中,文档是发票。
9.在一些实现方式中,向检测模型提供文档的图像包括:识别文档的特定类别;以及将文档的图像提供给检测模型,该检测模型被训练来处理特定类别的文档。
10.在一些实现方式中,确定由边界框包围的文本数据是否定义键值对包括:确定由边界框包围的文本数据包括来自预定有效键集合的键;识别不包括键的由边界框包围的文本数据的一部分的类型;识别与键相对应的值的一种或多种有效类型的集合;以及确定不包括键的由边界框包围的文本数据的部分的类型被包括在与键相对应的值的一种或多种有效类型的集合中。
11.在一些实现方式中,识别与键相对应的值的一种或多种有效类型的集合包括:使用预定映射来将键映射到与键相对应的值的一种或多种有效类型的集合。
12.在一些实现方式中,有效键集合和从键到与键相对应的值的有效类型的对应集合的映射由用户提供。
13.在一些实现方式中,边界框具有矩形形状。
14.在一些实现方式中,该方法还包括:从用户接收文档;以及将文档转换为图像,其中,图像描绘文档。
15.根据另一方面,提供了一种由一个或多个数据处理装置执行的方法,该方法包括:向检测模型提供文档的图像,该检测模型被配置成处理图像以在图像中识别被预测成包围包括键文本数据和值文本数据的键值对的一个或多个边界框,其中,键定义表征与键相对应的值的标签;对于为图像生成的一个或多个边界框中的每个:使用光学字符辨识技术来识别由边界框包围的文本数据并且确定由边界框包围的文本数据是否定义键值对;以及输出该一个或多个键值对以用于在表征文档时使用。
16.在一些实现方式中,检测模型是具有能够在训练数据集合上训练的参数集合的机器学习模型。
17.在一些实现方式中,机器学习模型包括神经网络模型,特别是卷积神经网络。
18.在一些实现方式中,在训练示例集合上训练机器学习模型,每个训练示例包括训练输入和目标输出,训练输入包括训练文档的训练图像,而目标输出包括定义训练图像中各自包围相应的键值对的一个或多个边界框的数据。
19.在一些实现方式中,文档是发票。
20.在一些实现方式中,向检测模型提供文档的图像包括:识别文档的特定类别;以及将文档的图像提供给检测模型,该检测模型被训练来处理特定类别的文档。
21.在一些实现方式中,确定由边界框包围的文本数据是否定义键值对包括:确定由边界框包围的文本数据包括来自预定有效键集合的键;识别不包括键的由边界框包围的文本数据的一部分的类型;识别与键相对应的值的一种或多种有效类型的集合;以及确定不包括键的由边界框包围的文本数据的部分的类型被包括在与键相对应的值的一种或多种有效类型的集合中。
22.在一些实现方式中,识别与键相对应的值的一种或多种有效类型的集合包括:使用预定映射来将键映射到与键相对应的值的一种或多种有效类型的集合。
23.在一些实现方式中,有效键集合和从键到与键相对应的值的有效类型的对应集合的映射由用户提供。
24.在一些实现方式中,边界框具有矩形形状。
25.在一些实现方式中,该方法还包括:从用户接收文档;以及将文档转换为图像,其中,图像描绘文档。
26.根据另一方面,提供了一种系统,该系统包括:一个或多个计算机;以及通信地耦合到一个或多个计算机的一个或多个存储设备,其中,一个或多个存储设备存储指令,当指令由一个或多个计算机执行指令时,使一个或多个计算机执行包括先前描述的方法的操作的操作。
27.根据另一方面,提供了一种或多种非暂时性计算机存储介质,该非暂时性计算机存储介质存储指令,当指令由一个或多个计算机执行时,使一个或多个计算机执行包括先前描述的方法的操作的操作。
28.能够实现本说明书中描述的主题的特定实施例以便实现以下优点中的一个或多个。
29.本说明书中描述的系统能够用于将大量非结构化文档自动地转换成结构化键值对。因此,该系统消除了对可能是昂贵的、费时的且易出错的从非结构化文档中人工地提取结构化数据的需要。
30.本说明书中描述的系统能够以高准确度水平(例如,对于一些类型的文档,以大于99%的准确度)识别文档中的键值对。因此,系统可以适合于部署在需要高准确度水平的应用(例如,处理财务文档)中。
31.本说明书中描述的系统能够比一些常规系统更好地推广,即,与一些常规系统相比具有改善的推广能力。特别地,通过利用被训练来辨识区分文档中的键值对的视觉信号的机器学习检测模型,系统能够独立于文档的特定样式、结构或内容而准确地识别键值对。
32.本说明书的主题的一个或多个实施例的细节在附图和以下描述中阐述。本主题的其他特征、方面和优点将从描述、附图和权利要求中变得显然。
附图说明
33.图1示出示例解析系统。
34.图2a图示可以提供给解析系统的发票文档的示例。
35.图2b图示由解析系统的检测模型生成的边界框。
36.图2c图示由边界框包围的键和值。
37.图2d图示由发票中的解析系统识别的键值对。
38.图3是用于识别文档中的键值对的示例过程的流程图。
39.图4是示例计算机系统的框图。
40.不同附图中相同的附图标记和名称指示相同的元件。
具体实施方式
41.图1示出示例解析系统100。解析系统100是被作为计算机程序实现在一个或多个位置中的一个或多个计算机上的系统的示例,其中实现了下述系统、组件和技术。
42.解析系统100被配置成处理文档102(例如,发票、支付存根或购买收据)以识别文档102中的一个或多个键值对104。“键值对”是指键和对应的值,这两者通常是文本数据。“文本数据”应该被理解成是指至少:字母字符、数字和特殊符号。如较早地描述的,键定义表征对应的值的标签。图2a至d图示发票文档中的键值对的示例。
43.系统100可以以各种方式中的任一种接收文档102。例如,系统100能够通过数据通信网络(例如,使用由系统100提供的应用编程接口(api)))从系统100的远程用户接收作为上传的文档102。文档102能够被以任何适当的非结构化数据格式表示,例如,作为便携式文档格式(pdf)文档或作为图像文档(例如,便携式网络图形(png)或联合图像专家组(jpeg)文档)。
44.系统100使用检测模型106、光学字符辨识(ocr)引擎108和过滤引擎110来识别文档102中的键值对104。
45.检测模型106被配置成处理文档102的图像112以生成定义图像112中的一个或多
个边界框114的输出,每个边界框被预测成包围定义相应的键值对的文本数据。也就是说,每个边界框114被预测成包围定义如下的文本数据:(i)键,以及(ii)与键相对应的值。例如,边界框可以包围文本数据“name:john smith(姓名:john smith)”,其定义键“name”和对应的值“john smith”。检测模型106可以被配置成生成各自包围单个键值对(即,而不是多个键值对)的边界框114。
46.文档102的图像112是表示文档102的视觉外观的数值的有序合集合。例如,图像112可以是文档的黑白图像。在此示例中,可以将图像112表示为数值强度值的二维阵列。作为另一示例,图像可以是文档的彩色图像。在此示例中,可以将图像112表示为多通道图像,其中每个通道对应于相应的颜色(例如,红色、绿色或蓝色),并且可以将图像112表示为数值强度值的二维阵列。
47.边界框114可以是矩形边界框。矩形边界框可以通过边界框的特定拐角的坐标以及边界框的对应的宽度和高度来表示。更一般地,表示边界框的其他边界框形状和其他方式是可能的。
48.虽然检测模型106可以隐式地辨识并使用存在于文档102中的任何框架或边界作为视觉信号,但是边界框114不局限于与存在于文档102中的边界的任何现有框架对齐(即,重合)。此外,系统100可以在不用在文档102的图像112中在视觉上显示边界框114的情况下生成边界框114。即,系统100可以生成定义边界框的数据,而不用将边界框的位置的视觉指示显示给系统100的用户。
49.检测模型106通常是机器学习模型,即,具有能够在训练数据集合上训练的参数集合的模型。训练数据包括多个训练示例,其中的每个包括:(i)描绘训练文档的训练图像,以及(ii)定义各自包围训练图像中相应的键值对的一个或多个边界框的目标输出。训练数据可以通过人工注释来生成,即,通过人人工地识别训练文档中的键值对周围的边界框(例如,使用适当的注释软件)来生成。
50.使用机器学习技术来在训练数据集合上训练检测模型106使得检测模型106能够隐式地辨识使得它能够识别文档中的键值对的视觉信号。例如,可以训练检测模型106以隐式地辨识使得它能够识别键值对的局部信号(例如,单词的文本样式和相对空间位置)和全局信号(例如,在文档中存在边界)两者。使得检测模型能够识别文档中的键值对的视觉信号通常不包括表示文档中的单词的显式含义的信号。
51.训练检测模型106以隐式地辨识区分文档中的键值对的视觉信号使得检测模型能够在用于训练检测模型的训练数据之外“推广”。即,如果文档未被包括在用于训练检测模型106的训练数据中,经训练后的检测模型106也可以处理描绘文档的图像以准确地生成包围文档中的键值对的边界框。
52.在一个示例中,检测模型106可以是神经网络对象检测模型(例如,包括一个或多个卷积神经网络),其中“对象”对应于文档中的键值对。神经网络模型的可训练参数包括神经网络模型的权重,例如,定义神经网络模型中的卷积滤波器的权重。
53.可以使用例如随机梯度下降的适当的机器学习训练程序来在训练数据集合上训练神经网络模型。特别地,在多次训练迭代中的每次迭代时,神经网络模型可以处理来自训练示例的“批次”(即,集合)的训练图像以生成被预测成包围训练图像中相应的键值对的边界框。系统100可以评价表征由神经网络模型生成的边界框与由所对应的训练示例的目标
输出指定的边界框之间的相似性的量度的目标函数。两个边界框之间的相似性的量度可以是例如边界框的相应的顶点之间的距离平方和。系统能够确定目标函数相对于神经网络参数值的梯度(例如,使用反向传播),此后使用梯度来调整当前的神经网络参数值。特别地,系统100能够使用来自任何适当的梯度下降优化算法(例如,adam或rmsprop)的参数更新规则以使用梯度来调整当前的神经网络参数值。系统100训练神经网络模型直到满足训练终止准则为止(例如,直到已执行了预定训练迭代次数为止,或者直到目标函数在训练迭代之间的值变化下降至预定阈值以下为止)。
54.在使用检测模型106之前,系统100可以识别文档102的“类别”(例如,发票、支付存根或购买收据)。例如,系统100的用户可以在将文档提供给系统100时识别文档102的类别。作为另一示例,系统100可以使用分类神经网络来自动地对文档102的类别进行分类。作为另一示例,系统100可以使用ocr技术来识别文档102中的文本,此后基于文档102中的文本来识别文档102的类别。在特定示例中,响应于识别短语“net pay(净支付)”,系统100可以将文档102的类别识别为“pay stub(支付存根)”。在另一特定示例中,响应于识别短语“sales tax(销售税)”,系统100可以将文档102的类别识别为“invoice(发票)”。在识别文档102的特定类别之后,系统100可以使用被训练来处理特定类别的文档的检测模型106。即,系统100可以使用在仅包括了与文档102相同的特定类别的文档的训练数据上训练的检测模型106。使用被专门地训练来处理与文档102相同的类别的文档的检测模型106可以提高检测模型的性能(例如,通过使得检测模型能够以更大准确度生成键值对周围的边界框)。
55.对于边界框114中的每个,系统100使用ocr引擎108来处理由边界框包围的图像112的部分以识别由边界框包围的文本数据(即,文本116)。特别地,ocr引擎108通过识别由边界框包围的每个字母、数值或特殊字符来识别由边界框包围的文本116。ocr引擎108能够使用任何适当的ocr技术来识别由边界框114包围的文本116。
56.过滤引擎110被配置成确定由边界框114包围的文本116是否表示键值对。过滤引擎能够以任何适当的方式确定由边界框114包围的文本116是否表示键值对。例如,对于给定边界框,过滤引擎110可以确定由边界框包围的文本是否包括来自预定有效键集合的有效键。例如,有效键集合可以包括:“date(日期)”、“time(时间)”、“invoice#(发票号码)”、“amount due(应付金额)”等。在比较文本的不同部分以确定由边界框包围的文本是否包括有效键时,即使文本的两个部分不相同,过滤引擎110也可以确定它们“匹配”。例如,即使文本的两个部分包括不同的大写或标点符号,过滤引擎110也可以确定它们匹配(例如,过滤系统100可以确定“date”、“date:”、“date”和“date:”全部匹配)。
57.响应于确定由边界框包围的文本不包括来自有效键集合的有效键,过滤引擎110确定由边界框包围的文本不表示键值对。
58.响应于确定由边界框包围的文本包括有效键,过滤引擎110识别未被识别为键的由边界框包围的文本(即,“非键”文本)的部分的“类型”(例如,字母、数值、时间)。例如,对于包围文本:“date:2-23-2019”的边界框,在过滤引擎110将“date:”识别为键(如较早地描述的)情况下,过滤引擎110可以将非键文本“2-23-2019”的类型识别为“temporal(时间)”。
59.除了识别非键文本的类型之外,过滤引擎110还识别与键相对应的值的一个或多个有效类型的集合。特别地,过滤引擎110可以根据预定映射来将键映射到与键相对应的值
的有效数据类型的集合。例如,过滤引擎110可以将键“name”映射到所对应的值数据类型“alphabetical(字母)”,指示与键相对应的值应该具有字母数据类型(例如,“john smith”)。作为另一示例,过滤引擎110可以将键“date”映射到所对应的值数据类型“temporal(时间)”,指示与键相对应的值应该具有时间数据类型(例如,“2-23-2019”或“17:30:22”)。
60.过滤引擎110确定非键文本的类型是否被包括在与键相对应的值的有效类型的集合中。响应于确定非键文本的类型被包括在与键相对应的值的有效类型的集合中,过滤引擎110确定由边界框包围的文本表示键值对。特别地,过滤引擎110将非键文本识别为与键相对应的值。否则,过滤引擎110确定由边界框包围的文本不表示键值对。
61.有效键集合和从有效键到与有效键相对应的值的有效数据类型的集合的映射可以由系统100的用户提供(例如,通过由系统100提供的api)。
62.在使用过滤引擎110来从由相应的边界框114包围的文本116中识别键值对104之后,系统100输出经识别的键值对104。例如,系统100能够通过数据通信网络(例如,使用由系统100提供的api)将键值对104提供给系统100的远程用户。作为另一示例,系统100能够在系统100的用户可访问的数据库(或其他数据结构)中存储定义经识别的键值对的数据。
63.在一些情况下,系统100的用户可以请求系统100识别与文档中的特定键(例如,“invoice#”)相对应的值。在这些情况下,不是识别并提供文档中的每个键值对,而是系统100可以处理在相应的边界框114中识别的文本116,直到所请求的键值对被识别为止,此后输出所请求的键值对。
64.如上所述,能够将检测模型106训练来生成各自包围相应的键值对的边界框。替换地,不是使用单个检测模型106,而是系统100可以包括:(i)被训练来生成包围相应的键的边界框的“键检测模型”,以及(ii)被训练来生成包围相应的值的边界框的“值检测模型”。系统100能够以任何适当的方式从键边界框和值边界框中识别键值对。例如,对于包括键边界框和值边界框的每对边界框,系统100能够基于以下生成“匹配分数”:(i)边界框的空间接近度,(ii)键边界框是否包围有效键,以及(iii)由值边界框包围的值的类型是否被包括在与键相对应的值的有效类型的集合中。如果键边界框与值边界框之间的匹配分数超过阈值,则系统100可以将由键边界框包围的键和由值边界框包围的值识别为键值对。
65.图2a图示发票文档200的示例。解析系统100(参考图1描述)的用户可以将发票200(例如,作为扫描图像或pdf文件)提供给解析系统100。
66.图2b图示由解析系统100的检测模型106生成的边界框(例如,202、204、206、208、210、212、214和216)。边界框中的每个被预测成包围定义键值对的文本数据。检测模型106不生成包围文本218(即,“thank you for your business!(谢谢您的合作!)”)的边界框,因为此文本不表示键值对。如参考图1描述的,解析系统100使用ocr技术来识别每个边界框内部的文本,此后识别由边界框包围的有效键值对。
67.图2c图示由边界框202包围的键220(即,“date:”)和值222(即,“2-23-2019”)。
68.图2d图示由解析系统100在发票200中识别的键值对。
69.图3是用于识别文档中的键值对的示例过程300的流程图。为了方便,过程300将被描述为由位于一个或多个位置中的一个或多个计算机的系统执行。例如,根据本说明书适当编程的解析系统,例如图1的解析系统100,能够执行过程300。
70.系统接收文档(302)。例如,系统能够通过数据通信网络(例如,使用由系统提供的api)从系统的远程用户接收作为上传的文档。该文档能够被以任何适当的非结构化数据格式表示,例如,作为pdf文档或图像文档(例如,png或jpeg文档)。
71.系统将文档转换为图像,即,表示文档的视觉外观的数值的有序合集合(304)。例如,图像可以是被表示为数值强度值的二维阵列的文档的黑白图像。
72.系统将文档的图像提供给检测模型,该检测模型被配置成根据检测模型参数集合来处理图像以生成定义文档的图像中的一个或多个边界框的输出(306)。每个边界框被预测成包围包括键文本数据和值文本数据的键值对,其中键定义表征值的标签。检测模型可以是包括一个或多个卷积神经网络的神经网络对象检测模型。
73.对于文档的图像中的每个边界框执行步骤308-310。为了方便,参考给定边界框描述步骤308-310。
74.系统使用光学字符辨识(ocr)技术来识别由边界框包围的文本数据(308)。特别地,系统使用ocr技术来识别由边界框包围的每个字母、数值或特殊字符。
75.系统确定由边界框包围的文本数据是否定义键值对(310)。例如,系统可以确定由边界框包围的文本是否包括来自预定有效键集合的有效键。响应于确定由边界框包围的文本不包括来自有效键集合的有效键,系统确定由边界框包围的文本不表示键值对。响应于确定由边界框包围的文本包括有效键,系统识别未被识别为键的由边界框包围的文本(即,“非键”文本)的部分的“类型”(例如,字母、数值、时间或其组合)。除了识别非键文本的类型之外,系统还识别与键相对应的值的一个或多个有效类型的集合。系统确定非键文本的类型是否被包括在与键相对应的值的有效类型的集合中。响应于确定非键文本的类型被包括在与键相对应的值的有效类型的集合中,系统确定由边界框包围的文本表示键值对。特别地,系统将非键文本识别为与键相对应的值。否则,系统确定由边界框包围的文本不表示键值对。
76.系统提供经识别的键值对以用于在表征文档时使用(312)。例如,系统可以通过数据通信网络(例如,使用由系统提供的api)将键值对提供给系统的远程用户。
77.图4是可用于执行先前描述的操作的示例计算机系统400的框图。系统400包括处理器410、存储器420、存储设备430和输入/输出设备440。组件410、420、430和440中的每个均可例如使用系统总线450来互连。处理器410能够处理在系统400内执行的指令。在一个实施方式中,处理器410是单线程处理器。在另一实施方式中,处理器410是多线程处理器。处理器410能够处理存储在存储器420中或在存储设备430上的指令。
78.存储器420存储系统400内的信息。在一个实施方式中,存储器420是计算机可读介质。在一个实施方式中,存储器420是易失性存储器单元。在另一实施方式中,存储器420是非易失性存储器单元。
79.存储设备430能够为系统400提供大容量存储。在一个实施方式中,存储设备430是计算机可读介质。在各种不同的实施方式中,存储设备430可包括例如硬盘设备、光盘设备、由多个计算设备(例如,云存储设备)通过网络共享的存储设备,或某个其它大容量存储设备。
80.输入/输出设备440为系统400提供输入/输出操作。在一个实施方式中,输入/输出设备440可包括一个或多个网络接口设备,例如,以太网卡、串行通信设备例如rs-232端口
和/或无线接口设备例如802.11卡。在另一实施方式中,输入/输出设备440可包括被配置为接收输入数据并且向其它输入/输出设备例如键盘、打印机和显示设备460发送输出数据的驱动器设备。然而,还可使用其它实施方式,诸如移动计算设备、移动通信设备、以及机顶盒电视客户端设备等。
81.尽管已在图4中描述了示例处理系统,但是本说明书中描述的主题和功能操作的实施方式可用其它类型的数字电子电路或者用计算机软件、固件或硬件包括本说明书中公开的结构及其结构等同物或者用它们中的一个或多个的组合加以实现。
82.本说明书使用术语“被配置”与系统和计算机程序组件连接。对于要被配置成执行特定操作或动作的一个或多个计算机的系统意指系统已在其上安装了在操作中使该系统执行这些操作或动作的软件、固件、硬件或软件、固件、硬件的组合。对于要被配置成执行特定操作或动作的一个或多个计算机程序意指该一个或多个程序包括指令,该指令当由数据处理装置执行时,使该装置执行操作或动作。
83.本说明书中描述的主题和功能操作的实施例可用数字电子电路、用有形地实施的计算机软件或固件、用包括本说明书中公开的结构及其结构等同物的计算机硬件或者用它们中的一个或多个的组合来实现。本说明书中描述的主题的实施例可作为一个或多个计算机程序被实现,所述一个或多个计算机程序即在有形非暂时性存储介质上编码以供由数据处理装置执行或者控制数据处理装置的操作的计算机程序指令的一个或多个模块。计算机存储介质可以是机器可读存储设备、机器可读存储基板、随机或串行访问存储设备或它们中的一个或多个的组合。替换地或此外,可将程序指令编码在人工生成的传播信号上,传播信号例如是机器生成的电、光或电磁信号,该传播信号被生成来对信息进行编码以用于传输到适合的接收器装置以供由数据处理装置执行。
84.术语“数据处理装置”指数据处理硬件并且包含用于处理数据的所有种类的装置、设备和机器,作为示例包括可编程处理器、计算机或多个处理器或计算机。装置还可以是或者进一步包括专用逻辑电路,例如,fpga(现场可编程门阵列)或asic(专用集成电路)。装置除了包括硬件之外还可以可选地包括为计算机程序创建执行环境的代码,例如,构成处理器固件、协议栈、数据库管理系统、操作系统或它们中的一个或多个的组合的代码。
85.也可以被称为或者描述为程序、软件、软件应用、app、模块、软件模块、脚本或代码的计算机程序可用包括编译或解释语言或声明或过程语言的任何形式的编程语言编写;并且它可被以任何形式部署,包括作为独立程序或者作为模块、组件、子例行程序或适合于在计算环境中使用的其它单元。程序可以但是不必对应于文件系统中的文件。程序可以被存储在保持其它程序或数据的文件的一部分中,例如存储在标记语言文档中的一个或多个脚本;在专用于所讨论的程序的单个文件中或者在多个协调文件中,例如存储代码的一个或多个模块、子程序或部分的文件。可将计算机程序部署成在一个计算机上或者在位于一个站点处或者分布在多个站点上并通过数据通信网络互连的多个计算机上执行。
86.在本说明书中术语“引擎”广泛地用于指被编程来执行一个或多个具体功能的基于软件的系统、子系统或过程。通常,引擎将作为安装在一个或多个位置中的一个或多个计算机上的一个或多个软件模块或组件被实现。在一些情况下,一个或多个计算机将专用于特定引擎;在其它情况下,可在同一计算机或多个计算机上安装并运行多个引擎。
87.本说明书中描述的过程和逻辑流程可由执行一个或多个计算机程序的一个或多
服务器关系的计算机程序而产生。在一些实施例中,服务器向用户设备传输例如html页面的数据例如以用于向与作为客户端的设备交互的用户显示数据并从该用户接收用户输入的目的。可在服务器处从设备接收在用户设备处生成的数据,例如,用户交互的结果。
95.虽然本说明书包含许多具体实施方式细节,但是这些不应该被解释为对任何发明的或可能要求保护的范围的限制,而是相反地被解释为对可能特定于特定发明的特定实施例的特征的描述。也可在单个实施例中组合地实现在本说明书中在单独的实施例的上下文中描述的某些特征。相反地,也可单独地或者按照任何适合的子组合在多个实施例中实现在单个实施例的上下文中描述的各种特征。此外,尽管特征可能在上面被描述按照某些组合起作用并且甚至最初被如此要求保护,但是来自要求保护的组合的一个或多个特征可在一些情况下被从该组合中除去,并且所要求保护的组合可以针对子组合或子组合的变化。
96.类似地,虽然按照特定次序在附图中描绘并在权利要求书中记载操作,但是这不应该被理解为要求按照所示的特定次序或者以先后次序执行这样的操作,或者要求执行所有图示的操作以实现所预期的结果。在某些情况下,多任务处理和并行处理可以是有利的。此外,上述实施例中的各种系统模块和组件的分离不应该被理解为在所有实施例中要求这样的分离,并且应该理解的是,所描述的程序组件和系统一般地可被一起集成在单个软件产品中或者包装到多个软件产品中。
97.已描述了主题的特定实施例。其它实施例在所附权利要求的范围内。例如,权利要求中记载的动作可被以不同的次序执行并仍然实现所预期的结果。作为一个示例,附图中描绘的过程不一定要求所示的特定次序或顺序次序以实现所预期的结果。在一些情况下,多任务处理和并行处理可以是有利的。
98.权利要求是:
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1