用于针对多方对话的话语解析的结构自感知模型
背景技术:
1.本公开内容总体上涉及数据处理领域,并且更特别地涉及语音分类。
2.会话话语解析旨在发现说话者与言语之间的相互依存关系。对话可以包括非相邻言语之间的关系,例如最后回合与第一回合之间的“评论”关系。这项任务并不平凡,因为它包括具有挑战性的情况,例如非相邻言语之间的关系。关于话语解析的最初努力主要基于手工构建的特征,其中,解码过程以流水线方式建模。在这个过程中,首先估计每个edu对的话语关系的概率,然后通过诸如最大支撑树的搜索算法推断出话语结构。受深度学习在其他自然语言处理任务中的成功启发,诸如deepsequential的神经模型可以用于针对多方对话的话语解析。通常,deepsequential同时构建并利用每个对话的话语结构:它在做出当前预测并将其纳入部分话语结构之前,首先从已经预测的话语结构中提取特征。
技术实现要素:
3.实施方式涉及用于对话解析的方法、系统和计算机可读介质。根据一个方面,提供了一种用于对话解析的方法。该方法可以包括接收具有多个基本话语单元的对话数据。基于对基本话语单元执行成对比较来确定针对基本话语单元中的每一个的局部表示和全局表示。基于所确定的局部表示和全局表示来识别每对基本话语单元中的两个基本话语单元之间的语义关系。基于所识别的语义关系来预测非相邻基本话语单元之间的上下文联系。
4.根据另一方面,提供了一种用于对话解析的计算机系统。该计算机系统可以包括一个或更多个处理器、一个或更多个计算机可读存储器、一个或更多个计算机可读有形存储装置、以及存储在所述一个或更多个存储装置中的至少一个存储装置上的程序指令,所述程序指令用于经由所述一个或更多个存储器中的至少一个存储器由所述一个或更多个处理器中的至少一个处理器执行,由此计算机系统能够执行方法。该方法可以包括接收具有多个基本话语单元的对话数据。基于对基本话语单元执行成对比较来确定针对基本话语单元中的每一个的局部表示和全局表示。基于所确定的局部表示和全局表示来识别每对基本话语单元中的两个基本话语单元之间的语义关系。基于所识别的语义关系来预测非相邻基本话语单元之间的上下文联系。
5.根据又一方面,提供了一种用于对话解析的计算机可读介质。计算机可读介质可以包括:一个或更多个计算机可读存储装置;以及存储在一个或更多个有形存储装置中的至少一个有形存储装置上的程序指令,该程序指令可由处理器执行。程序指令可由用于执行方法的处理器执行,该方法可以相应地包括接收具有多个基本话语单元的对话数据。基于对基本话语单元执行成对比较来确定针对基本话语单元中的每一个的局部表示和全局表示。基于所确定的局部表示和全局表示来识别每对基本话语单元中的两个基本话语单元之间的语义关系。基于所识别的语义关系来预测非相邻基本话语单元之间的上下文联系。
附图说明
6.根据要结合附图阅读的说明性实施方式的以下详细描述,这些和其他目的、特征
和优点将变得明显。附图的各种特征不是按比例的,因为该图示是为了在便于本领域技术人员结合详细描述进行理解方面清晰易懂。在附图中:图1示出了根据至少一个实施方式的联网的计算机环境;图2是根据至少一个实施方式的用于解析多方对话的系统的框图;图3是示出根据至少一个实施方式的由解析多方对话的程序所执行的步骤的操作流程图;图4是根据至少一个实施方式的图1中描绘的计算机和服务器的内部部件和外部部件的框图;图5是根据至少一个实施方式的包括图1中描绘的计算机系统的说明性云计算环境的框图;以及图6是根据至少一个实施方式的图5的说明性云计算环境的功能层的框图。
具体实施方式
7.本文中公开了所要求保护的结构和方法的具体实施方式;然而,可以理解的是,所公开的实施方式仅是对可以以各种形式实施的所要求保护的结构和方法的说明。然而,这些结构和方法可以以许多不同的形式来实施,并且不应被解释为限于本文所阐述的示例性实施方式。而是,提供这些示例性实施方式使得本公开内容将是彻底和完整的,并且将向本领域技术人员完整地传达范围。在描述中,可以省略公知的特征和技术的细节,以避免不必要地模糊所提出的实施方式。
8.实施方式总体上涉及数据处理领域,并且更特别地涉及语音分类。以下描述的示例性实施方式提供了用于解析多方对话等的系统、方法和计算机程序。因此,一些实施方式具有通过使得能够在不受错误传播影响的情况下学习有效表示来改进计算领域的能力。因此,可以实现对所有对话回合而非仅在每次对话开始时的持续改进。
9.如前所述,会话话语分析旨在发现说话者与言语之间的相互依存关系。对话可以包括非相邻言语之间的关系,例如最后回合与第一回合之间的“评论”关系。例如,可以确定会话中的较晚的响应是响应于较早的非相邻响应的评论,尽管介入了不相关的响应。这项任务并不平凡,因为它包括具有挑战性的情况,例如非相邻言语之间的关系。关于话语解析的最初努力主要基于手工构建的特征,其中解码过程以流水线方式建模。在这个过程中,首先估计每个edu对的话语关系的概率,然后通过诸如最大支撑树的搜索算法推断出话语结构。受深度学习在其他自然语言处理任务中的成功启发,诸如deepsequential的神经模型可以用于针对多方对话的话语解析。通常,deepsequential同时构建并利用每个对话的话语结构:它在做出当前预测并将其纳入部分话语结构之前,首先从已经预测的话语结构中提取特征。
10.然而,虽然采用先前预测的结构可以为预测提供更丰富的表示,但是deepsequential面临着严重的错误传播。因此,出于使对话解析的错误传播最小化的目的,使用以边缘为中心的结构自感知图神经网络(ssa-gnn)进行针对多方对话的话语解析可以是有利的。以这种方式,对话解析可以以更高的准确度、可靠性执行并由此也可以以更高的效率执行,因为不再需要错误纠正,使得不需要分配用于纠正错误的计算资源或时间。
11.本文参照根据各种实施方式的方法、设备(系统)和计算机可读介质的流程图图示
和/或框图来描述各方面。将理解,可以通过计算机可读程序指令来实现流程图图示和/或框图中的每个块以及流程图图示和/或框图中的块的组合。
12.以下描述的示例性实施方式提供了使用以边缘为中心的结构自感知图神经网络(ssa-gnn)进行针对多方对话的话语解析的系统、方法和计算机程序。利用该模型,可以在没有来自历史动作的特征的情况下学习有效的表示(因此没有错误传播)。与专注于学习特定于edu的表示的先前工作不同,该模型直接使用特定于边缘的向量来捕获每个edu对的隐式结构信息。得益于图神经网络的逐层消息传递,ssa-gnn中的特定于边缘的向量可以经由与它们的连接节点的语义交互来逐渐捕获隐式相关性和全局信息。因此,该模型可以使用隐式结构信息而非显式历史预测来学习更好的表示,从而在无需消耗更多计算能力的情况下引起改进的话语解析结果。因此,根据本发明的话语解析在计算能力的消耗方面更有效。
13.为了进一步增强表示学习,可以使用两个辅助损失项将正交信号提供至整体目标函数中。第一辅助损失项是用于在ssa-gnn的每一层处进行话语关系分类的损失函数。使用该函数,可以针对每个edu对基于其相应的特定于边缘的表示来进行逐层关系分类。第二辅助损失项是用于知识提炼的kullback-leibler散度损失函数。该函数将访问了更多上下文和除了需要预测的关系之外的其他真实话语关系的教师模型的知识转移至所述模型。
14.现在参照图1,联网计算机环境的功能框图示出了用于解析多方对话的对话解析系统100(下文中为“系统”)。应当理解,图1仅提供了一种实现方式的图示,并且并不暗示关于可以实现不同实施方式的环境的任何限制。可以基于设计和实现方式要求对所描绘的环境做出许多修改。
15.系统100可以包括计算机102和服务器计算机114。计算机102可以经由通信网络110(下文中为“网络”)与服务器计算机114进行通信。计算机102可以包括处理器104和软件程序108,该软件程序108被存储在数据存储装置106上并且能够与用户进行接口连接并与服务器计算机114进行通信。如下面将参照图4所讨论的,计算机102可以分别包括内部部件800a和外部部件900a,以及服务器计算机114可以分别包括内部部件800b和外部部件900b。计算机102可以是例如能够运行程序、访问网络和访问数据库的移动装置、电话、个人数字助理、上网本、膝上型计算机、平板计算机、台式计算机或任何类型的计算装置。
16.如下面关于图5和图6所讨论的,服务器计算机114还可以在诸如软件即服务(saas)、平台即服务(paas)或基础设施即服务(iaas)的云计算服务模型中进行操作。服务器计算机114还可以位于诸如私有云、社区云、公共云或混合云的云计算部署模型中。
17.可以用于解析多方对话的服务器计算机114能够运行可以与数据库112交互的对话解析程序116(下文中为“程序”)。下面关于图3更详细地说明对话解析程序方法。在一个实施方式中,计算机102可以作为包括用户接口的输入装置进行操作,而程序116可以主要在服务器计算机114上运行。在可替选实施方式中,程序116可以主要在一个或更多个计算机102上运行,而服务器计算机114可以用于处理和存储由程序116使用的数据。应当注意,程序116可以是独立的程序,或者可以集成到较大的对话解析程序中。
18.然而,应当注意,在一些实例中,程序116的处理可以以任何比率在计算机102和服务器计算机114之中共享。在另一实施方式中,程序116可以在多于一个计算机、服务器计算机或计算机和服务器计算机的一些组合上进行操作,例如,可以在跨网络110与单个服务器计算机114进行通信的多个计算机102上进行操作。例如,在另一实施方式中,程序116可以
在跨网络110与多个客户端计算机进行通信的多个服务器计算机114上进行操作。可替选地,该程序可以在跨网络与服务器和多个客户端计算机进行通信的网络服务器上进行操作。
19.网络110可以包括有线连接、无线连接、光纤连接或它们的一些组合。通常,网络110可以是支持计算机102与服务器计算机114之间的通信的连接和协议的任何组合。网络110可以包括各种类型的网络,诸如,例如局域网(lan)、诸如因特网的广域网(wan)、诸如公共交换电话网络(pstn)的电信网络、无线网络、公共交换网络、卫星网络、蜂窝网络(例如,第五代(5g)网络、长期演进(lte)网络、第三代(3g)网络、码分多址(cdma)网络等)、公共陆地移动网络(plmn)、城域网(man)、专用网络、自组织网络、内联网、基于光纤的网络等以及/或者这些或其他类型的网络的组合。
20.图1所示的装置和网络的数目和布置作为示例被提供。实际上,除了图1所示的装置和/或网络以外,可以存在另外的装置和/或网络、更少的装置和/或网络、不同的装置和/或网络、或不同布置的装置和/或网络。此外,图1所示的两个或更多个装置可以在单个装置内实现,或者图1所示的单个装置可以实现为多个分布式装置。另外地或可替选地,系统100的一组装置(例如,一个或更多个装置)可以执行被描述为由系统100的另一组装置执行的一个或更多个功能。
21.现在参照图2描绘对话解析系统200。对话解析系统200可以包括分层门控循环单元(gru)202、结构自感知图神经网络(ssa-gnu)204和关系分类模块206等。门控循环单元(gru)是循环神经网络(rnn)中的门控机构,所述循环神经网络(rnn)使用通过一系列节点进行的连接来执行与记忆和聚类相关联的机器学习任务。分层gru 202可以获得基本话语单元(edu)表示例如局部表示和全局表示。然后,使用这些edu表示和从edu表示提取的一个或更多个对话特征来分别初始化ssa-gnn 204的节点和边缘。关系分类模块206使用由ssa-gnn 204从字形学习中生成的边缘表示来执行联系预测和关系分类。分层gru 202包括两个gru层。第一双向gru层对每个edu进行处理,并且可以针对每个edu将两个方向上的最后隐藏状态级联以获得局部表示。接下来,第二双向gru层可以应用于局部表示以获得全局表示。
22.ssa-gnn 204应用于捕获隐式结构信息。可以针对每个edu对采用向量(在这种情况下,向量构成例如ssa-gnn 204的边缘)和针对每个edu采用向量(在这种情况下,向量构成例如ssa-gnn 204的节点)。因此,ssa-gnn 204将完全连接的图作为输入。为了ssa-gnn 204的隐藏状态的初始化,使用分层gru 202全局表示作为初始节点表示u0。ssa-gnn 204使用缩放的点积注意力函数——特别是结构感知的缩放的点积注意力函数——来更新节点隐藏状态。随着第k层节点表示uk和边缘表示xk被更新,可以如下计算u
k 1
:u
k 1
=注意力(uk,
xk
))
23.可以使用具有多个粒度的两个辅助损失项来进一步增强表示学习。最直接的方法是针对每个ssa-gnn层的边缘隐藏状态采用逐层分类器,这鼓励边缘表示从ssa-gnn中捕获相应的关系类型信息。除了提供标签水平结构监督的逐层关系分类之外,知识提炼还可以使用结构感知教师模型来指导模型,以更好地进行表示学习。与学生模型不同的是,除了要预测的关系之外,教师还输入对话和所有黄金结构信息。包含最丰富结构知识的边缘隐藏状态可以从教师转移至学生,指导学生如何正确且有效地从ssa-gnn中提取结构信息。
24.现在参照图3,描绘示出了由解析多方对话(或对多方语音数据进行分类)的程序执行的方法300的步骤的操作流程图。
25.在302处,方法300可以包括:接收具有多个基本话语单元的对话数据。对话数据可以是包含多个基本话语单元的音频信号(语音信号)。
26.在304处,方法300可以包括:基于对基本话语单元执行成对比较来确定针对基本话语单元中的每一个的局部表示和全局表示。
27.在306处,方法300可以包括:基于所确定的局部表示和全局表示来识别每对基本话语单元中的两个基本话语单元之间的语义关系。
28.在308处,方法300可以包括:基于所识别的语义关系来预测非相邻的基本话语单元之间的上下文联系。
29.可以理解,图3仅提供了一种实现方式的图示,并且并不暗示关于如何可以实现不同实施方式的任何限制。可以基于设计和实现方式要求对所描绘的环境做出许多修改。
30.图4是根据说明性实施方式的图1中描绘的计算机的内部部件和外部部件的框图400。应当理解,图4仅提供了一种实现方式的图示,并且并不暗示关于可以实现不同实施方式的环境的任何限制。可以基于设计和实现方式要求对所描绘的环境做出许多修改。
31.计算机102(图1)和服务器计算机114(图1)可以包括图5所示的内部部件800a、800b和外部部件900a、900b的相应集合。内部部件800a的集合中的每一个包括:一个或更多个总线826上的一个或更多个处理器820、一个或更多个计算机可读ram 822和一个或更多个计算机可读rom 824;一个或更多个操作系统828;以及一个或更多个计算机可读有形存储装置830。
32.处理器820以硬件、固件或硬件与软件的组合来实现。处理器820是中央处理单元(cpu)、图形处理单元(gpu)、加速处理单元(apu)、微处理器、微控制器、数字信号处理器(dsp)、现场可编程门阵列(fpga)、专用集成电路(asic)或另一类型的处理部件。在一些实现方式中,处理器820包括能够被编程以执行功能的一个或更多个处理器。总线826包括允许内部部件800a、800b之中的通信的部件。
33.一个或更多个操作系统828、软件程序108(图1)和服务器计算机114(图1)上的对话解析程序116(图1)被存储在相应计算机可读有形存储装置830中的一个或更多个上以经由相应ram 822(其通常包括高速缓冲存储器)中的一个或更多个由相应处理器820中的一个或更多个执行。在图4所示的实施方式中,计算机可读有形存储装置830中的每一个是内部硬盘驱动器的磁盘存储装置。可替选地,计算机可读有形存储装置830中的每一个是能够存储计算机程序和数字信息的半导体存储装置,例如rom 824、eprom、闪存存储器、光盘、磁
光盘、固态盘、致密盘(cd)、数字多功能盘(dvd)、软盘、盒式磁带、磁带以及/或者另一类型的非暂态计算机可读有形存储装置。
34.内部部件800a、800b的每个集合还包括r/w驱动器或接口832,以从一个或更多个便携式计算机可读有形存储装置936读取和向一个或更多个便携式计算机可读有形存储装置写入,该便携式计算机可读有形存储装置例如是cd-rom、dvd、记忆棒、磁带、磁盘、光盘或半导体存储装置。诸如软件程序108(图1)和对话解析程序116(图1)的软件程序可以被存储在相应便携式计算机可读有形存储装置936中的一个或更多个上,可以经由相应r/w驱动器或接口832读取,以及可以加载至相应硬盘驱动器830中。
35.内部部件800a、800b的每个集合还包括网络适配器或接口836,例如tcp/ip适配卡;无线wi-fi接口卡;或者3g、4g或5g无线接口卡或其他有线或无线通信链路。软件程序108(图1)和服务器计算机114(图1)上的对话解析程序116(图1)可以经由网络(例如,因特网、局域网或其他、广域网)和相应网络适配器或接口836从外部计算机下载到计算机102(图1)和服务器计算机114。将软件程序108和服务器计算机114上的对话解析程序116从网络适配器或接口836加载至相应硬盘驱动器830中。网络可以包括铜线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
36.外部部件900a、900b的集合中的每个集合可以包括计算机显示器920、键盘930和计算机鼠标934。外部部件900a、900b还可以包括触摸屏、虚拟键盘、触摸板、定点装置和其他人机接口装置。内部部件800a、800b的集合中的每个集合还包括用以与计算机显示器920、键盘930和计算机鼠标934进行接口连接的装置驱动器840。装置驱动器840、r/w驱动器或接口832以及网络适配器或接口836包括硬件和软件(存储在存储装置830和/或rom 824中)。
37.预先理解的是,尽管本公开内容包括关于云计算的详细描述,但是本文中所述的教导的实现方式不限于云计算环境。而是,一些实施方式能够结合现在已知或以后开发的任何其他类型的计算环境来实现。
38.云计算是用于实现对可配置计算资源(例如,网络、网络带宽、服务器、处理、存储器、存储装置、应用、虚拟机和服务)的共享池的方便且按需的网络访问的服务递送模型,该可配置计算资源可以以最小的管理努力或以与服务提供商的互动而被快速地供应和发布。该云模型可以包括至少五个特征、至少三个服务模型和至少四个部署模型。
39.特征如下:按需自助服务:云消费者可以单方面地根据需要自动地供应计算能力例如服务器时间和网络存储,而无需与服务的提供商进行人机交互。广泛的网络访问:能力能够通过网络获得,并且通过由异构的瘦客户端平台或厚客户端平台(例如,移动电话、膝上型计算机和pda)促进使用的标准机制来访问。资源池化:提供商的计算资源被池化以使用多租户模型来服务多个消费者,其中不同的物理资源和虚拟资源根据需求被动态地分配和重新分配。存在位置无关的感觉,因为消费者通常不控制或不知道所提供的资源的确切位置,但可能能够以更高的抽象级别(例如,国家、州或数据中心)指定位置。快速弹性:能力可以快速且弹性地供应(在一些情况下是自动地)以快速地横向扩展(scale out),并且能力可以快速地发布以快速地纵向扩展(scale in)。对于消费者,可
用于供应的能力通常看起来不受限制,并且可以在任何时间以任何数量购置。测量服务:云系统通过在适合于服务类型(例如,存储、处理、带宽和活跃用户账户)的一些抽象层次上利用计量能力来自动控制和优化资源使用。可以监测、控制和报告资源使用,从而为所利用的服务的提供商和消费者两者提供透明度。
40.服务模型如下:软件即服务(saas):提供给消费者的能力是要使用在云基础设施上运行的提供商的应用。可以通过诸如网络浏览器(例如,基于网络的电子邮件)的瘦客户端接口从各种客户端装置访问应用。消费者不管理或控制包括网络、服务器、操作系统、存储装置或甚至个别应用能力的底层云基础设施,其中可能的例外是有限的用户特定应用配置设置。平台即服务(paas):提供给消费者的能力是要将消费者创建或获得的应用部署到云基础设施上,所述应用使用由提供商支持的编程语言和工具所创建。消费者不管理或控制包括网络、服务器、操作系统或存储装置的底层云基础设施,但是具有对部署的应用和可能的应用托管环境配置的控制。基础设施即服务(iaas):提供给消费者的能力是要供应处理、存储、网络以及其他基本计算资源,其中消费者能够部署和运行任意软件,所述软件可以包括操作系统和应用。消费者不管理或控制底层云基础设施,但是具有对操作系统、存储、所部署的应用的控制以及可能对选择联网部件(例如,主机防火墙)的有限控制。
41.部署模型如下:私有云:云基础设施仅仅为组织而操作。其可以由组织或第三方管理,并且可以存在于场内(on-premises)或场外(off-premises)。社区云:云基础设施由若干个组织共享,并且支持具有共享的关注点(例如,任务、安全要求、策略和合规性考虑)的特定社区。其可以由组织或第三方管理,并且可以存在于场内(on-premises)或场外(off-premises)。公共云:云基础设施能够供一般公众或大型行业团体使用,并且由销售云服务的组织所有。混合云:云基础设施是两个或更多个云(私有、社区或公共)的组合,所述两个或更多个云仍然是唯一的实体,但是通过标准化或专有技术绑定在一起,该技术实现数据和应用的可移植性(例如,用于云之间的负载平衡的云爆发)。
42.云计算环境是面向服务的,其集中于无状态、低耦合、模块性和语义互操作性。云计算的核心是包括互连节点的网络的基础设施。
43.参照图5,描绘了说明性云计算环境500。如图所示,云计算环境500包括一个或更多个云计算节点10,云消费者使用的本地计算装置诸如例如个人数字助理(pda)或蜂窝电话54a、台式计算机54b、膝上型计算机54c和/或汽车计算机系统54n可以与所述一个或更多个云计算节点10进行通信。云计算节点10可以彼此通信。云计算节点10可以被物理地或虚拟地分组(未示出)到一个或更多个网络中,诸如如上文描述的私有云、社区云、公共云或混合云或它们的组合。这允许云计算环境500提供基础设施即服务、平台即服务和/或软件即服务,云消费者不需要为这些服务维护本地计算装置上的资源。应当理解,图5中所示的计算装置54a至54n的类型仅旨在是说明性的,并且云计算节点10和云计算环境500可以通过任何类型的网络和/或网络可寻址连接(例如,使用web浏览器)与任何类型的计算机化装置
进行通信。
44.参照图6,示出了由云计算环境500(图5)提供的功能性抽象层600的集合。应当预先理解的是,图6所示的部件、层和功能仅旨在是说明性的,并且实施方式不限于此。如所描绘的,提供了以下层和相应的功能。
45.硬件和软件层60包括硬件部件和软件部件。硬件部件的示例包括:大型主机61;基于risc(reduced instruction set computer,精简指令集计算机)架构的服务器62;服务器63;刀片式服务器64;存储装置65;以及网络和联网部件66。在一些实施方式中,软件部件包括网络应用服务器软件67和数据库软件68。
46.虚拟化层70提供抽象层,从该抽象层可以提供虚拟实体的以下示例:虚拟服务器71;虚拟存储装置72;包括虚拟专用网络的虚拟网络73;虚拟应用和操作系统74;以及虚拟客户端75。
47.在一个示例中,管理层80可以提供下述功能。资源供应81提供对计算资源和用于在云计算环境内执行任务的其他资源的动态获取。计量和定价82提供了在云计算环境内利用资源时的成本监管,以及对这些资源的消耗的帐单或发票。在一个示例中,这些资源可以包括应用软件许可证。安全性为云消费者和任务提供身份验证,以及为数据和其他资源提供保护。用户门户83为消费者和系统管理员提供对云计算环境的访问。服务级别管理84提供云计算资源分配和管理,使得满足所需的服务级别。服务级别协议(sla)规划和履行85提供对云计算资源的预安排和获取,对所述云计算资源的未来需求根据sla来预期。
48.工作负载层90提供了可以对其利用云计算环境的功能的示例。可以从该层提供的工作负载和功能的示例包括:绘图和导航91;软件开发和生命周期管理92;虚拟课堂教学交付93;数据分析处理94;交易处理95;以及对话解析96。对话解析96可以在不受错误传播影响的情况下基于学习有效表示来解析多方对话。
49.一些实施方式可以涉及任何可能的集成的技术细节水平下的系统、方法和/或计算机可读介质。计算机可读介质可以包括(一种或多种)计算机可读非暂态存储介质,该计算机可读非暂态存储介质上具有用于使处理器执行操作的计算机可读程序指令。
50.计算机可读存储介质可以是能够保留和存储由指令执行装置使用的指令的有形装置。计算机可读存储介质可以是例如但不限于电子存储装置、磁存储装置、光学存储装置、电磁存储装置、半导体存储装置或前述的任何合适的组合。计算机可读存储介质的更具体示例的非穷举列表包括以下:便携式计算机磁盘、硬盘、随机存取存储器(ram)、只读存储器(rom)、可擦除可编程只读存储器(eprom或闪速存储器)、静态随机存取存储器(sram)、便携式致密盘只读存储器(cd-rom)、数字多功能盘(dvd)、记忆棒、软盘、机械编码的装置例如穿孔卡或其上记录有指令的凹槽中的凸起结构以及前述的任何合适的组合。如本文中所使用的计算机可读存储介质不应被解释为本身是暂态信号,例如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,穿过光纤线缆的光脉冲)或通过电线传输的电信号。
51.可以经由例如因特网、局域网、广域网和/或无线网的网络将本文中描述的计算机可读程序指令从计算机可读存储介质下载到相应计算/处理装置或者下载到外部计算机或外部存储装置。网络可以包括铜传输线缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理装置中的网络适配器卡或网络接口从网络接
收计算机可读程序指令,并且转发计算机可读程序指令以存储在相应计算/处理装置内的计算机可读存储介质中。
52.用于执行操作的计算机可读程序代码/指令可以是汇编指令、指令集架构(isa)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、集成电路系统的配置数据,或者是以一种或更多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言(例如smalltalk、c 等)以及过程式编程语言(例如“c”编程语言或类似的编程语言)。计算机可读程序指令可以完全在用户的计算机上执行,部分地在用户的计算机上执行,作为独立的软件包执行,部分地在用户的计算机上并且部分地在远程计算机上执行,或者完全在远程计算机或服务器上执行。在后一种情形下,远程计算机可以通过包括局域网(lan)或广域网(wan)的任何类型的网络连接至用户的计算机,或者连接可以(例如通过使用因特网服务提供商的因特网)进行至外部计算机。在一些实施方式中,包括例如可编程逻辑电路系统、现场可编程门阵列(fpga)或可编程逻辑阵列(pla)的电子电路系统可以通过利用计算机可读程序指令的状态信息以使电子电路系统个性化来执行计算机可读程序指令,从而执行各方面或操作。
53.可以将这些计算机可读程序指令提供给通用计算机的处理器、专用计算机的处理器或其他可编程数据处理设备的处理器以产生机器,使得经由计算机的处理器或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图和/或框图的一个或多个框中指定的功能/动作的装置。这些计算机可读程序指令还可以存储在计算机可读存储介质中,其可以引导计算机、可编程数据处理设备和/或其他装置以特定方式工作,使得其中存储有指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图的一个或多个框中指定的功能/动作的各方面的指令。
54.计算机可读程序指令还可以加载到计算机、其他可编程数据处理设备或其他装置上,以使得在计算机、其他可编程设备或其他装置上执行一系列操作步骤,以产生计算机实现的处理,使得在计算机、其他可编程设备或其他装置上执行的指令实现流程图和/或框图的一个或多个框中指定的功能/动作。
55.附图中的流程图和框图示出了根据各种实施方式的系统、方法和计算机可读介质的可能的实现方式的架构、功能和操作。在这方面,流程图或框图中的每个框可以表示模块、段或指令的一部分,所述模块、段或指令的一部分包括用于实现指定的逻辑功能的一个或更多个可执行指令。该方法、计算机系统和计算机可读介质可以包括与附图中所描绘的那些框相比附加的框、更少的框、不同的框或不同布置的框。在一些替选实现方式中,框中指出的功能可以不按图中指出的顺序发生。例如,连续示出的两个框实际上可以同时或基本上同时被执行,或者框有时可以根据所涉及的功能而按照相反的顺序被执行。还将注意,框图和/或流程图图示的每个框以及框图和/或流程图图示中的框的组合可以由专用的基于硬件的系统来实现,所述专用的基于硬件的系统执行指定功能或动作或者执行专用硬件和计算机指令的组合。
56.将明显的是,本文中描述的系统和/或方法可以以不同形式的硬件、固件或硬件和软件的组合来实现。用于实现这些系统和/或方法的实际专用控制硬件或软件代码不限制这些实现方式。因此,本文描述了系统和/或方法的操作和行为,而没有参考特定的软件代码——应当理解,软件和硬件可以被设计为基于本文的描述来实现系统和/或方法。
57.本文中使用的元素、动作或指令均不应被解释为关键的或必要的,除非明确地描述成这样。而且,如本文中使用的,冠词“一”和“一个”旨在包括一个或更多个项,并且可以与“一个或更多个”互换使用。此外,如本文所使用的,术语“集合”旨在包括一个或更多个项(例如,相关项、不相关项、相关项与不相关项的组合等),并且可以与“一个或更多个”互换使用。在仅意指一个项的情况下,使用术语“一个”或类似语言。另外,如本文所使用的,术语“具有”、“有”、“含有”等旨在是开放式术语。此外,除非另有明确说明,否则词语“基于”旨在意指“至少部分地基于”。
58.已经出于说明的目的呈现了对各个方面和实施方式的描述,但是这些描述并不旨在是穷举的或限于所公开的实施方式。即使在权利要求中记载以及/或者在说明书中公开了特征的组合,这些组合并不旨在限制可能的实现方式的公开内容。实际上,可以以未在权利要求中具体记载以及/或者未在说明书中公开的方式对这些特征中的许多特征进行组合。虽然本文列出的每个从属权利要求可以直接仅从属于一个权利要求,但是可能的实现方式的公开内容包括每个从属权利要求与权利要求集合中的每个其他权利要求的组合。在不脱离所描述的实施方式的范围的情况下,许多修改和变型对本领域普通技术人员而言将是明显的。选择本文中使用的术语是为了最佳地解释实施方式的原理、实际应用或相比于市场上发现的技术的技术改进,或者为了使本领域的其他普通技术人员能够理解本文中公开的实施方式。