技术领域
[0001] 本公开涉及计算机网络技术领域,尤其涉及文本自动生成方案。
相关背景技术
[0002] 文本自动生成,是自然语言处理领域中的核心问题之一。能够自动生成指定内容的文章可以大大减轻作者的工作量。然而,如何生成行文通顺且细节描述正确的文章,具有一定的挑战性。
[0003] 目前来讲,文本自动生成的实现方式主要有以下两种。一种是模版填槽的方法,通过预先设定一批文章模版,模版中存在待填入的内容槽位,通过填槽的方式将模版转换为文本,从而实现文本自动生成。通过模版生成的文本,比较死板,容易出现千篇一律的情况,尤其是当模版数量少而需要生成的文本数量较多时。
[0004] 另一种是生成式的文本生成方法。常见的例如深度学习模型,通过对模型输入一些“信息”,可以将“信息”编码成向量,然后再将该向量解码成文本,因此模型需要学习如何将“信息”进行编码、解码等文章。通过深度学习自动生成文本的方法,可以生成出多样性较高的文本。但是,该方法存在如下缺点:需要海量(数十万+)的训练样本,才能利用深度学习技术学习到行文规律;同时,深度学习模型的训练时间较长,对GPU等硬件要求较高;此外,该方法稳定性不强,不能预知生成文本的形式,因此不能确保生成的文本是否通顺、是否正确。
[0005] 因此,亟需一种文本生成方案,来解决上述问题。
具体实施方式
[0020] 下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
[0021] 根据本公开实施例所提供的基于深度学习的文本自动生成方案,主要应用于对某一对象的描述文本的自动生成。首先,收集描述该对象的历史文本,经处理后作为数据集。之后,针对数据集中属于同一类别的段落,对其以句子为单位进行拆分,并从中选取出一定数量的句子。将所选取的句子输入训练好的文本生成模型,就得到一个新的描述该对象的文本段落。该文本段落还很好地实现了行文的通顺性。
[0022] 更进一步地,本方案通过分析文本中各段落所描述对象的类别、以及描述的维度,对各段落进行分类。
[0023] 本公开实施例的文本自动生成方案及训练文本生成模型的方案,可以在一台或多台计算设备中执行。图1是示例计算设备100的框图。
[0024] 在基本的配置102中,计算设备100典型地包括系统存储器106和一个或者多个处理器104。存储器总线108可以用于在处理器104和系统存储器106之间的通信。
[0025] 取决于期望的配置,处理器104可以是任何类型的处理,包括但不限于:微处理器(μP)、微控制器(μC)、数字信息处理器(DSP)或者它们的任何组合。处理器104可以包括诸如一级高速缓存110和二级高速缓存112之类的一个或者多个级别的高速缓存、处理器核心114和寄存器116。示例的处理器核心114可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器118可以与处理器
104一起使用,或者在一些实现中,存储器控制器118可以是处理器104的一个内部部分。
[0026] 取决于期望的配置,系统存储器106可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统120、一个或者多个应用122以及程序数据124。在一些实施方式中,应用122可以布置为在操作系统上利用程序数据124进行操作。在一些实施例中,计算设备100被配置为执行训练生成文本生成模型的方法200和文本生成方法300,程序数据124中包含了用于执行上述方法的指令。
[0027] 计算设备100还可以包括有助于从各种接口设备(例如,输出设备142、外设接口144和通信设备146)到基本配置102经由总线/接口控制器130的通信的接口总线140。示例的输出设备142包括图形处理单元148和音频处理单元150。它们可以被配置为有助于经由一个或者多个A/V端口152与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口144可以包括串行接口控制器154和并行接口控制器156,它们可以被配置为有助于经由一个或者多个I/O端口158和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备146可以包括网络控制器160,其可以被布置为便于经由一个或者多个通信端口164与一个或者多个其他计算设备162通过网络通信链路的通信。
[0028] 网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以是这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。在一些实施例中,计算机可读介质中存储一个或多个程序,这一个或多个程序中包括执行某些方法的指令。
[0029] 计算设备100可以实现为小尺寸便携(或者移动)电子设备的一部分,这些电子设备可以是诸如蜂窝电话、个人数字助理(PDA)、个人媒体播放器设备、无线网络浏览设备、个人头戴设备、应用专用设备、或者可以包括上面任何功能的混合设备。计算设备100还可以实现为包括桌面计算机和笔记本计算机配置的个人计算机。计算设备100也可以实现为具有上述配置的服务器。
[0030] 为便于说明,以下以对象为汽车为例,说明根据本公开实施例的训练生成文本生成模型的方法和文本生成方法。应当了解,基于本公开实施例所公开的内容,本领域技术人员能够将其应用到其它对象(如智能家居、服装、图书等),来自动生成针对其它对象的文本,均在本公开的保护范围之内。
[0031] 图2示出了根据本公开一些实施例的训练生成文本生成模型的方法200的流程示意图。该文本生成模型能够基于描述某一对象的若干句子,生成新的描述对象的文本。如图2所示,方法200始于步骤S210。
[0032] 在步骤S210中,收集多个描述对象的文本,并生成文本中各段落对应的第一标签和第二标签,作为训练数据集。
[0033] 根据一种实施例,收集汽车推荐平台上,关于汽车的历史文章,例如,收集前1年到前10年的介绍汽车的文章,作为描述汽车的文本。
[0034] 之后,利用深度学习分类模型,对文章内容进行理解,分别生成所收集的文章中各段落对应的第一标签和第二标签。根据本公开的实施方式,第一标签指示段落所描述对象的类别,第二标签指示段落的描述维度。在一种实施例中,当被描述对象为汽车时,第一标签为车系,第二标签的维度至少包括:外观、动力、内饰、操控性、舒适性、配置等6个维度中的至少一个。例如:某段落描述的是宝马3系的外观,则该段落的第一标签为“宝马3系”,第二标签为“外观”。需要说明的是,本公开并不限制具体采用何种深度学习模型,对输入的数据进行处理,来输出对应的第一标签和第二标签。
[0035] 此外,若所收集的某一段落中不包含上述标签,则丢弃该段落。
[0036] 最后,将描述汽车的所有段落及其对应的第一标签和第二标签,作为训练数据集。构造该训练数据集的目的是处理得到文本生成模型的训练语料。
[0037] 随后,在步骤S220中,从训练数据集中选取出第一标签和第二标签均相同的第一数量个段落。
[0038] 在一种实施例中,从车系相同且维度相同的段落中,随机选取第一数量个段落。设第一数量为M,分别记作第1段落、第2段落、…第M段落,其中,每个段落又包含若干个句子,这M个段落共有N个句子。应当了解,一个段落所包含的若干个句子之间是有逻辑关系的,由它们组成一个有序且通顺的段落(也可称之为文本)。
[0039] 随后,在步骤S230中,从第一数量个段落中选取第二数量个句子,并对所选取的句子进行随机排序,作为第一子集。
[0040] 根据本公开的实施方式,通过如下方式来生成第一子集。
[0041] 首先,将第一数量个段落分为第一部分和第二部分。在一种实施例中,将这M个段落中除最后一个段落外的其它段落(即,第1至M‑1段落),作为第一部分;将这M个段落中的最后一个段落(即,第M段落),作为第二部分。
[0042] 需要说明的是,这M个段落是从若干文章中随机选取的,它们可能来自不同文章,且无先后顺序之分。此处仅为区分它们,对其进行编号,本公开并不限制各段落的先后顺序。换言之,任何一个段落,都可以作为最后一个段落,也即,第二部分。
[0043] 接着,从第一部分所包含的各段落中分别选取2个句子,并结合第二部分中的所有句子,作为所选取的第二数量个句子。在一种实施例中,从第1至M‑1段落中的每个段落,随机选取2个句子,共2*(M‑1)个句子;再加上第M段落中的全部句子(句子个数记作m),作为所选取的第二数量个句子,则第二数量为2*(M‑1)+m。
[0044] 之后,对所选取的第二数量个句子进行随机排序,作为第一子集。在一种实施例中,将这些句子,以句子为单位进行打散,使其变为无序的句子集合,作为第一子集。
[0045] 应当了解,虽然此处示出了从各段落中随机选取2个句子,生成第一子集,但本公开并不限于此。本领域技术人员也可以从各段落中随机选取3个句子、4个句子等,来构建用于训练文本生成模型的语料。
[0046] 随后,在步骤S240中,从第一数量个段落中选取第三数量个句子,作为第二子集。
[0047] 在一种实施例中,将这M个段落中的最后一个段落中的所有句子,即,上述步骤中的第二部分的全部句子,作为第二子集。
[0048] 综上,第一子集中包含2*(M‑1)+m个句子,且句子是无序的;第二子集中包含m个句子,且句子是有序的。第一子集和第二子集,就是文本生成模型的训练语料。
[0049] 随后,在步骤S250中,利用第一子集和第二子集,对初始的文本生成模型进行训练,得到训练好的文本生成模型。
[0050] 根据本公开的一种实施方式,方法200还包括构建初始的文本生成模型及其网络参数的步骤。
[0051] 在一种实施例中,文本生成模型为带复制(copy)机制的Transformer模型,包含编码模块(encoder)和解码模块(decoder)。简单来说,文本生成模型区别于一般的Transformer模型一点的是,在解码时,不仅仅依赖于生成概率,而是依赖于生成概率和编码的注意力(attention)权重之和。复制机制已经被应用于各种NLP模型中,例如Transformer模型,因此本公开对此不再赘述。
[0052] 在构建好初始的文本生成模型后,将第一子集作为输入数据,输入该文本生成模型进行训练,得到输出数据;将第二子集作为目标数据,与输出数据计算损失函数,并根据损失函数调整文本生成模型的网络参数,重复迭代上述步骤,直到损失函数满足条件(当然,满足条件也可以是训练次数达到一定次数,或者损失函数逐渐收敛等)时,训练结束,得到训练好的文本生成模型。
[0053] 根据本公开的方法200,通过对若干个描述相同车系相同维度(外观、动力、内饰等)的段落,以句子为单位进行拆分并处理,构建出第一子集和第二子集,作为训练预料。基于所构建的训练语料,对文本生成模型进行训练,使得训练好的文本生成模型可以实现从N个句子中有顺序地选择出n个句子(N>n),并将这n个句子组合成一个全新且行文通顺的段落。即:maxP(xk,xi,xj,..,xt|x1,x2,...,xN),其中xk,xi,xj,..,xt共n个句子,存在于x1,x2,...,xN中且顺序可能与x1,x2,...,xN不一致,只要能够满足xk,xi,xj,..,xt这n个句子行文通顺即可。
[0054] 图3示出了根据本公开一些实施例的文本生成方法300的流程示意图。如图3所示,方法300始于步骤S310。
[0055] 在步骤S310中,对多个针对对象的描述文本进行分类。
[0056] 根据一种实施例,先获取多个针对对象的描述文本。例如,收集汽车推荐平台上,关于汽车的历史文章,例如,收集近半年的介绍汽车的文章。
[0057] 之后,确定所获取的文本中各段落对应的第一标签和第二标签。如前文所述,第一标签指示段落所描述对象的类别,第二标签指示段落的描述维度,此处不再赘述。
[0058] 之后,基于第一标签和第二标签,对段落进行分类。可选地,将第一标签和第二标签均相同的段落,作为同一类别。换言之,将描述同一车系的同一维度的段落,作为一个类别。
[0059] 随后,在步骤S320中,从属于同一类别的多个段落中,选取部分句子。
[0060] 根据本公开的实施例,从属于同一类别的段落中随机选取部分段落,并从所选取的段落中分别选取2个句子。
[0061] 在一种实施例中,从属于同一类别的段落中,随机选取出K个段落。本公开实施例对K的取值不做限制,通常来讲,K至少大于2。
[0062] 应当了解,此处从各段落中分别随机选取2个句子,对应于方法200中,在构建第一子集时,从各段落中随机选取了2个句子。换言之,若构建第一子集时,从各段落中分别选取3个句子,那么,在此处,也可以从属于同一类别的段落中,分别选取3个句子。以此类推。
[0063] 随后,在步骤S330中,对所选取的句子进行随机排序,得到乱序的句子。
[0064] 根据本公开的实施例,对所选取的2K个句子,以句子为单位进行随机排序,以使其不再保持原段落中的顺序即可。
[0065] 随后,在步骤S340中,将乱序的句子输入文本生成模型,以生成新的关于该对象的文本。
[0066] 其中,文本生成模型通过执行方法200来生成。根据一种实施例,将无序的2K个句子,输入文本生成模型中进行处理,文本生成模型可以从这2K个句子中选择出若干个句子,并组合成有序且通顺的段落。
[0067] 以下给出一个自动生成文本的示例。
[0068] 假设收集了关于“奥迪A4L”的“外观”方面的描述文本,并从中随机选取了5个段落,如下所示。
[0069] 外观方面,新款奥迪A4L基本延续了海外新款奥迪A4的设计风格,六边形一体式进气格栅而更加扁平化,将整车的视觉效果压低。国产S‑line车型将配备RS同款视觉效果的钛黑蜂窝状进气格栅,并在进气口造型上采用铝制饰条,塑造极具侵略感的动感外观。全新奥迪A4L全系标配LED数字化日间行车灯与分段式LED尾灯。顶配车型支持矩阵式智能LED技术,可更加精确地照亮行车道路。尾部的LED灯不仅提供动态转向信号,还显示动态效果,极具辨识度。与前大灯组相互呼应,在夜间点亮后更加醒目,全天候吸睛不间断。
[0070] 车尾最明显的区别就是尾灯造型,依然延续了海外版A4的设计,点亮后更具科技感,有了S‑Line套件的加持,下方的包围看起来也更为激进。排气部分也进行了装饰,长方形扁口的装饰罩和后保险杠一体设计,让它看着有点小A6的意思。
[0071] 外观方面,该车基本延续了现款车型的设计风格。车头部分采用六边形一体式进气格栅并加以扁平化,配合两侧棱角分明的大灯组增强了车头的视觉延展性。车身侧面锋利的腰线贯穿了全车,搭配五幅式轮毂,为车身营造了较为良好的运动姿态。后备箱顶部的鸭尾式设计,搭配下方双边共两出排气设计,进一步增强了该车的运动属性。尾灯组采用分体式设计,整体造型与大灯组相呼应,点亮后夜间辨识度较高。
[0072] 外观颜值方面,A4L运动风格更加突出,全系都融入了RS运动风格和Sline套件,这种被看作只有高端车型才独有的外观,这次在全系车型都可以看到。相比宝马3系中高配车型才有运动组件,A4L这次要良心很多。但就是这一套运动组件就加分不少,丝毫不像是一台30万出头的车型。前脸依旧是奥迪家族的套娃设计,六边形的大嘴进气格栅我们已经见了很多,还是那么漂亮。仔细看进气格栅的设计采用的黑色蜂窝状,细节之处还是非常好看。
[0073] 车身侧面采用三段式腰线设计,这让新车的肌肉感得到很好的凸显,与此同时,新车也换装了全新样式的轮圈。车身尺寸方面,新款奥迪A4L的长、宽、高分别为4851mm(致雅型)/4858mm(动感型)、1847mm、1439mm(舒适悬挂)/1411mm(运动悬挂),轴距为2908mm。比起现款车型长度分别增加了14mm/21mm,宽度增加了4mm。
[0074] 从上述5个段落中,分别选取2句话,共10句话。如下所示,将属于一个段落中的2句话用大括号“{}”括起来。
[0075] {尾部的LED灯不仅提供动态转向信号,还显示动态效果,极具辨识度。与前大灯组相互呼应,在夜间点亮后更加醒目,全天候吸睛不间断。}
[0076] {车尾最明显的区别就是尾灯造型,依然延续了海外版A4的设计,点亮后更具科技感,有了S‑Line套件的加持,下方的包围看起来也更为激进。排气部分也进行了装饰,长方形扁口的装饰罩和后保险杠一体设计,让它看着有点小A6的意思。}
[0077] {车身侧面锋利的腰线贯穿了全车,搭配五幅式轮毂,为车身营造了较为良好的运动姿态。尾灯组采用分体式设计,整体造型与大灯组相呼应,点亮后夜间辨识度较高。}[0078] {外观颜值方面,A4L运动风格更加突出,全系都融入了RS运动风格和Sline套件,这种被看作只有高端车型才独有的外观,这次在全系车型都可以看到。仔细看进气格栅的设计采用的黑色蜂窝状,细节之处还是非常好看。}
[0079] {车身侧面采用三段式腰线设计,这让新车的肌肉感得到很好的凸显,与此同时,新车也换装了全新样式的轮圈。比起现款车型长度分别增加了14mm/21mm,宽度增加了4mm。}
[0080] 之后,对上述10个句子进行随机排序,并输入文本生成模型,经处理后输出一个新的段落,是关于“奥迪A4L”的“外观”的新的描述文本。如下所示。
[0081] 外观颜值方面,A4L运动风格更加突出,全系都融入了RS运动风格和Sline套件,这种被看作只有高端车型才独有的外观,这次在全系车型都可以看到。车身侧面采用三段式腰线设计,这让新车的肌肉感得到很好的凸显,与此同时,新车也换装了全新样式的轮圈。车尾最明显的区别就是尾灯造型,依然延续了海外版A4的设计,点亮后更具科技感,有了S‑Line套件的加持,下方的包围看起来也更为激进。
[0082] 根据本公开,提供了一种快速、高效自动生成指定车系、指定维度文本的方法。首先,基于方法200,通过对历史文本数据以句子为单位打散再重构的方式,构造训练语料;同时,搭建带copy机制的Transformer模型,并输入训练语料进行模型训练。之后,通过对近期(如近6个月)文本数据以句子为单位打散的方式,构造生成语料;并将生成语料输入训练好的文本生成模型中,经处理后将打散语料重组成一个新的文本。
[0083] 综上所述,本方案具有快速大规模生成指定车系、指定维度正确且可靠文本的特性,在自动写作系统中,其具备可移植性与可扩展性。
[0084] 图4示出了根据本公开一些实施例的训练生成文本生成模型的装置400的示意图。图4与图2中示出的方法200互为补充,故关于装置400的内容,可参考前文相关描述,此处不做过多展开。
[0085] 训练生成文本生成模型的装置400包括:训练数据处理模块410、训练数据生成模块420和模型训练模块430。
[0086] 训练数据处理模块410收集多个针对对象的描述文本,并生成文本中各段落对应的第一标签和第二标签,作为训练数据集。
[0087] 训练数据生成模块420从训练数据集中选取出第一标签和第二标签均相同的第一数量个段落,并从第一数量个段落中选取第二数量个句子,并对所选取的句子进行随机排序,作为第一子集。同时,训练数据生成模块420还从第一数量个段落中选取第三数量个句子,作为第二子集。
[0088] 模型训练模块430利用第一子集和第二子集,对初始的文本生成模型进行训练,得到训练好的文本生成模型。
[0089] 图5示出了根据本公开一些实施例的文本生成装置500的示意图。图4与图3中示出的方法300互为补充,故关于装置500的内容,可参考前文相关描述,此处不做过多展开。
[0090] 如图5所示,文本生成装置500包括:第一文本处理模块510、第二文本处理模块520和模型预测模块530。
[0091] 第一文本处理模块510对获取的针对对象的描述文本进行分类。
[0092] 第二文本处理模块520从属于同一类别的多个段落中,选取部分句子。并且,对所选取的句子进行随机排序,得到乱序的句子。
[0093] 模型预测模块530将乱序的句子输入文本生成模型,以生成新的关于该对象的文本。该文本生成模型通过装置400来训练生成。
[0094] 在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本公开的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
[0095] 类似地,应当理解,为了精简本公开并帮助理解各个公开方面中的一个或多个,在上面对本公开的示例性实施例的描述中,本公开的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本公开要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,公开方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本公开的单独实施例。
[0096] 本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
[0097] 本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
[0098] 此处还一并公开了:
[0099] A3、如A1或2所述的方法,其中,所述从第一数量个段落中选取第二数量个句子,并对所选取的句子进行随机排序,作为第一子集的步骤包括:将所述第一数量个段落分为第一部分和第二部分;从所述第一部分所包含的各段落中分别选取2个句子,并结合所述第二部分中的所有句子,作为所选取的第二数量个句子;对所选取的第二数量个句子进行随机排序,作为第一子集。
[0100] A4、如A3所述的方法,其中,所述将第一数量个段落分为第一部分和第二部分的步骤包括:将所述第一数量个段落中除最后一个段落外的其它段落,作为第一部分;将所述第一数量个段落中的最后一个段落,作为第二部分。
[0101] A5、如A1‑4中任一项所述的方法,其中,所述从第一数量个段落中选取第三数量个句子,作为第二子集的步骤包括:将所述第一数量个段落中的最后一个段落中的所有句子,作为第二子集。
[0102] A6、如A1‑5中任一项所述的方法,其中,所述利用第一子集和第二子集,对文本生成模型进行训练,得到训练好的文本生成模型的步骤包括:将所述第一子集作为输入数据,输入所述文本生成模型进行训练,得到输出数据;将所述第二子集作为目标数据,与所述输出数据计算损失函数,直到所述损失函数满足条件时,训练结束,得到训练好的文本生成模型。
[0103] 此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本公开的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
[0104] 此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该公开的目的的元素所执行的功能。
[0105] 如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
[0106] 尽管根据有限数量的实施例描述了本公开,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本公开的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本公开的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本公开的范围,对本公开所做的公开是说明性的,而非限制性的,本公开的范围由所附权利要求书限定。