一种大规模意图的快速识别方法、装置和电子设备
技术领域
本发明涉及计算机信息处理领域,具体涉及一种大规模意图的快速识别方法、装置和电子设备。
背景技术
随着互联网技术的发展,对话系统在电商、智能设备等方面有着广泛的应用,越来越引起人们的关注。常见的对话系统有Siri、Echo、Bixby、微软小冰、阿里小蜜、智能音响等。意图识别是对话系统中首要且重要的任务,特别是在开放式对话场景中,受限于分类器的能力,将对话划分到几十或者几百个粗粒度意图中,比较粗的粒度使聊天机器人不能精准的捕捉到用户意图,进而影响了人机交互的效果。
现有的意图识别器所限定的意图种类大多是几十个到几本百个,基于softmax的多分类器,或者基于one-vs-other的多个二分类机器联合可以解决此类的意图识别。但当意图类别的数量达到几万甚至几十万后,基于softmax的多分类器就会失效,由于经过softmax处理后分配到每个意图的概率变得很小,没有区分性;而基于one-vs-other的多个二分类器联合的方法虽然能随着意图数量的增加进行扩展,但构造上包括万个二分类器,人力成本基本不可接受。此外,上述这两类方法都忽略了意图之间的关联信息。
因此,有必要提供一种适用于大规模意图识别的快速识别方法。
发明内容
为了解决上述问题,本发明提供了一种大规模意图的快速识别方法,其用于人机交互,包括:对历史用户的对话输入的意图类别信息进行语义向量转换;将语义向量转换后的各意图进行语义聚类;对语义聚类后的结果建立索引,所述索引用于在预设意图数据库中搜索与对话输入相对应的意图类别;实时获取当前用户的对话输入,使用所述索引进行搜索匹配;将所述对话输入的语义向量和搜索匹配结果,输入排序模型,进行排序,以确定意图识别结果。
优选地,还包括:所述索引包括建立用户ID与聚类后的意图类别的对应关系;计算语义向量相似度,基于相似度的判断,将多个意图类别聚集在一起使用一个搜索ID表示,以形成多个意图类别集合,其中,各意图类别均包括关键文本特征。
优选地,所述实时获取当前用户的对话输入,使用所述索引进行搜索匹配包括:当接收到当前用户的对话文本输入时,将对话文本和类别样本中的关键文本特征输入到向量转换模型,以得到所述对话文本的语义向量,并结合预设意图类别的语义向量,一起输入深度匹配网络模型中,以输出所述对话文本与意图类别的匹配值。
优选地,还包括:将所输出的匹配值与预设阈值进行比较;在所述匹配值比所述预设阈值高的情况下,判定当前用户的对话文本与当前意图类别相关,并判定所述对话文本与当前意图类别所在的意图类别集合的其他意图类别相关。
优选地,还包括:通过搜索匹配,召回了与当前用户的对话文本输入相关的意图类别集合。
优选地,还包括:将当前用户的对话文本的语义向量和召回的意图类别的语义向量输入所述排序模型,输出排序分值;选择排序分值最高的意图类别,作为所述对话文本的意图识别结果。
优选地,还包括:基于当前用户的对话文本的语义向量,使用所述排序模型输出排序分值的执行次数与所召回的意图类别的数量相等,且直到每一个被召回的意图类别都得到排序分值时,进行分值排序。
优选地,所述向量转换模型包括BERT模型和RoBERTa模型。
此外,本发明还提供了一种大规模意图的快速识别装置,其用于人机交互,包括:转换模块,用于对历史用户的对话输入的意图类别信息进行语义向量转换;聚类模块,用于将语义向量转换后的各意图进行语义聚类;建立模块,用于对语义聚类后的结果建立索引,所述索引用于在预设意图数据库中搜索与对话输入相对应的意图类别;搜索匹配模块,用于实时获取当前用户的对话输入,使用所述索引进行搜索匹配;确定模块,用于将所述对话输入的语义向量和搜索匹配结果,输入排序模型,进行排序,以确定意图识别结果。
优选地,还包括:所述索引包括建立用户ID与聚类后的意图类别的对应关系;计算语义向量相似度,基于相似度的判断,将多个意图类别聚集在一起使用一个搜索ID表示,以形成多个意图类别集合,其中,各意图类别均包括关键文本特征。
优选地,还包括处理模块,所述处理模块用于当接收到当前用户的对话文本输入时,将对话文本和类别样本中的关键文本特征输入到向量转换模型,以得到所述对话文本的语义向量,并结合预设意图类别的语义向量,一起输入深度匹配网络模型中,以输出所述对话文本与意图类别的匹配值。
优选地,还包括比较模块,所述比较模块用于将所输出的匹配值与预设阈值进行比较;在所述匹配值比所述预设阈值高的情况下,判定当前用户的对话文本与当前意图类别相关,并判定所述对话文本与当前意图类别所在的意图类别集合的其他意图类别相关。
优选地,还包括:通过搜索匹配,召回了与当前用户的对话文本输入相关的意图类别集合。
优选地,还包括:将当前用户的对话文本的语义向量和召回的意图类别的语义向量输入所述排序模型,输出排序分值;选择排序分值最高的意图类别,作为所述对话文本的意图识别结果。
优选地,还包括:基于当前用户的对话文本的语义向量,使用所述排序模型输出排序分值的执行次数与所召回的意图类别的数量相等,且直到每一个被召回的意图类别都得到排序分值时,进行分值排序。
优选地,所述向量转换模型包括BERT模型和RoBERTa模型。
此外,本发明还提供了一种电子设备,其中,该电子设备包括:处理器;以及,存储计算机可执行指令的存储器,所述可执行指令在被执行时使所述处理器执行本发明所述的大规模意图的快速识别方法。
此外,本发明还提供了一种计算机可读存储介质,其中,所述计算机可读存储介质存储一个或多个程序,所述一个或多个程序当被处理器执行时,实现本发明所述的大规模意图的快速识别方法。
有益效果
与现有技术相比,本发明采用聚类索引-深度匹配召回-排序的方案,解决了极大规模意图类别分类场景中,传统基于softmax的方法失效的问题,同时不需要设计数量庞大的二分类器,极大节省了人力,实现了万级别的极大规模意图识别;基于BERT预训练模型来进行语义表示,相比传统的词袋特征或者tf-idf特征,实现了信息的迁移融合,能很好地捕捉内在的语义信息;通过语义层面的意图类别聚类,不但更好地发现意图之间的关联,同时聚类后大大降低了意图类别的数量,通过所述索引实现了快速地检索,并进一步提升了意图识别效率;通过排序模型计算所有召回的意图类别,选出分值最高的作为当前对话文本输入的意图类别,由此进一步提高了用户意图识别的准确性。
附图说明
为了使本发明所解决的技术问题、采用的技术手段及取得的技术效果更加清楚,下面将参照附图详细描述本发明的具体实施例。但需声明的是,下面描述的附图仅仅是本发明本发明示例性实施例的附图,对于本领域的技术人员来讲,在不付出创造性劳动的前提下,可以根据这些附图获得其他实施例的附图。
图1是本发明的大规模意图的快速识别方法的一示例的流程图。
图2是本发明的大规模意图的快速识别方法的另一示例的流程图。
图3是本发明的大规模意图的快速识别方法的又一示例的流程图。
图4是本发明的大规模意图的快速识别装置的一示例的示意性结构框图。
图5是本发明的大规模意图的快速识别装置的另一示例的示意性结构框图。
图6是本发明的大规模意图的快速识别装置的又一示例的示意性结构框图。
图7是根据本发明的一种电子设备的示例性实施例的结构框图。
图8是根据本发明的计算机可读介质的示例性实施例的结构框图。
具体实施方式
现在将参考附图更全面地描述本发明的示例性实施例。然而,示例性实施例能够以多种形式实施,且不应被理解为本发明仅限于在此阐述的实施例。相反,提供这些示例性实施例能够使得本发明更加全面和完整,更加便于将发明构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的元件、组件或部分,因而将省略对它们的重复描述。
在符合本发明的技术构思的前提下,在某个特定的实施例中描述的特征、结构、特性或其他细节不排除可以以合适的方式结合在一个或更多其他的实施例中。
在对于具体实施例的描述中,本发明描述的特征、结构、特性或其他细节是为了使本领域的技术人员对实施例进行充分理解。但是,并不排除本领域技术人员可以实践本发明的技术方案而没有特定特征、结构、特性或其他细节的一个或更多。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
应理解,虽然本文中可能使用第一、第二、第三等表示编号的定语来描述各种器件、元件、组件或部分,但这不应受这些定语限制。这些定语乃是用以区分一者与另一者。例如,第一器件亦可称为第二器件而不偏离本发明实质的技术方案。
术语“和/或”或者“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
为了能更精准地识别用户意图,并解决极大规模意图识别问题,本发明提出了一种极大规模意图的快速识别方法,使用微调后的BERT预训练模型实现对话和意图类别的语义向量表示,并进行意图类别聚类,对聚类结果建立索引,基于该索引召回多个相关的意图类别,通过排序模型选出最相关的意图类别。本发明的方法通过语义层面的意图类别聚类,在考虑各意图之间的关联性的同时,还大大降低了意图类别的数量,通过所述索引实现了快速地检索,提升了意图识别效率,还提高了用户意图识别的准确性。
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明作进一步的详细说明。
实施例1
下面,将参照图1至图3描述本发明的大规模意图的快速识别方法的实施例。
图1是本发明的大规模意图的快速识别方法的一示例的流程图。
如图1所示,一种大规模意图的快速识别方法,该方法包括如下步骤。
步骤S101,对历史用户的对话输入的意图类别信息进行语义向量转换。
步骤S102,将语义向量转换后的各意图进行语义聚类;
步骤S103,对语义聚类后的结果建立索引,所述索引用于在预设意图数据库中搜索与对话输入相对应的意图类别;
步骤S104,实时获取当前用户的对话输入,使用所述索引进行搜索匹配;
步骤S105,将所述对话输入的语义向量和搜索匹配结果,输入排序模型,进行排序,以确定意图识别结果。
首先,在步骤S101中,对历史用户的对话输入的意图类别信息进行语义向量转换。
在本示例中,获取历史用户的用户信息、历史对话信息中的对话输入信息、与该历史对话相对应的历史业务信息等。
具体地,该对话输入信息包括意图类别信息。在本示例中,“A”为一个明星的名字,例如用户1输入“我喜欢A”,形成意图1,再例如,用户2输入“艺人A的生日?”,形成意图2。
进一步地,例如使用BERT预训练模型对所述用户输入的意图类别信息进行语义表示,以进行语义向量转换。
优选地,基于历史业务任务的相关数据,对BERT预训练模型进行微调,使用微调后的BERT预训练模型,对所述意图类别信息进行语义向量转换。
具体地,使用意图类别的类别描述信息和类别样本中的关键文本特征作为微调后的BERT模型的输入,得到意图类别的语义向量表示。由此实现信息的迁移融合,并能很好地捕捉内在的语义信息。
需要说明的是,对于语义向量转换,在其他示例中,还可以使用RoBERTa模型、DistilBERT模型、XLNet模型等。上述仅作为示例进行说明,不能理解成对本发明的限制。
进一步地,例如用户信息包括年龄、性别、地域、所在城市、星座、性格、学历、家庭结构、婚姻状况、兴趣爱好、收入、职业信息等。例如,所述历史业务信息包括申请金融业务类型、金融业务使用情况等。例如,所述历史对话信息包括对话时长、对话时间段、对话接通率、对话语气和语态、答复内容等。
接下来,在步骤S102中,将语义向量转换后的各意图进行语义聚类。
在本示例中,例如计算意图1和意图2等的语义向量相似度,基于相似度的判断,将多个意图类别聚集在一起使用一个搜索ID表示,以形成多个意图类别集合,其中,各意图类别均包括关键文本特征。
进一步地,基于现有的聚类方法,对例如极大规模的语义向量转换后的意图类别进行聚类,聚类后意图类别的规模会大大降低。通过语义层面的意图类别聚类,不但更好地发现意图之间的关联,同时聚类后大大降低了意图类别的数量。
需要说明的是,现有的聚类方法包括K-means聚类法、HAC层次凝聚聚类法等。上述仅作为示例进行说明,不能理解成对本发明的限制。
接下来,在步骤S103中,对语义聚类后的结果建立索引,所述索引用于在预设意图数据库中搜索与对话输入相对应的意图类别。
如图2所示,还包括建立预设意图数据库的步骤S201。
在步骤S201中,建立预设意图数据库,以用于识别用户的对话文本输入相对应的最精确的意图。
具体地,所述预设意图数据库包括预设的意图类别、与各意图类别相对应的多个意图、以及与各意图相对应的语义向量。
在本示例中,对语义聚类后的结果,建立索引,其中,所述索引包括建立用户ID与聚类后的意图类别的对应关系。
具体地,例如,用户1被识别的意图1和用户2被识别的意图2,经过向量相似度计算后,在向量相似度大于设定阈值时,则将意图1和意图2聚集在一起用一个索引ID表示,即聚类为意图类别1。以此类推,还包括意图类别2、3...等等,进一步对意图类别再进行聚类,形成意图类别结合,并且每个意图类别集合都对应一个索引ID。由此,通过索引能更快速地在预设意图数据库中搜索到与当前用户的对话文本输入相对应的意图类别。由此,通过所述索引实现了快速地检索,并进一步提升了意图识别效率。
进一步地,建立各用户ID与聚类后的意图的对应关系,其中,用户ID例如为用户账号、用户手机号等。
接下来,在步骤S104中,实时获取当前用户的对话输入,使用所述索引进行搜索匹配。
在本示例中,当接收到当前用户的对话文本输入时,进行搜索。进一步地,将当前用户的对话文本输入的语义向量和所搜索到的匹配结果,一起输入深度匹配网络模型中,以输出所述对话文本与意图类别的匹配值,其中,所述匹配网路模型优选使用现有的多层感知机实现。
如图3所述,还包括设定预设阈值的步骤S301。
在步骤S301中,设定预设阈值,以用于将所输出的匹配值与预设阈值进行比较,在所述匹配值比所述预设阈值高的情况下,判定当前用户的对话文本与当前意图类别相关,并判定所述对话文本与当前意图类别所在的意图类别集合的其他意图类别相关。
由此,通过所述索引能够快速地检索与当前用户的对话文本输入相对应的意图类别集合。换言之,通过搜索匹配,召回了与当前用户的对话文本输入相关的所有意图类别集合。由于经过步骤S102的语义聚类处理,所以能更快速地得到检索结果。
接下来,在步骤S105中,将所述对话输入的语义向量和搜索匹配结果,输入排序模型,进行排序,以确定意图识别结果。
在本示例中,将当前用户的对话文本的语义向量和所召回的意图类别的语义向量,一起输入所述排序模型,输出排序分值。
具体地,基于当前用户的对话文本的语义向量,使用所述排序模型输出排序分值的执行次数与所召回的意图类别的数量相等,且直到每一个被召回的意图类别都得到排序分值时,进行分值排序。
进一步地,基于分值排序的结果,选择排序分值最高的意图类别(即,选出与当前对话输入最相关的意图类别),作为所述对话文本的意图识别结果。
需要说明的是,所述排序模型由一个二分类器,优选通过在BERT上面添加sigmoid层实现,该分类器会输出判定分值(在本示例中,为排序分值)。重复执行输出排序分值的过程,一次遍历每一个被召回的意图类别,最终每个被召回的意图类别都得到一个排序分值,选择分值最高的作为当前对话文本输入的意图类别。由此,进一步提高了用户意图识别的准确性。
需要说明的是,上述仅作为示例进行说明,不能理解对本发明的限制。
上述方法的过程仅用于对本发明的说明,其中,步骤的顺序和数量没有特别的限制。此外,上述方法中的步骤还可以拆分成两个、三个,或者有些步骤也可以合并成一个步骤,根据实际示例进行调整。
与现有技术相比,本发明采用聚类索引-深度匹配召回-排序的方案,解决了极大规模意图类别分类场景中,传统基于softmax的方法失效的问题,同时不需要设计数量庞大的二分类器,极大节省了人力,实现了万级别的极大规模意图识别;基于BERT预训练模型来进行语义表示,相比传统的词袋特征或者tf-idf特征,实现了信息的迁移融合,能很好地捕捉内在的语义信息;通过语义层面的意图类别聚类,不但更好地发现意图之间的关联,同时聚类后大大降低了意图类别的数量,通过所述索引实现了快速地检索,并进一步提升了意图识别效率;通过排序模型计算所有召回的意图类别,选出分值最高的作为当前对话文本输入的意图类别,由此进一步提高了用户意图识别的准确性。
本领域技术人员可以理解,实现上述实施例的全部或部分步骤被实现为由计算机数据处理设备执行的程序(计算机程序)。在该计算机程序被执行时,可以实现本发明提供的上述方法。而且,所述的计算机程序可以存储于计算机可读存储介质中,该存储介质可以是磁盘、光盘、ROM、RAM等可读存储介质,也可以是多个存储介质组成的存储阵列,例如磁盘或磁带存储阵列。所述的存储介质不限于集中式存储,其也可以是分布式存储,例如基于云计算的云存储。
下面描述本发明的装置的实施例,该装置可以用于执行本发明的方法实施例。对于本发明装置实施例中描述的细节,应视为对于上述方法实施例的补充;对于在本发明装置实施例中未披露的细节,可以参照上述方法实施例来实现。
实施例2
参照图4、图5和图6,本发明还提供了一种大规模意图的快速识别装置400,其用于人机交互,包括:转换模块401,用于对历史用户的对话输入的意图类别信息进行语义向量转换;聚类模块402,用于将语义向量转换后的各意图进行语义聚类;建立模块403,用于对语义聚类后的结果建立索引,所述索引用于在预设意图数据库中搜索与对话输入相对应的意图类别;搜索匹配模块404,用于实时获取当前用户的对话输入,使用所述索引进行搜索匹配;确定模块405,用于将所述对话输入的语义向量和搜索匹配结果,输入排序模型,进行排序,以确定意图识别结果。
优选地,还包括:所述索引包括建立用户ID与聚类后的意图类别的对应关系;计算语义向量相似度,基于相似度的判断,将多个意图类别聚集在一起使用一个搜索ID表示,以形成多个意图类别集合,其中,各意图类别均包括关键文本特征。
如图5所示,还包括处理模块501,所述处理模块501用于当接收到当前用户的对话文本输入时,将对话文本和类别样本中的关键文本特征输入到向量转换模型,以得到所述对话文本的语义向量,并结合预设意图类别的语义向量,一起输入深度匹配网络模型中,以输出所述对话文本与意图类别的匹配值。
如图6所示,还包括比较模块601,所述比较模块601用于将所输出的匹配值与预设阈值进行比较;在所述匹配值比所述预设阈值高的情况下,判定当前用户的对话文本与当前意图类别相关,并判定所述对话文本与当前意图类别所在的意图类别集合的其他意图类别相关。
优选地,还包括:通过搜索匹配,召回了与当前用户的对话文本输入相关的意图类别集合。
优选地,还包括:将当前用户的对话文本的语义向量和召回的意图类别的语义向量输入所述排序模型,输出排序分值;选择排序分值最高的意图类别,作为所述对话文本的意图识别结果。
优选地,还包括:基于当前用户的对话文本的语义向量,使用所述排序模型输出排序分值的执行次数与所召回的意图类别的数量相等,且直到每一个被召回的意图类别都得到排序分值时,进行分值排序。
优选地,所述向量转换模型包括BERT模型和RoBERTa模型。
需要说明的是,在实施例2中,省略了与实施例1相同的部分的说明。
与现有技术相比,本发明采用聚类索引-深度匹配召回-排序的方案,解决了极大规模意图类别分类场景中,传统基于softmax的方法失效的问题,同时不需要设计数量庞大的二分类器,极大节省了人力,实现了万级别的极大规模意图识别;基于BERT预训练模型来进行语义表示,相比传统的词袋特征或者tf-idf特征,实现了信息的迁移融合,能很好地捕捉内在的语义信息;通过语义层面的意图类别聚类,不但更好地发现意图之间的关联,同时聚类后大大降低了意图类别的数量,通过所述索引实现了快速地检索,并进一步提升了意图识别效率;通过排序模型计算所有召回的意图类别,选出分值最高的作为当前对话文本输入的意图类别,由此进一步提高了用户意图识别的准确性。
本领域技术人员可以理解,上述装置实施例中的各模块可以按照描述分布于装置中,也可以进行相应变化,分布于不同于上述实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
实施例3
下面描述本发明的电子设备实施例,该电子设备可以视为对于上述本发明的方法和装置实施例的具体实体实施方式。对于本发明电子设备实施例中描述的细节,应视为对于上述方法或装置实施例的补充;对于在本发明电子设备实施例中未披露的细节,可以参照上述方法或装置实施例来实现。
图7是根据本发明的一种电子设备的示例性实施例的结构框图。下面将参照图7来描述根据本发明的电子设备200。图7显示的电子设备200仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,所述存储单元存储有程序代码,所述程序代码可以被所述处理单元210执行,使得所述处理单元210执行本说明书的上述电子设备处理方法部分中描述的根据本发明各种示例性实施方式的步骤。例如,所述处理单元210可以执行如图2所示的步骤。
所述存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
所述存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,本发明描述的示例性实施例可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。因此,根据本发明实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个计算机可读的存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本发明的上述方法。当所述计算机程序被一个数据处理设备执行时,使得该计算机可读介质能够实现本发明的上述方法。
如图8所示,所述计算机程序可以存储于一个或多个计算机可读介质上。计算机可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
所述计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本发明操作的程序代码,所述程序设计语言包括面向对象的程序设计语言-诸如Java、C++等,还包括常规的过程式程序设计语言-诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
综上所述,本发明可以以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)等通用数据处理设备来实现根据本发明实施例中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,应理解的是,本发明不与任何特定计算机、虚拟装置或者电子设备固有相关,各种通用装置也可以实现本发明。以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。