模型独立置信度值预测机器学习模型的制作方法

文档序号:32155271发布日期:2022-11-11 22:30阅读:189来源:国知局
模型独立置信度值预测机器学习模型的制作方法
模型独立置信度值预测机器学习模型
1.对相关申请的交叉引用
2.本技术要求2021年5月11日提交的第63/187,047号美国临时申请的权益,其全部内容通过引用被合并于此。


背景技术:

3.从文档中提取信息是可以由许多不同类型的模型执行的处理,从先进的深度学习机器学习模型到使用规则的更简单的模式匹配处理。这些模型输出它们认为文档中特定单词/短语是什么的预测,这表明其含义或目的。换句话说,它们为提取的数据输出预测标签。
附图说明
4.本公开以示例的方式说明,而不是限制在附图中的图中,附图中类似的附图标记表示相似的元件。
5.图1是图示使用滑动窗口机器学习模型的示例系统的框图。
6.图2是图示示出边界框的示例屏幕截图的示图。
7.图3是图示示例卷积神经网络和全连接层架构的框图。
8.图4是图示预期输入和滑动窗口输出的示例的示图。
9.图5是图示使用机器学习算法训练滑动比例机器学习模型的示例方法的流程图。
10.图6是图示使用滑动比例机器学习模型的示例方法的流程图。
11.图7是图示能够安装在上述任何一个或多个设备上的示例软件架构的框图。
12.图8图示了计算机系统形式的机器的图解表示,在该计算机系统中,可以执行指令集,以使机器执行本文讨论的任何一个或多个方法。
具体实施方式
13.下面的描述讨论了说明性系统、方法、技术、指令序列和计算机程序产品。在以下描述中,出于解释的目的,阐述了许多具体细节,以便提供对本主题的各种示例实施例的理解。然而,对于本领域的技术人员来说显而易见的是,可以在没有这些具体细节的情况下实施本主题的各种示例实施例。
14.许多机器学习模型无法输出指示预测可靠性的置信度分数,而输出置信度分数的模型可能不会输出可靠的置信度分数。结果是很难使用提取的信息执行任何类型的自动化。因此,人类必须继续成为工作流循环的一部分,仔细检查模型对提取字段的预测是否正确。增加这个问题的事实是,通常可以使用多个不同的模型进行提取,诸如使用不同的模型提取不同的字段。
15.此外,当使用多个模型进行与从文档中提取信息相关的预测时,可能难以获得可靠的单一置信度分数。解决这个问题的一种技术是利用独立的置信度评分模型,该模型使用去噪自动编码器类型的网络,例如,基于二维chargrid表示。然而,这样的置信度评分模型相对较大,需要较长的推理和训练时间。
16.在示例实施例中,使用更小、轻量级且快速的方法为提取的信息的预测标签计算置信度分数。此方法称为滑动窗口方法。
17.在示例实施例中,滑动窗口方法基于卷积神经网络分类,使用滑动窗口。它接收(1)从独立的先前信息提取步骤提取的信息的字符串(“输入文本”)、(2)字符串的预测类别标签、(3)字符串在文档中的坐标位置,以及(4)文档的文本(用于附加上下文信息)作为输入。滑动窗口方法的任务是预测置信度分数以确定给定输入的正确性。
18.图1是图示根据示例实施例的用于使用滑动窗口机器学习模型的系统100的框图。输入转换组件102从独立模型(无论是机器学习的还是基于规则的)获得提取的文本段104。例如,该提取的文本段可以是,例如,文档字段中的文本。然后,滑动窗口提取器106额外提取原始文档中与提取的文本段104相邻的文本的滑动窗口。该提取的滑动窗口可以被称为“相邻单词”108。应当注意,虽然在一些实施例中,滑动窗口提取器106可以从包含提取的文本段104的原始文档执行该提取,但是滑动窗口提取器106也可以仅对原始文档的一部分执行相同的技术。
19.在示例实施例中,滑动窗口提取器106可以通过选择在空间上与输入文本分隔至多一段距离的相邻单词或字符来执行其提取,实质上围绕提取的文本段104创建边界框。垂直方向上的距离可以不同于水平方向上的距离,使此边框成为矩形,但不必须使用此形状。在其他示例实施例中,边界框可以是正方形、圆形、椭圆形或任何其他几何形状。然后,如何指定边界框可以基于几何形状(例如,可以使用半径指定圆形,使用长度和宽度指定矩形等)。
20.图2是图示根据示例实施例的示出边界框200的屏幕截图的示图。能够看出,提取的文本段202被矩形边界框204包围。值得注意的是,独立模型已经预测了提取的文本段202是采购订单(po)编号。完全出现在边界框内的单词被视为与提取的文本段202相邻的单词,而完全出现在边界框外的单词不被视为与提取的文本段202相邻的单词。如何处理部分位于边界框内、部分位于边界框外的单词(诸如图2中的“universal”)是特定于实现的。在一些实施例中,部分单词根本不算作相邻单词(即,单词的100%必须在边界框内才能被视为相邻单词),而在其他实施例中,如果在边界框内的单词百分比达到或超过某个阈值,则部分单词将被视为相邻单词(例如,单词的50%必须在边界框内才被视为相邻单词)。
21.回到图1,然后输入转换组件102获取提取的文本段104、相邻单词108以及提取的文本段104和相邻单词108的预测标签,并从它们形成级联转换输入110。相邻单词的预测标签可以来自与提取的文本段104的预测标签相同的模型,或者可以来自一个或多个不同的模型。事实上,不同的相邻单词可以具有来自不同模型的预测标签。级联转换输入110是向量序列,每个向量与提取的文本段104或相邻单词中的一个的不同字符相对应。序列可以从提取的文本段104的向量开始,然后紧跟着是相邻单词的向量。每个向量可以包括字符嵌入112、坐标114和预测标签116。
22.字符嵌入112可以使用多种不同类型的字符嵌入处理中的一种来构造。在一个示例实施例中,利用了一个热编码处理。一个热编码是使用字符的分类将一个令牌(诸如字符)转换为唯一的整数索引,然后将该整数索引转换为大小为n(n是字符词汇表的大小)的二进制向量的处理。除了第i个条目可以为1之外,二进制向量都是零。这就是为什么它被称为“一个热(one hot)”,因为其中一个位是热的(1),而其他位是冷的(0)。也可以使用一种
称为“一个冷(one-cold)”的类似实现,其中一个位是冷的(0),而其他位是热的(1),与产生字符/分类组合的唯一向量表示的任何数量的其他处理一样。
23.坐标是文档中字符的(几何)坐标。这些坐标的表示方式取决于文档几何图形的表示方式。有些文档可以使用其中每个字符或字符的空格都表示为单个坐标的系统来表示,而其他文档可以由其中每个字符或字符的空格表示为可能的多个坐标的系统来表示(例如,其中文档中的每个像素被分配不同的坐标并且每个字符包括多个像素)。在后一种情况下的系统中,字符的坐标可以表示为表示字符的角的序列(例如,四个坐标,每个坐标表示包围字符的矩形的不同角),或者可以表示为表示字符的“中心”的单个坐标(即,恰好在字符的水平边缘之间并且恰好在字符的垂直边缘之间的几何点)。
24.字符的预测标签取自字符所在的文本段104的预测标签,或字符所在的相邻单词的预测标签。
25.然后,可以将级联转换输入110传递到机器学习模型118,以产生预测输出标签120和置信度值122。在机器学习模型118的训练期间,包括损失函数126的机器学习算法124接收真值(ground truth)数据,真值数据包括被分配“真标签”的样本输入。机器学习模型118反复调整机器学习模型118中使用的权重,直到满足损失函数126。
26.预测输出标签120在推理时产生,并且其本身可以作为反馈被反馈到机器学习算法124,以重新训练机器学习模型118。预测输出标签120和相关置信度值122能够用于确认或拒绝来自原始模型的预测标签。
27.这种方法考虑了所考虑的输入文本的语义环境(即上下文)。为此,与标准输入文本一起,使用相邻单词及其相应标签来丰富输入文本。
28.应该注意,在一些情况下,标识相邻单词的边界框可能不容易获得。在这种情况下,能够通过与经由对文档执行光学字符识别(ocr)处理获得的单词执行字符串交集来构造边界框。由于ocr输出包含单词及其对应的边界框,因此能够经由这些匹配的实例获得边界框。对于字符串匹配,可以使用软匹配,其中设置了一些超参数阈值(诸如80%)。如果字符串交集系数超过此阈值,则视为匹配。软匹配可以被使用,因为在现实生活中,由于ocr引擎、人为错误或之前的预处理和后处理步骤引入的错误,字符串可能不完全匹配。
29.在示例实施例中,机器学习模型118可以是具有全连接层的卷积神经网络(cnn)。图3是图示根据示例实施例的卷积神经网络和全连接层架构300的框图。如前所述,级联转换输入302可以是字符嵌入、坐标和标签的向量序列。此级联转换输入302可以被馈送到多个不同宽度、与多个不同的n-gram相对应的卷积滤波器304a-304f。输出是特征图306,使用最大池层308沿序列维度缩小特征图。结果是每个特征图一个特征向量。然后将这些特征向量中的每一个级联到最终特征向量310,其通过全连接层312、314。最后一层是softmax层316,用于预测提取的数据段的类别(标签)和置信度。
30.机器学习模型118的训练使用多标签分类任务来执行。这意味着机器学习模型118能够输出所有训练类别的概率(置信度)。特别地,与输入文本一起提供的特定类别的置信度令人感兴趣(独立模型中的预测类别标签)。这可以从softmax层316输出中的对应的类别值中提取。如果机器学习模型118确定提取的文本段与预测的类别属于同一类别,则期望高置信度值。
31.在最后的后处理步骤中,新属性可以被添加到提取的文本段104:置信度键值对。
键是“conf”,值,值是从上述模型推理处理中获得的分数。图4是图示根据示例实施例的预期输入400和滑动窗口输出402的示例的示图。能够看出,滑动窗口输出402包括上述附加键值对404。
32.此外,在示例实施例中,机器学习模型118被训练以区分正确和不正确的提取信息。因此,除了正训练数据之外,提供不正确的(负的)训练数据变得很重要。然而,一个问题是,该领域的训练数据通常大部分(如果不是全部)由正确(正)样本组成。即,训练数据通常由文本段和标签组成,标签指示对应数据段所在的类别(而不是指示对应数据段不在的类别)。因此,在示例实施例中,使用特殊协议来生成合成负样本。更具体地,从文档中获取任意单词,并为该任意单词分配随机的预测类别。这个随机的预测类别被识别为负标签。由于任意单词被分配正确标签的几率很低,从长远来看,负样本在将标签分类为“不正确”时通常是正确的。
33.能够基于字段的类型来选择负标签的这种合成生成的输入词。第一个属性是预测的长度,对于单个词和多个词的字段,通常分别选择单个词和多个词实例。第二个属性是行位置—取自单行或多个后续行的单词的几何位置。
34.此外,可以监控合成生成的负标签的数量,以确保训练数据中存在特定期望的正负样本比例。例如,可以需要正样本和负样本之间平衡的50/50比率,因此可以控制合成负标签的生成以保持该平衡(或尽可能接近)。
35.预期校准误差(ece)是量化置信度分数校准程度的指标。较低的ece值与更接近准确度的置信度(即更好的校准置信度分数)相对应。ece是平均置信度偏差绝对值的加权平均值,在将预测分为置信度分数区间(例如,[0,.1]、[.1,.2]、...、[.9,1])并计算每个bin b的平均置信度之后,或者:
[0036][0037]
通过本公开所述技术的发明人进行的实验表明,滑动窗口置信度分数可以增强校准(更高的ece分数)。
[0038]
由于滑动窗口置信度分数的校准效果更好,因此可以使用它们来代替原始模型输出的置信度分数。如果原始模型未产生置信度分数,则可以额外使用滑动窗口置信度分数。结果是,可以使用由滑动窗口置信度分数产生的置信度分数来对机器学习滑动窗口模型以外的模型所做的预测执行自动化。
[0039]
该自动化可以利用一个或多个阈值来确定在何处“设置标准”以使自动操作发生。例如,可以设置90%的阈值,使得如果特定预测的置信度分数等于或大于90%,则该预测将自动用于后续任务中,而无需用户输入,诸如使用预测来预填充记录的字段。另一个阈值可以用于部分自动化。例如,可以设置90%的阈值,使得如果特定预测的置信度分数等于或大于80%,但小于90%,则自动执行后续任务(例如,预填充字段),但可以提示用户再次检查后续任务的准确性。
[0040]
此外,阈值本身可以基于上下文而改变。例如,多租户系统中的每个租户可以有自己的阈值(或阈值集合)。此外,每个类别的数据可以有自己的阈值(或阈值集合)。
[0041]
可以从用户接收到反馈,以测量置信度的质量,并且可以对滑动窗口机器学习模型进行再训练。
[0042]
图5是图示根据示例实施例的使用机器学习算法来训练滑动比例机器学习模型的方法500的流程图。在操作502,访问一个或多个样本文档以及一个或多个样本文档内的一个或多个数据段。每个数据段都被分配标签。此标签可以表示关于数据段的“真值”,诸如数据的类别。然后,对每个样本文档内的一个或多个数据段开始循环。在操作504,确定样本文档中的数据段的几何位置。例如,该几何位置可以是坐标或一系列坐标。
[0043]
在操作506,标识一个或多个相邻数据段。每个相邻数据段在几何上位于样本文档内的该数据段附近。在示例实施例中,如果一些数据段位于边界框内,则所述一些数据段被视为该数据段的邻居。如前所述,边界框可以是包括该数据段的任何几何形状。样本文档中的每个相邻数据段都有标签。
[0044]
在操作508,为数据段和一个或多个相邻数据段中的每一个生成嵌入。然后,在操作510,通过组合数据段的嵌入、数据段的几何位置、数据段的标签以及对于每个相邻数据段,组合相邻数据段的嵌入,相邻数据段的几何位置,以及相邻数据段的标签,创建数据段的样本输入序列。在操作512,通过将一个或多个数据段中的每一个的样本输入序列馈送入机器学习算法来训练滑动窗口机器学习模型以输出置信度分数。
[0045]
图6是图示根据示例实施例的使用滑动比例机器学习模型的方法600的流程图。在操作602,获得第一文档中的第一数据段的第一预测标签。第一预测标签可以由第一模型输出,第一模型可以是机器学习模型,也可以不是机器学习模型。
[0046]
在操作604,访问第一文档。在操作606,确定第一文档中第一数据段的几何位置。在示例实施例中,可以在第一文档的顶部布置坐标系,并且将第一数据段(或第一数据段的中心)位于第一文档内的坐标集合作为位置。在操作608,使用边界框来标识第一文档中的第一数据段的一个或多个相邻数据段。这可以利用坐标系中一个或多个相邻数据段中的每一个的位置,并且边界框可以由标识边界框的角的一系列坐标来定义。
[0047]
在操作610,访问一个或多个相邻数据段中的每一个的标签。在操作612,生成第一数据段和一个或多个相邻数据段中的每一个的嵌入。在操作614,基于第一数据段的嵌入、第一预测标签、第一数据段的位置,以及对于每个相邻数据段,基于相邻数据段的嵌入、相邻数据段的标签和相邻数据段的位置,创建输入序列。在示例实施例中,输入序列是这些信息段的级联。
[0048]
在操作616,输入序列被馈送到滑动窗口机器学习模型中,该模型预测第一预测标签的置信度值。在操作618,将置信度值与第一阈值进行比较。如果置信度值超过第一阈值,则在操作620,使用第一预测标签和/或第一数据段执行自动任务(诸如预填充字段)。如果置信度值没有超过第一阈值,则在操作622,提示用户执行手动任务(诸如手动填写字段)。在操作624,通过将反馈连同输入序列传递给机器学习算法,使用基于置信度值的反馈来重新训练滑动窗口机器学习模型。
[0049]
鉴于上述主题的实现方式,本技术公开了以下示例列表,其中,单独的示例的一个特征或组合的所述示例的多个特征,结合一个或多个进一步示例的一个或多个特征,也属于本技术公开的进一步示例:
[0050]
示例1.一种系统,包括:
[0051]
至少一个硬件处理器;以及
[0052]
计算机可读介质,存储指令,当所述指令由至少一个硬件处理器执行时,使至少一
个硬件处理器执行操作,包括:
[0053]
访问一个或多个样本文档,以及一个或多个样本文档中的一个或多个数据段,每个数据段被分配了标签;
[0054]
对于一个或多个数据段中的每一个:
[0055]
在一个或多个样本文档中确定样本文档内的该数据段的几何位置;
[0056]
标识一个或多个相邻数据段,每个相邻数据段在几何上位于样本文档内的该数据段附近,一个或多个相邻数据段中的每一个具有标签;
[0057]
为该数据段和一个或多个相邻数据段中的每一个生成嵌入;和
[0058]
通过组合数据段的嵌入、数据段的几何位置、数据段的标签,以及对于每个相邻数据段,组合相邻数据段的嵌入、相邻数据段的几何位置和相邻数据段的标签,为一个或多个数据段创建样本输入序列;以及
[0059]
通过将一个或多个数据段中的每一个的样本输入序列输入机器学习算法,训练滑动窗口机器学习模型输出置信度分数。
[0060]
示例2.根据示例1所述的系统,其中,机器学习算法是卷积神经网络和全连接层架构。
[0061]
示例3.根据示例1或2所述的系统,其中,卷积神经网络具有多个不同滤波器宽度的平行一维卷积层。
[0062]
示例4.根据示例3所述的系统,其中,每个滤波器宽度与不同的n-gram宽度相对应。
[0063]
示例5.根据示例3所述的系统,其中,卷积神经网络具有最大池层。
[0064]
示例6.根据示例1-5中任一示例所述的系统,其中,训练使用多标签分类任务。
[0065]
示例7.根据示例1-6中任一示例所述的系统,其中,每个标签表示不同类别的数据。
[0066]
示例8.根据示例1-7中任一示例所述的系统,其中,数据段和标签的每个组合构成训练样本,并且其中,一些训练样本是正训练样本,一些训练样本是负训练样本。
[0067]
示例9.根据示例8所述的系统,其中,操作还包括确定是否已达到正训练样本与负训练样本的预定比率,如果未达到,则自动生成负训练样本以达到预定比率。
[0068]
示例10.根据示例9所述的系统,其中,通过获取缺少标签的数据段并随机分配标签,自动生成负训练样本。
[0069]
示例11.一种方法,包括:
[0070]
访问一个或多个样本文档,以及一个或多个样本文档中的一个或多个数据段,每个数据段被分配了标签;
[0071]
对于一个或多个数据段中的每一个:
[0072]
在一个或多个样本文档中确定样本文档内的该数据段的几何位置;
[0073]
标识一个或多个相邻数据段,每个相邻数据段在几何上位于样本文档内的该数据段附近,一个或多个相邻数据段中的每一个具有标签;
[0074]
为该数据段和一个或多个相邻数据段中的每一个生成嵌入;和
[0075]
通过组合数据段的嵌入、数据段的几何位置、数据段的标签,以及对于每个相邻数据段,组合相邻数据段的嵌入、相邻数据段的几何位置和相邻数据段的标签,为一个或多个
数据段创建样本输入序列;以及
[0076]
通过将一个或多个数据段中的每一个的样本输入序列输入机器学习算法,训练滑动窗口机器学习模型输出置信度分数。
[0077]
示例12.根据示例11所述的方法,其中,机器学习算法是卷积神经网络和全连接层架构。
[0078]
示例13.根据示例11或12所述的方法,其中,卷积神经网络具有多个不同滤波器宽度的平行一维卷积层。
[0079]
示例14.根据示例13所述的方法,其中,每个滤波器宽度与不同的n-gram宽度相对应。
[0080]
示例15.根据示例13所述的方法,其中,卷积神经网络具有最大池层。
[0081]
示例16.根据示例11-15中任一示例所述的方法,其中,训练使用多标签分类任务。
[0082]
示例17.一种非暂时性机器可读介质,存储指令,当所述指令由一个或多个处理器执行时,使一个或多个处理器执行操作,包括:
[0083]
访问一个或多个样本文档,以及一个或多个样本文档中的一个或多个数据段,每个数据段被分配了标签;
[0084]
对于一个或多个数据段中的每一个:
[0085]
在一个或多个样本文档中确定样本文档内的该数据段的几何位置;
[0086]
标识一个或多个相邻数据段,每个相邻数据段在几何上位于样本文档内的该数据段附近,一个或多个相邻数据段中的每一个具有标签;
[0087]
为该数据段和一个或多个相邻数据段中的每一个生成嵌入;和
[0088]
通过组合数据段的嵌入、数据段的几何位置、数据段的标签,以及对于每个相邻数据段,组合相邻数据段的嵌入、相邻数据段的几何位置和相邻数据段的标签,为一个或多个数据段创建样本输入序列;以及
[0089]
通过将一个或多个数据段中的每一个的样本输入序列输入机器学习算法,训练滑动窗口机器学习模型输出置信度分数。
[0090]
示例18.根据示例17所述的非暂时性机器可读介质,其中,数据段和标签的每个组合构成训练样本,并且其中,一些训练样本是正训练样本,一些训练样本是负训练样本。
[0091]
示例19.示例18所述的非暂时性机器可读介质,其中,操作还包括确定是否已达到正训练样本与负训练样本的预定比率,如果未达到,则自动生成负训练样本以达到预定比率。
[0092]
示例20.根据示例19所述的非暂时性机器可读介质,其中,通过获取缺少标签的数据段并随机分配标签,自动生成负训练样本。
[0093]
图7是图示软件架构702的框图700,该软件架构702能够被安装在上述任何一个或多个设备上。图7仅是软件架构的非限制性示例,并且可以理解的是,许多其他架构能够被实现以促进本文所述的功能。在各种实施例中,软件架构702由硬件实现,诸如图8的机器800,其包括处理器810、存储器830和输入/输出(i/o)组件850。在该示例架构中,软件架构702能够被概念化为层的堆栈,其中每一层可以提供特定功能。例如,软件架构702包括诸如操作系统704、库706、框架708和应用710的层。在操作上,应用710通过软件堆栈调用应用程序接口(api)调用712,并接收响应于api调用712的消息714,这与一些实施例一致。
[0094]
在各种实现中,操作系统704管理硬件资源并提供公共服务。操作系统704包括例如内核720、服务722和驱动器724。内核720充当硬件层和其他软件层之间的抽象层,这与一些实施例一致。例如,内核720提供存储器管理、处理器管理(例如,调度)、组件管理、网络和安全设置等功能。服务722能够为其他软件层提供其他公共服务。驱动器724负责控制底层硬件或与底层硬件接口。例如,驱动器724能够包括显示器驱动器、相机驱动器、或低能驱动器、闪存驱动器、串行通信驱动器(例如,通用串行总线(usb)驱动器)、驱动器、音频驱动器、电力管理驱动器等。
[0095]
在一些实施例中,库706提供由应用710使用的低级公共基础设施。库706能够包括系统库730(例如,c标准库),其能够提供诸如存储器分配函数、字符串操作函数、数学函数等的函数。此外,库706能够包括诸如媒体库(例如,支持各种媒体格式的呈现和操作的库,诸如运动图像专家组-4(mpeg4)、高级视频编码(h.264或avc)、运动图像专家组第3层(mp3)、高级音频编码(aac)、自适应多速率(amr)音频编解码器、联合摄影专家组(jpeg或jpg)或便携式网络图形(png))、图形库(例如,用于在显示器上的图形上下文中以二维(2d)和三维(3d)呈现的opengl框架)、数据库库(例如,提供各种关系数据库功能的sqlite)、web库(例如,提供web浏览功能的webkit)等的api库732。库706还能够包括多种其他库734,以向应用710提供许多其他api。
[0096]
框架708提供能够由应用710使用的高级公共基础设施。例如,框架708提供各种图形用户界面(gui)功能、高级资源管理、高级位置服务等。框架708能够提供能够由应用710使用的广泛的其他api,其中一些api可以特定于特定的操作系统704或平台。
[0097]
在示例实施例中,应用710包括家庭应用750、联系人应用752、浏览器应用754、图书阅读器应用756、位置应用758、媒体应用760、消息传递应用762、游戏应用764和诸如第三方应用766的各种其他应用。应用710能够是执行在程序中定义的功能的程序。能够使用各种编程语言来创建以各种方式构造的一个或多个应用710,编程语言诸如面向对象编程语言(例如,objective-c、java或c++)或过程编程语言(例如,c或汇编语言)。在特定示例中,第三方应用766(例如,由特定平台供应商以外的实体使用android
tm
或者ios
tm
软件开发工具包(sdk)开发的应用)可以是运行在移动操作系统(诸如ios
tm
、安卓
tm
、phone或其他移动操作系统)上的移动软件。在此示例中,第三方应用766能够调用操作系统704提供的api调用712,以促进本文所述的功能。
[0098]
图8图示了计算机系统形式的机器800的图解表示,其中可以执行指令集,以使机器800执行本文讨论的任何一种或多种方法。具体地,图8以计算机系统的示例形式示出了机器800的图解表示,其中可以执行用于使机器800执行本文讨论的任何一种或多种方法的指令816(例如,软件、程序、应用、小程序、应用程序或其他可执行代码)。例如,指令816可使机器800执行图5和图6的方法。另外地或可选地,指令816可以实现图1-图6等。指令816将一般的、未编程的机器800转换为特定的机器800,该机器800被编程为以所描述的方式执行所描述和图示的功能。在替代实施例中,机器800作为独立设备运行,或者可以耦合(例如,联网)到其他机器。在网络部署中,机器800可以在服务器-客户端网络环境中以服务器机器或客户端机器的身份操作,或者在对等(或分布式)网络环境中作为对等机器操作。机器800可以包括但不限于服务器计算机、客户端计算机、个人计算机(pc)、平板计算机、膝上型计算机、上网本、机顶盒(stb)、个人数字助理(pda)、娱乐媒体系统、蜂窝电话、智能电话、移动设
备、可穿戴设备(例如,智能手表)、智能家庭设备(例如,智能设备)、其他智能设备、web设备、网络路由器、网络交换机、网桥或能够顺序或以其他方式执行指令816的任何机器,这些指令816指定机器800要采取的动作。此外,虽然仅示出了单个机器800,但术语“机器”还应被视为包括单独或联合执行指令816以执行本文讨论的任何一种或多种方法的机器800的集合。
[0099]
机器800可以包括处理器810、存储器830和i/o组件850,其可以被配置为例如经由总线802彼此通信。在示例实施例中,处理器810(例如,中央处理单元(cpu)、精简指令集计算(risc)处理器、复杂指令集计算(cisc)处理器、图形处理单元(gpu)、数字信号处理器(dsp)、专用集成电路(asic),射频集成电路(rfic)、另一处理器或其任何合适的组合)可以包括例如可以执行指令816的处理器812和处理器814。术语“处理器”旨在包括多核处理器,其可以包括可同时执行指令816的两个或多个独立处理器(有时称为“核心”)。尽管图8示出了多个处理器810,但机器800可以包括具有单核的单个处理器812、具有多核的单个处理器812(例如,多核处理器812)、具有单核的多个处理器812、814、具有多核的多个处理器812、814或其任何组合。
[0100]
存储器830可以包括主存储器832、静态存储器834和存储单元836,每个可由处理器810诸如经由总线802访问。主存储器832、静态存储器834和存储单元836存储体现本文描述的方法或功能中的任何一个或多个的指令816。在机器800执行指令期间,指令816还可以全部或部分地驻留在主存储器832内、静态存储器834内、存储单元836内、处理器810中的至少一个(例如,在处理器的高速缓存存储器内)内或其任何适当组合内。
[0101]
i/o组件850可以包括用于接收输入、提供输出、产生输出、发送信息、交换信息、捕获测量等的多种组件。包括在特殊机器中的特定i/o组件850将取决于机器的类型。例如,诸如移动电话的便携式机器可以包括触摸输入设备或其他此类输入机制,而无头服务器机器可以不包括此类触摸输入设备。应当理解,i/o组件850可以包括图8中未示出的许多其他组件。仅为了简化下面的讨论,根据功能对i/o组件850进行分组,并且分组不以任何方式限制。在各种示例实施例中,i/o组件850可以包括输出组件852和输入组件854。输出组件852可以包括视觉组件(例如,显示器,诸如等离子显示面板(pdp)、发光二极管(led)显示器、液晶显示器(lcd)、投影仪或阴极射线管(crt))、声学组件(例如,扬声器)、触觉组件(例如,振动马达、电阻机构)、其他信号生成器等等。输入组件854可以包括字母数字输入组件(例如,被配置为接收字母数字输入的键盘、触摸屏、光电键盘或其他字母数字输入组件)、基于点的输入组件(例如,鼠标、触摸板、轨迹球、操纵杆、运动传感器或其他定点仪器)、触觉输入组件(例如,物理按钮、提供触摸位置和/或力度或触摸手势的触摸屏,或其他触觉输入组件)、音频输入组件(例如,麦克风)等。
[0102]
在进一步的示例实施例中,i/o组件850可以包括生物统计组件856、运动组件858、环境组件860或定位组件862以及广泛的其他组件阵列。例如,生物统计组件856可以包括用于检测表情(例如,手表情、面部表情、声音表情、身体姿势或眼睛跟踪)、测量生物信号(例如,血压、心率、体温、汗水或脑波)、识别人(例如,语音识别、视网膜识别、面部识别、指纹识别或基于脑电图的识别)等的组件。运动组件858可以包括加速度传感器组件(例如,加速计)、重力传感器组件、旋转传感器组件(例如,陀螺仪)等。环境组件860可以包括,例如,照度传感器组件(例如,光度计)、温度传感器组件(例如,检测环境温度的一个或多个温度
计)、湿度传感器组件、压力传感器组件(例如,气压计),声学传感器组件(例如,检测背景噪声的一个或多个麦克风)、接近传感器组件(例如,检测附近物体的红外传感器)、气体传感器(例如,检测危险气体浓度以确保安全或测量大气中污染物的气体检测传感器)或其他可以提供与周围物理环境相对应的指示、测量或信号的组件。定位组件862可以包括位置传感器组件(例如,全球定位系统(gps)接收器组件)、高度传感器组件(例如,高度计或气压计,用于检测可以从中得出高度的气压)、方向传感器组件(例如,磁强计)等。
[0103]
通信可以使用多种技术来实现。i/o组件850可以包括通信组件864,该通信组件可操作以分别经由联结(coupling)882和联结872将机器800耦合到网络880或设备870。例如,通信组件864可以包括网络接口组件或与网络880接口的另一合适设备。在进一步的示例中,通信组件864可以包括有线通信组件、无线通信组件、蜂窝通信组件、近场通信(nfc)组件、组件(例如,低能量)、组件和经由其他方式提供通信的其他通信组件。设备870可以是另一机器或多种外围设备(例如,经由usb耦合)中的任何一种。
[0104]
此外,通信组件864可以检测标识符或包括可操作以检测标识符的组件。例如,通信组件864可以包括射频识别(rfid)标签读取器组件、nfc智能标签检测组件、光学读取器组件(例如,用于检测诸如通用产品代码(upc)条形码等的一维条形码,诸如qr码、aztec码、数据矩阵、dataglyph、maxicode、pdf417、ultra code、ucc rss-2d条形码等的多维条形码和其他光学代码的光学传感器)或声学检测组件(例如,用于识别标记音频信号的麦克风)。此外,可以经由通信组件864导出各种信息,诸如经由互联网协议(ip)地理定位的位置、经由信号三角测量的位置、经由检测可指示特定位置的nfc信标信号的位置等。
[0105]
各种存储器(即,830、832、834和/或处理器810的存储器)和/或存储单元836可以存储一组或多组指令816和数据结构(例如,软件),这些数据结构体现了本文描述的任何一种或多种方法或功能或由本文描述的任何一种或多种方法或功能利用。当由处理器810执行时,这些指令(例如,指令816)引起各种操作来实现所公开的实施例。
[0106]
如本文所用,术语“机器存储介质”、“设备存储介质”和“计算机存储介质”意味着相同的事物并且可以互换使用。这些术语指代存储可执行指令和/或数据的单个或多个存储设备和/或介质(例如,集中式或分布式数据库,和/或相关缓存和服务器)。相应地,这些术语应包括但不限于固态存储器、光学和磁性介质,包括处理器内部或外部的存储器。机器存储介质、计算机存储介质和/或设备存储介质的具体示例包括非易失性存储器,包括例如半导体存储设备,例如可擦除可编程只读存储器(eprom)、电可擦除可编程只读存储器(eeprom)、现场可编程门阵列(fpga)和闪存设备;磁盘,诸如内部硬盘和可移动磁盘;磁光盘;以及cd-rom和dvd-rom光盘。术语“机器存储介质”、“计算机存储介质”和“设备存储介质”明确排除载波、调制数据信号和其他此类介质,其中至少一些介质在下文讨论的术语“信号介质”中被涵盖。
[0107]
在各种示例实施例中,网络880的一个或多个部分可以是自组织网络、内联网、外联网、虚拟专用网(vpn)、局域网(lan)、无线局域网(wlan)、广域网(wan)、无线wan(wwan)、城域网(man)、互联网、互联网的一部分、公共交换电话网(pstn)的一部分、普通旧电话服务(pots)网络、蜂窝电话网络、无线网络、网络、其他类型的网络或两个或多个此类网络的组合。例如,网络880或网络880的一部分可以包括无线或蜂窝网络,并且联结882可以是码分多址(cdma)连接、全球移动通信系统(gsm)连接或另一种类型的蜂窝或无线联结。
在该示例中,联结882可以实现各种类型的数据传输技术中的任何一种,诸如单载波无线电传输技术(1xrtt)、演进数据优化(evdo)技术、通用分组无线电服务(gprs)技术、用于gsm演进(edge)技术的增强数据速率、第三代合作项目(3gpp),包括3g、第四代无线(4g)网络、通用移动通信系统(umts)、高速分组接入(hspa)、全球微波接入互操作性(wimax)、长期演进(lte)标准以及各种标准制定组织定义的其他标准、其他远程协议或其他数据传输技术。
[0108]
指令816可以使用传输介质通过网络880经由网络接口设备(例如,包括在通信组件864中的网络接口组件)并利用多个已知传输协议(例如,超文本传输协议(http))中的任何一个来发送或接收。类似地,可以使用传输介质经由联结872(例如,对等联结)向设备870发送或从设备870接收指令816。术语“传输介质”和“信号介质”的含义相同,在本公开中可以互换使用。术语“传输介质”和“信号介质”应被视为包括能够存储、编码或携带指令816以供机器800执行的任何无形介质,并且包括数字或模拟通信信号或其他无形介质,以促进此类软件的通信。因此,术语“传输介质”和“信号介质”应被视为包括任何形式的调制数据信号、载波等。术语“调制数据信号”意味着以编码信号中信息的方式设置或改变其一个或多个特性的信号。
[0109]
术语“机器可读介质”、“计算机可读介质”和“设备可读介质”意味着相同的事物,并且在本公开中可以互换使用。这些术语的定义包括机器存储介质和传输介质。因此,术语包括存储设备/介质和载波/调制数据信号。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1