一种故障日志分类方法、系统、设备以及介质转让专利

申请号 : CN202011231058.9

文献号 : CN112445912A

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 孙雅伦张芳

申请人 : 苏州浪潮智能科技有限公司

摘要 :

本发明公开了一种故障日志分类方法,包括以下步骤:接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定待分类的故障日志对应的若干个分割位置;根据对应的若干个分割位置对待分类的故障日志进行分割以得到多个词组;根据语料库确定每一个词组的权重并根据权重筛选出若干个词组;利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据相似度对待分类的故障日志分类。本发明还公开了一种系统、计算机设备以及可读存储介质。本发明提出方案通过将英文日志处理成词组、短语的形式,大大降低后续处理的词汇量。

权利要求 :

1.一种故障日志分类方法,其特征在于,包括以下步骤:接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;

根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;

根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;

利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。

2.如权利要求1所述的方法,其特征在于,还包括:

获取多个历史故障日志并从每一个所述历史故障日志中筛选出多个词组;

基于所述每一个历史故障日志的多个词组构成语料库。

3.如权利要求2所述的方法,其特征在于,还包括:

计算所述语料库中的每一个词组的词频和逆向词频;

将词频大于阈值的词组更新到废词库,并根据词频和逆向词频计算词频不大于阈值的词组的权重。

4.如权利要求3所述的方法,其特征在于,接收待分类的故障日志,进一步包括:根据所述废词库将所述待分类的故障日志中相应的词组删除。

5.如权利要求1所述的方法,其特征在于,根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置,进一步包括:根据所述包含最多词汇的短语的词汇数量确定分割步长M;

判断所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;

响应于能够匹配,将所述待分类的故障日志的前M个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。

6.如权利要求5所述的方法,其特征在于,还包括:

响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-1个词汇组成的词组是否能够与所述语料库中的词组匹配;

响应于能够匹配,将所述待分类的故障日志的前M-1个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;

响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-N个词汇组成的词组是否能够与所述语料库中的词组匹配,其中,N为迭代次数;

响应于能够匹配,将所述待分类的故障日志的前M-N个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。

7.如权利要求1所述的方法,其特征在于,利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进一步包括:根据若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组得到所述每一个已分类的故障日志的特征向量和所述待分类的故障日志的特征向量;

计算所述每一个已分类的故障日志对应的特征向量与所述待分类的故障日志对应的特征向量直接的相似度。

8.一种故障日志分类系统,其特征在于,包括:

接收模块,所述接收模块配置为接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;

分割模块,所述分割模块配置为根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;

筛选模块,所述筛选模块配置为根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;

计算模块,所述计算模块配置为利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。

9.一种计算机设备,包括:

至少一个处理器;以及

存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如权利要求1-7任意一项所述的方法的步骤。

10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时执行如权利要求1-7任意一项所述的方法的步骤。

说明书 :

一种故障日志分类方法、系统、设备以及介质

技术领域

[0001] 本发明日志处理领域,具体涉及一种故障日志分类方法、系统、设备以及存储介质。

背景技术

[0002] 在服务器监控技术中,通过服务器日常运行日志分析预测定位故障是非常常见并且有效的方案,日志文件提供了海量的信息,由此应运而生众多算法,例如通过分析日志文本,提取文本特征,建立文本特征模型,从而对文本进行分类是目前比较常用的技术方案。但是由于服务器日志数据是英文,英文文本中每个词汇都有空格,使用文本特征提取的方案提取每一个关键词汇,会导致数据量过大,特征向量维度过高,计算量大。

发明内容

[0003] 有鉴于此,为了克服上述问题的至少一个方面,本发明实施例提出一种故障日志分类方法,包括以下步骤:
[0004] 接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;
[0005] 根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;
[0006] 根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;
[0007] 利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。
[0008] 在一些实施例中,还包括:
[0009] 获取多个历史故障日志并从每一个所述历史故障日志中筛选出多个词组;
[0010] 基于所述每一个历史故障日志的多个词组构成语料库。
[0011] 在一些实施例中,还包括:
[0012] 计算所述语料库中的每一个词组的词频和逆向词频;
[0013] 将词频大于阈值的词组更新到废词库,并根据词频和逆向词频计算词频不大于阈值的词组的权重。
[0014] 在一些实施例中,接收待分类的故障日志,进一步包括:
[0015] 根据所述废词库将所述待分类的故障日志中相应的词组删除。
[0016] 在一些实施例中,根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置,进一步包括:
[0017] 根据所述包含最多词汇的短语的词汇数量确定分割步长M;
[0018] 判断所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0019] 响应于能够匹配,将所述待分类的故障日志的前M个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。
[0020] 在一些实施例中,还包括:
[0021] 响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-1个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0022] 响应于能够匹配,将所述待分类的故障日志的前M-1个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0023] 响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-N个词汇组成的词组是否能够与所述语料库中的词组匹配,其中,N为迭代次数;
[0024] 响应于能够匹配,将所述待分类的故障日志的前M-N个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。
[0025] 在一些实施例中,利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进一步包括:
[0026] 根据若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组得到所述每一个已分类的故障日志的特征向量和所述待分类的故障日志的特征向量;
[0027] 计算所述每一个已分类的故障日志对应的特征向量与所述待分类的故障日志对应的特征向量直接的相似度。
[0028] 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种故障日志分类系统,包括:
[0029] 接收模块,所述接收模块配置为接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;
[0030] 分割模块,所述分割模块配置为根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;
[0031] 筛选模块,所述筛选模块配置为根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;
[0032] 计算模块,所述计算模块配置为利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。
[0033] 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机设备,包括:
[0034] 至少一个处理器;以及
[0035] 存储器,所述存储器存储有可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时执行如上所述的任一种故障日志分类方法的步骤。
[0036] 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时执行如上所述的任一种故障日志分类方法的步骤。
[0037] 本发明具有以下有益技术效果之一:本发明提出方案通过将英文日志处理成词组、短语的形式,大大降低后续处理的词汇量,降低了特征词组的维度,从而降低了故障日志分类的计算量。

附图说明

[0038] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的实施例。
[0039] 图1为本发明的实施例提供的故障日志分类方法的流程示意图;
[0040] 图2为本发明的实施例提供的故障日志分类系统的结构示意图;
[0041] 图3为本发明的实施例提供的计算机设备的结构示意图;
[0042] 图4为本发明的实施例提供的计算机可读存储介质的结构示意图。

具体实施方式

[0043] 为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
[0044] 需要说明的是,本发明实施例中所有使用“第一”和“第二”的表述均是为了区分两个相同名称非相同的实体或者非相同的参量,可见“第一”“第二”仅为了表述的方便,不应理解为对本发明实施例的限定,后续实施例对此不再一一说明。
[0045] 根据本发明的一个方面,本发明的实施例提出一种故障日志分类方法,如图1所示,其可以包括步骤:
[0046] S1,接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;
[0047] S2,根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;
[0048] S3,根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;
[0049] S4,利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。
[0050] 本发明提出方案通过将英文日志处理成词组、短语的形式,大大降低后续处理的词汇量,降低了特征词组的维度,从而降低了故障日志分类的计算量。
[0051] 在一些实施例中,还包括:
[0052] 获取多个历史故障日志并从每一个所述历史故障日志中筛选出多个词组;
[0053] 基于所述每一个历史故障日志的多个词组构成语料库。
[0054] 具体的,语料库可以通过用户对日志中有意义的词组或短语进行汇总得到,该语料库可以假设“充分大”,其包含了所有错误日志文本中的词组、短语集合。
[0055] 在一些实施例中,还包括:
[0056] 计算所述语料库中的每一个词组的词频和逆向词频;
[0057] 将词频大于阈值的词组更新到废词库,并根据词频和逆向词频计算词频不大于阈值的词组的权重。
[0058] 具体的,可以利用TFIDF算法计算词频和逆向词频,其计算公式可以如下:
[0059] 词频计算公式:某词汇出现次数与文档总词数相比。
[0060]
[0061] 逆向词频计算公式如下:
[0062]
[0063] 其中,N代表语料库文本的总数,而N(x)代表语料库中包含词x的文本总数。
[0064] 通过计算语料库中所有词组的逆向词频,词频过高的意味该词组对于文本分类提供的信息量不大,根据词频高低更新废词库,即将词频高于阈值的词组更新到废词库中。剩余的词频不大于阈值的词组的权重可以通过词频和逆向词频相乘得到。然后利用权重和词组得到词袋模型,该模型是一张二维表,行代表语料库包含的所有词组、短语,列代表语料库的单位日志,词袋模型中的单个元素是某个词组、短语对该日志的权重。
[0065] 在一些实施例中,无论是废词库还是语料库都是可以更新的,例如当利用多个历史故障日志得到废词库和语料库后,当接收到的新的故障日志后,可以利用多个新的故障日志对废词库和语料库进行更新。
[0066] 在一些实施例中,接收待分类的故障日志,进一步包括:
[0067] 根据所述废词库将所述待分类的故障日志中相应的词组删除。
[0068] 具体的,当接收到日志数据包后,可以按照服务器和设备模块分类(BIOS模块、BMC模块),预读日志数据,处理日志文本内容:删除符号、特殊字符等无意义字符,还原词汇的时态变化得到词汇的基本形式,拓展缩略语,去除停用词,提取词根,例如单词leave,leafed,leafs和leafing,统一各模块日志格式。并根据废词库中的词组将某些多次重复出现,但是提供的信息量不足的词组删除,这样在特征提取之前将其删除,能够减少数据处理量。
[0069] 在一些实施例中,用户可以在系统设置日志上报参数,管理端的数据收集模块master向各个服务器的slave下发命令,slave上报错误日志到管理端。slave是运行在被管理的服务器主机中的软件,主动上报含有错误信息的日志数据,slave有过滤的功能,筛除正常运行日志,减少后续处理数据量。用户通过交互页面对slave上报功能进行设置:是否立即上报,上报时间周期,上报日志包含的模块,上报日志的等级,例如设置slave每日零点上报BIOS模块、BMC模块的错误级别及以上的日志。第二部分是运行在服务器管理端的master,它下发命令给slave,接收slave上报的日志数据,并将数据打包返回系统。
[0070] 在一些实施例中,根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置,进一步包括:
[0071] 根据所述包含最多词汇的短语的词汇数量确定分割步长M;
[0072] 判断所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0073] 响应于能够匹配,将所述待分类的故障日志的前M个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。
[0074] 在一些实施例中,还包括:
[0075] 响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-1个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0076] 响应于能够匹配,将所述待分类的故障日志的前M-1个词汇切割后,返回判断切割后的所述待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配;
[0077] 响应于不能够匹配,判断所述待分类的故障日志的当前的第一个词汇与第M-N个词汇组成的词组是否能够与所述语料库中的词组匹配,其中,N为迭代次数;
[0078] 响应于能够匹配,将所述待分类的故障日志的前M-N个词汇切割后,返回判断所述切割后的待分类的故障日志的当前的第一个词汇与第M个词汇组成的词组是否能够与所述语料库中的词组匹配。
[0079] 具体的,语料库中的包含最多词汇的词组的词汇数为M,对于日志文本数据,可以用贪心的思想进行切割:a.首先切分“当前位置”之后的M个词汇作为匹配项。b.若匹配成功,则将“当前位置”跳转到切分位置,顺序匹配剩余文本。c.若匹配失败,切分“当前位置”之后的M-1个词汇作为匹配项。d.匹配成功,执行b步骤,匹配失败,执行c步骤,直至匹配完成所有文本。e.输出若干词组组成的文本。
[0080] 例如,待分类的故障日志为a b c d e f g,M为3,则第一次分割位置在c和d之间,然后判断a b c是否能与语料库中的词组匹配,如果匹配则将d作为当前的第一次词汇,第二次分割位置位f和g之间,然后判断d e f是否能与语料库中的词组匹配,若不匹配,则判断d e是否能与语料库中的词组匹配,若能匹配,则再次分割后剩余的文本为f g,若不能匹配则判断d否能与语料库中的词组匹配,若能匹配,则再次分割后剩余的文本为e f g。
[0081] 需要说明的是,语料库中的每一个词组至少包含一个词汇,并且若语料库中的词组无法与新接收到的故障日志中的所有词汇或词组匹配,则需要根据该接收到新的故障日志对预料库进行更新。
[0082] 在一些实施例中,利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进一步包括:
[0083] 根据若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组得到所述每一个已分类的故障日志的特征向量和所述待分类的故障日志的特征向量;
[0084] 计算所述每一个已分类的故障日志对应的特征向量与所述待分类的故障日志对应的特征向量直接的相似度。
[0085] 具体的,每一个已分类的故障日志均对应一个词袋模型,包括了所有的词组对应的权重,然后选择权重最大的若干项组成日志数据的关键词组。当从待分类的故障日志筛选出关键词组后,已分类的故障日志对应的所有关键词组和待分类的故障日志对应的关键词组去除重复项后,将剩余的所有关键词组t1,t2,……ti看成n维坐标系,然后将每一个日志表示为一个n维空间的一个向量,该向量数据结构表示为:{Di:[w1,w2,……wi]}。然后在计算向量之间的相似度,以对待分类的故障日志进行分类。
[0086] 例如,待分类的故障日志的关键词组为a、b、c、d、e,已分类的日志的关键词组分别为a、b、c,a、c、f,c、e、g,这样,去除重复项后得到的所有关键词组为a、b、c、d、e、f、g,这样,待分类的故障日志对应的向量为(1,1,1,1,1,0,0),已分类的日志对应的向量为(1,1,1,0,0,0,0),(1,0,1,0,0,1,0),(0,0,1,0,1,0,1),也即向量的维度与去除重复项后得到的所有关键词组相同,若日志包括对应的关键词组,则向量中对应的元素值为1,否则为0。需要说明的是,所有的向量相同位置上的元素所对应的特征值相同。
[0087] 本发明提出方案通过将英文日志处理成词组、短语的形式,大大降低了语料库内元素数量,从而简化词袋模型,减少日志特征向量的维度,从而简化词袋模型,减少日志特征向量的维度。
[0088] 基于同一发明构思,根据本发明的另一个方面,本发明的实施例还提供了一种故障日志分类系统400,如图2所示,包括:
[0089] 接收模块401,所述接收模块401配置为接收待分类的故障日志,并根据预设的语料库中的包含最多词汇的短语确定所述待分类的故障日志对应的若干个分割位置;
[0090] 分割模块402,所述分割模块402配置为根据对应的所述若干个分割位置对所述待分类的故障日志进行分割以得到多个词组;
[0091] 筛选模块403,所述筛选模块403配置为根据所述语料库确定每一个词组的权重并根据权重筛选出若干个词组;
[0092] 计算模块404,所述计算模块404配置为利用若干个已分类的故障日志根据权重筛选出的若干个词组和待分类的故障日志根据权重筛选出的若干个词组计算所述待分类的故障日志与每一个已分类的故障日志之间的相似度,进而根据所述相似度对所述待分类的故障日志分类。
[0093] 基于同一发明构思,根据本发明的另一个方面,如图3所示,本发明的实施例还提供了一种计算机设备501,包括:
[0094] 至少一个处理器520;以及
[0095] 存储器510,存储器510存储有可在处理器上运行的计算机程序511,处理器520执行程序时执行如上的任一种故障日志分类方法的步骤。
[0096] 基于同一发明构思,根据本发明的另一个方面,如图4所示,本发明的实施例还提供了一种计算机可读存储介质601,计算机可读存储介质601存储有计算机程序指令610,计算机程序指令610被处理器执行时执行如上的任一种故障日志分类方法的步骤。
[0097] 最后需要说明的是,本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关硬件来完成,的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
[0098] 此外,应该明白的是,本文的计算机可读存储介质(例如,存储器)可以是易失性存储器或非易失性存储器,或者可以包括易失性存储器和非易失性存储器两者。
[0099] 本领域技术人员还将明白的是,结合这里的公开所描述的各种示例性逻辑块、模块、电路和算法步骤可以被实现为电子硬件、计算机软件或两者的组合。为了清楚地说明硬件和软件的这种可互换性,已经就各种示意性组件、方块、模块、电路和步骤的功能对其进行了一般性的描述。这种功能是被实现为软件还是被实现为硬件取决于具体应用以及施加给整个系统的设计约束。本领域技术人员可以针对每种具体应用以各种方式来实现的功能,但是这种实现决定不应被解释为导致脱离本发明实施例公开的范围。
[0100] 以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
[0101] 应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
[0102] 上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
[0103] 本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0104] 所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。