具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在此本申请说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本申请。如在本申请说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。
还应当进一步理解,在本申请说明书和所附权利要求书中使用的术语“和/ 或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
请参阅图1和图2,图1为本申请实施例提供的基于文本分类识别用户意图的方法的应用场景示意图;图2为本申请实施例提供的基于文本分类识别用户意图的方法的流程示意图,该基于文本分类识别用户意图的方法应用于服务器中,该方法通过安装于服务器中的应用软件进行执行。
如图2所示,该方法包括步骤S101-S108。
S101、获取数据集,基于文本分类模型对数据集进行文本分类,得到第一样本集和第二样本集。
其中,数据集为大规模数据集。第一样本集为符合长尾分布的多个文本类的样本集。即该第一样本集中是指长尾标注样本的集合。第二样本集为未被文本分类模型的训练集覆盖的样本集。
文本分类符合一个长尾分布,可以分为主要类A、主要类B、未知类以及其他类。softmax based分类模型可用于解决样本比较多的问题。可按照业务上出现问题的频度,分类空间预留其他方便迭代。
本申请中,文本分类模型对应一个文本标签体系,在该文本标签体系中的各标签分别与各种类别的文本对应。本申请中,文本标签体系可是针对多分类问题、多类别问题或者层级分类,本申请不对此作限定。此外,文本标签体系以用户情感和用户意图为例,其他维度的标签可参考本申请中的各实施例,均不做赘述。
本申请中,为提高文本分类模型的覆盖全面性,还可以采用一种检测未知意图的两阶段方法,去从数据集中识别从未出现在文本分类模型的训练集中的未知(或者新颖)用户意图,即对数据集进行具有保证金损失的深度未知意图检测。其中,识别从未出现在培训集中的未知(新颖)用户意图是对话系统中一项具有挑战性的任务。具体来说,可采用下述方式实现对第二样本集的提取:
a、使用双向长短期内存(Bi-LSTM)网络,以边距损耗作为特征提取器,从数据集中提取第一文本特征。
b、在保证金损失方面,可以通过强制网络最大化类间方差和最小化类内方差来学习该第一文本特征中具有歧视性的深度特征,并将深度特征向量化为特征向量。
c、将特征向量馈送至基于密度的新颖性检测算法,以检测未知意图。
一些实施方式中,基于密度的新颖性检测算法可采用局部异常值因子(LOF)。
在本申请中,还可以确定验证集和评价方法。由于文本分类符合一个长尾分布,常见类别的识别能力其实一般比较ok,长尾识别的稀烂,如果单纯看准确度,当前文本分类模型对应着指标acc很高,指标macro-f1很低。具体如下:
a、确定各类别错分的代价
在分类标签体系中,当类别较细或者层级标签时,如果在一颗子树上的标签,犯错的代价并不高。而对于完全截然相反的类别,犯错的代价就特别大。因此,为了降低犯错成本,本申请还可以基于惩罚矩阵的方法构建细粒度的惩罚代价。
b、基于第二样本集进行采样,得到第一验证集
考虑到第二样本集的真实标签分布可能过于不均衡,可以对第二样本集进行掐头补尾,这样对基于第二样本集采样得到的第一验证集的评价往往更有区分度。
c、对文本分类模型进行语义压测,以评估文本分类模型的各项指标是否达到性能要求,性能的稳定性、以及对文本分类模型中的模型参数进行调优。
一些实施方式中,可对该第一验证集进行多种数据变换,得到第二验证集,例如变型、扩宽等方式增加验证集的输入个数,然后将第一验证集和第二验证集均输入文本分类模型中进行文本分类。或者,另一些实施方式中,可从第一验证集中确定未纠错的目标文本,然后将目标文本输入文本分类模型中进行文本分类,以对文本分类模型进行训练。
在本申请的一些实施方式中,针对基于对抗性重编程的攻击场景(攻击场景会使得文本分类模型的分类出现预测错误),可采用对抗性攻击(adversrial attack)攻击该文本分类模型,即文本分类网络生成对抗样本(adversarial examples),基于该对抗样本攻击该文本分类模型中的至少一个神经网络,以实现基于对抗样本对文本分类模型的训练,从而实现与文本分类模型之间的交互。具体来说,可基于ATNs最小化联合损失函数生成对抗样本,联合损失函数包括两个部分,第一部分使对抗样本与原第一验证集保持相似,第二部分使对抗样本被误分类。
其中,对抗样本一般是为了预防攻击者通过对模型的输入进行微小的修改,从而导致文本分类模型的预测产生偏差。
大多数的对抗性攻击主要由无目标攻击(untargeted attacks)和有目标攻击(targeted attacks)组成。无目标攻击旨在降低模型的性能,但不一定需要产生一个特定的输出;而有目标攻击旨在对模型设计一个对抗性干扰的输入,从而产生一个特定的输出。
例如,攻击场景可包括:从公共服务中窃取计算资源,或将AI驱动的助理改造成间谍机器人或垃圾邮件机器人,对一个分类器的攻击可能是为了针对每张图像得到特定的输出类别,或者,对一个强化学习智能体的攻击可能是为了诱导该智能体进入一个特定的状态。例如,攻击者可能通过一张贴纸(一个小的扰动)就让无人驾驶汽车对停车标志产生反应,或者通过精巧地修改损害情况的照片(一个小的扰动)导致保险公司的损失模型高估了事故的赔偿值等场景。
考虑到这些攻击场景,为了抵抗这种对抗性攻击(adversrial attacks),本申请通过生成对抗样本,即在不需要攻击者计算特定期望输出的情况下,诱导文本分类模型执行攻击者选定的一个对抗性任务(即对抗性编程),即可将文本分类模型的功能从ImageNet分类改变成:对图像中的方块进行计数;对 MNIST的数字进行分类,对CIFAR-10图像进行分类。这样就可以提高训练好的和未训练的文本分类模型对对抗性重编程的易感性。
S102、从第二样本集中提取第一文本特征,分析第一文本特征的类别区分度。
其中,第一文本特征包括未被识别、新颖意图等文本特征。
类别区分度是指用于可被识别出至少一个类别的置信度。
一些实施方式中,可采用n-gram算法从所述第二样本集中提取第一文本特征,本申请实施例不对提取第一文本特征所采用的算法作限定。
S103、确定第一文本特征中符合类别区分条件的多个目标类别,获取各目标类别对应的预设类别区分度阈值。
其中,类别区分条件是指可被识别出至少一个类别的识别条件,具体可从A、 B、C等类别参数中的至少一种类别参数来判断是否满足该类别区分条件。例如,以类别参数A来判断时,若第一文本特征中的特征a的类别参数A高于预设类别区分度阈值,则可确定该特征a所表征的类别a可被区分出来,即该第一文本特征中可识别出类别a。
预设类别区分度阈值是指用于衡量一个类别可悲识别出的置信度的下限值。
S104、将所述第一文本特征输入文本分类模型,以对文本分类模型进行训练更新,并生成对应的分类结果。
其中,分类结果是与第一文本特征对应的分类结果,由于第一文本特征是从未被文本分类模型的训练集覆盖的第二样本集中提取得到,因此该分类结果为可控。
S105、分别将各类别的特征的类别参数值与对应的预设类别区分度阈值进行比较,将分类结果中类别参数值高于对应预设类别区分阈值的特征所对应的类别作为目标类别。
其中,目标类别是指对文本分类模型中已有类别的补丁或更新。
S106、分别为每类目标类别设置对应的标签,以更新文本标签体系。
其中,为每类目标类别设置的标签可为用户情感或用户意图。例如,某个目标类别的文本特征输入文本分类模型后,当识别出其目标类别后,就可以为其贴上一个褒义”或者“贬义”的标签。
S107、根据上述目标类别的数量调整补丁规则数量。
其中,补丁规则数量是指当前待被更新至文本分类模型的目标类别的数量。由于目标类别是基于预设类别区分阈值筛选得到,因此,可以通过调整各类别参数的预设类别区分阈值的大小,就可以界定成为目标类别的门槛,进而能够动态调整补丁规则数量。相较于现有技术中只能通过人工创建补丁规则而言,本申请能够自动的筛选出合适的目标类别更新到补丁规则中,还能通过动态的调整各类别参数的预设类别区分阈值的大小来动态调整补丁规则数量。由此可见,本申请能够自动化的更新补丁规则,以提高文本分类模型的样本覆盖面,即便数据集中的第二样本集的数据量很大,也能自动的进行目标类别的识别操作,因此,本申请无需通过人工创建补丁规则来来对文本分类模型进行补丁更新,整体效率高且更新的补丁的准确性也得到保证,并且能够通过不断的训练学习去逐步完善文本分类模型对样本的覆盖类别。
下面分别介绍检测新类别、选择合适的文本分类模型、以及检测未知或新颖意图。
一、检测新类别
一些实施方式中,还可以采用度量分布差异方法检测新类别,即从海量数据集中找出与已知类别不相似(分布差异较大)的样本,度量分布差异方法可包括对抗验证(adversrial validation)、margin softmax等,本申请不对度量分布差异方法作限定。
例如,可Adversarial Validation构建一个文本分类模型,目的是将该文本分类模型用于分辨训练集和测试集的来源,假设使用AUC作为分类精度评价函数。
如果分类模型无法分辨样本(AUC接近0.5),则说明训练集和测试集数据分布比较一致;如果分类模型可以很好分辨样本(AUC接近1),则说明训练集和测试集数据分布不太一致。
在使用Adversarial Validation方法检测新类别时,可将训练集和测试集分别打上不同的标签然后进行训练,使用Adversarial Validation可验证训练集和测试集分布是否存在差异。在训练集和测试集分布一致的情况中,构建模型的验证 AUC一般接近0.5,即文本分类模型无法判别样本来源;在训练集和测试集分布不一致的情况中,构建模型得到的AUC一般接近1,也就是选择出与测试集比较相似的样本并构建为验证集,即文本分类模型可以分辨样本的来源。
一些实施方式中,还可采用损失函数(:additive angularmargin loss,arcface)的加强类内紧度和类间差异来度量出现的类别和未出现的类别,以防止训练集的组合先验带来的偏差,就可以确认cv不稳的来源就步入正轨,进而基于这些 cv构造了未见类的验证集(不同分布)单独验证。
二、选择合适的文本分类模型
一些实施方式中,考虑到作为文本的自然语言文本在各个层次上广泛存在的各种各样的歧义性或多义性(ambiguity)和演化现象,不同神经网络模型的性能存在差异,为了提高分类处理能力和效率,还可以先权衡分类任务的各种约束条件,先确定分类任务的难度,再基于难度权衡分类时效,并根据分类时效和难度选择合适的分类模型。下面进行介绍:
首先,可从下面输入层面、标签层面、时间演化和上下文四个维度进行分类:
输入层面:短文本->长文本和超长文本
标签层面:复杂语义识别,如阴阳怪气
时间演化:吉普VS 吉普,开车VS开车
上下文:美食论坛苹果小米黑莓VS手机论坛苹果小米黑莓
本申请实施例中,文本分类的从左至右,由高至低的难度顺序为:主题分类-情感分类-意图识别-细粒度情感识别-复杂语义识别(如阴阳怪气)
下面以数据量、非线性和类间距离进行距离:
数据量:one/zero shot VS海量
非线性:阴阳怪气VS垃圾邮件
类间距离:细粒度的情感分类VS正负情感倾向
其次,可以预先部署多种文本分类模型,然后确定先文本的难度,再基于文本分类的难度来选择合适的文本分类模型,以提高文本分类准确率和效率。或者,当一个数据集中存在多种难度的文本时,可以先确定各类文本的难度,再基于文本分类的难度来选择对应的文本分类模型,并行对各文本分别进行分类处理,以提高文本分类效率和准确率。
一些实施方式中,结合文本的难度选择合适的文本分类算法用于文本分类,具体如下:
Fasttext(垃圾邮件/主题分类):特别简单的任务,要求速度;
TextCNN(主题分类/领域识别):比较简单的任务,类别可能比较多,要求速度;
LSTM(情感分类/意图识别):稍微复杂的任务;
Bert(细粒度情感/阴阳怪气/小样本识别):难任务。
三、检测未知意图
本申请中,为提高文本分类模型的覆盖全面性,还可以采用一种检测未知意图的两阶段方式,去从数据集中识别从未出现在文本分类模型的训练集中的未知(或者新颖)用户意图,即对数据集进行具有保证金损失的深度未知意图检测。其中,识别从未出现在培训集中的未知(新颖)用户意图是对话系统中一项具有挑战性的任务。具体来说,可采用下述方式实现:
a、使用双向长短期内存(Bi-LSTM)网络,以边距损耗作为特征提取器,从数据集中提取第一文本特征。
b、在保证金损失方面,可以通过强制网络最大化类间方差和最小化类内方差来学习该第一文本特征中具有歧视性的深度特征,并将深度特征向量化为特征向量。
c、将特征向量馈送至基于密度的新颖性检测算法,以检测未知意图。
基于密度的新颖性检测算法可采用局部异常值因子(LOF)。
S108、接收用户输入的待识别文本,基于文本分类模型识别用户意图的目标类别和待识别文本中的关键信息,根据目标类别和关键信息确定向用户推荐的目标服务,并向终端发送与目标服务对应的数据。
本申请实施例中,先从数据集中筛选出未被识别的第二样本集,专门针对该第二样本集识别出各种目标类别。由于目标类别是基于预设类别区分阈值筛选得到,因此,可以通过调整各类别参数的预设类别区分阈值的大小,就可以界定成为目标类别的门槛,进而能够动态调整补丁规则数量。相较于现有技术中只能通过人工创建补丁规则而言,本申请能够自动的筛选出合适的目标类别更新到补丁规则中,还能通过动态的调整各类别参数的预设类别区分阈值的大小来动态调整补丁规则数量。由此可见,本申请能够自动化的更新补丁规则,以提高文本分类模型的样本覆盖面,即便数据集中的第二样本集的数据量很大,也能自动的进行目标类别的识别操作,因此,本申请无需通过人工创建补丁规则来来对文本分类模型进行补丁更新,整体效率高且更新的补丁的准确性也得到保证,并且能够通过不断的训练学习去逐步完善文本分类模型对样本的覆盖类别。
具体来说,由于自动分析文本分类模型的长尾场景和未覆盖样本集,且使用n-gram算法对未覆盖样本集进行文本特征提取,分析特征的类别区分度。一方面中,该方法能够大幅度提高生产效率,特别是对大规模文本分类的创建文本分类模型补丁规则任务,以往需要N个人或者N天的工作量,本申请能够在很短时间内(例如10分钟内)完成;另一方面中,由于生成结果为可控,所以支持设置类别区分度阈值,调整生成的补丁规则数量。
本申请实施例还提供一种用户意图识别装置,该用户意图识别装置用于执行前述基于文本分类识别用户意图的方法的任一实施例。具体地,请参阅图3,图3是本申请实施例提供的用户意图识别装置的示意性框图。该用户意图识别装置20可以配置于服务器中。
如图3所示,用户意图识别装置30包括:输入输出模块301和处理模块303。
一些实施方式中,所述输入输出模块301可用于获取数据集,基于文本分类模型对数据集进行文本分类,得到第一样本集和第二样本集;其中,第一样本集为符合长尾分布的多个文本类的样本集,所述第二样本集为未被所述文本分类模型的训练集覆盖的样本集;
所述处理模块302可用于从所述第二样本集中提取第一文本特征,分析所述第一文本特征的类别区分度;确定所述第一文本特征中符合类别区分条件的多个目标类别,获取各目标类别对应的预设类别区分度阈值;所述类别区分条件是指可被识别出至少一个类别的识别条件;
所述输入输出模块301还用于将所述第一文本特征输入所述文本分类模型,以对所述文本分类模型进行训练更新,并生成对应的分类结果;
所述处理模块302还用于分别将各类别的特征的类别参数值与对应的预设类别区分度阈值进行比较,将分类结果中类别参数值高于对应预设类别区分阈值的特征所对应的类别作为目标类别;所述目标类别是指对所述文本分类模型中已有类别的补丁或更新;分别为每类目标类别设置对应的标签,以更新所述文本分类模型对应的文本标签体系;所述标签包括用户情感或用户意图;
所述处理模块302还用于根据所述目标类别的数量调整补丁规则数量;所述补丁规则数量是指当前待被更新至所述文本分类模型的目标类别的数量;通过所述输入输出模块301接收用户输入的待识别文本,基于文本分类模型识别用户意图的目标类别和所述待识别文本中的关键信息,根据所述目标类别和所述关键信息确定向用户推荐的目标服务,并向终端发送与所述目标服务对应的数据。
在一实施例中,所述处理模块302具体用于:
使用双向长短期内存网络,以边距损耗作为特征提取器,从所述数据集中提取所述第一文本特征。
通过最大化类间方差和最小化类内方差学习所述第一文本特征中符合敏感性的深度特征,并将所述深度特征向量化为特征向量。
基于密度的新颖性检测算法对所述特征向量进行保证金损失检测,以检测出所述特征向量表征的未知意图;
将符合未知意图的样本分类到同一个样本集,以得到所述第二样本集。
在一实施例中,所述处理模块302还用于:
确定各类别文本被错分的代价;
基于第二样本集进行采样,得到第一验证集;
对文本分类模型进行语义压测,以评估所述文本分类模型的至少一项指标是否达到预设性能条件、以及对所述文本分类模型中的模型参数进行调优。
在一实施例中,所述数据集包括训练集和测试集,所述处理模块302还用于:
将所述训练集和所述测试集分别设置不同的标签,并基于设置标签后的所述训练集和所述测试集对文本分类模型进行训练,使用对抗验证方式验证所述训练集和所述测试集之间是否存在差异;
采用度量分布差异方法从所述数据集中确定出与已知类别之间的相似度低于预设相似度的样本。
在一实施例中,所述处理模块302还用具体于:
对各类别参数的预设类别区分阈值的大小进行动态调整,以动态调整所述补丁规则数量。
在一实施例中,所述处理模块302还用于:
从所述第一验证集中确定未纠错的目标文本;
将所述目标文本输入所述文本分类模型中进行文本分类,以对所述文本分类模型进行训练。
在一实施例中,所述处理模块302还用于:
生成对抗样本;
通过所述输入输出模块301获取对抗性任务;
按照所述对抗性任务,基于所述对抗样本攻击该文本分类模型中的至少一个神经网络,以对所述文本分类模型进行对抗性训练。
本申请实施例中,该用户意图识别装置30能够自动的筛选出合适的目标类别更新到补丁规则中,还能通过动态的调整各类别参数的预设类别区分阈值的大小来动态调整补丁规则数量。由此可见,本申请能够自动化的更新补丁规则,以提高文本分类模型的样本覆盖面,即便数据集中的第二样本集的数据量很大,也能自动的进行目标类别的识别操作,因此,本申请无需通过人工创建补丁规则来来对文本分类模型进行补丁更新,整体效率高且更新的补丁的准确性也得到保证,并且能够通过不断的训练学习去逐步完善文本分类模型对样本的覆盖类别。
上述用户意图识别装置30可以实现为计算机程序的形式,该计算机程序可以在如图4所示的计算机设备上运行。
请参阅图4,图4是本申请实施例提供的计算机设备的示意性框图。该计算机设备400是服务器,服务器可以是独立的服务器,也可以是多个服务器组成的服务器集群。
参阅图4,该计算机设备400包括通过系统总线401连接的处理器402、存储器和网络接口405,其中,存储器可以包括非易失性存储介质403和内存储器 404。
该非易失性存储介质403可存储操作系统4031和计算机程序4032。该计算机程序4032被执行时,可使得处理器402执行OCR识别发票药品名的校验方法。
该处理器402用于提供计算和控制能力,支撑整个计算机设备400的运行。
该内存储器404为非易失性存储介质403中的计算机程序4032的运行提供环境,该计算机程序4032被处理器402执行时,可使得处理器402执行OCR 识别发票药品名的校验方法。
该网络接口405用于进行网络通信,如提供数据信息的传输等。本领域技术人员可以理解,图4中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备400的限定,具体的计算机设备400可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
其中,所述处理器402用于运行存储在存储器中的计算机程序4032,以实现本申请实施例公开的基于文本分类识别用户意图的方法。
本领域技术人员可以理解,图4中示出的计算机设备的实施例并不构成对计算机设备具体构成的限定,在其他实施例中,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。例如,在一些实施例中,计算机设备可以仅包括存储器及处理器,在这样的实施例中,存储器及处理器的结构及功能与图4所示实施例一致,在此不再赘述。
应当理解,在本申请实施例中,处理器402可以是中央处理单元(CentralProcessing Unit,CPU),该处理器402还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。其中,通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
在本申请的另一实施例中提供计算机可读存储介质。该计算机可读存储介质可以为非易失性的计算机可读存储介质。该计算机可读存储介质存储有计算机程序,其中计算机程序被处理器执行时实现本申请实施例公开的OCR识别发票药品名的校验方法。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的设备、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为逻辑功能划分,实际实现时可以有另外的划分方式,也可以将具有相同功能的单元集合成一个单元,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、装置或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到各种等效的修改或替换,这些修改或替换都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。