具体实施方式
图1示出了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用或功能的范围加以限制。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于:个人计算机、服务器计算机、手持式或膝上设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、电话系统、包括任一上述系统或设备的分布式计算环境等等。
本发明可以在计算机可执行指令的一般上下文环境中描述,计算机可执行指令如程序模块,由计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。设计本发明在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,包括存储器存储设备。
参考图1,用于实现本发明的示例系统包括以计算机110形式的通用计算装置。计算机110的组件可包括但不限于,处理单元120、系统存储器130以及将各类系统组件包括系统存储器耦合至处理单元120的系统总线121。系统总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、外围总线以及使用各类总线结构的本地总线。作为示例而非局限,这类结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及外围部件互连(PCI)总线,也称为Mezzanine总线。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质,信息如计算机可读指令、数据结构、程序模块或其它数据。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
系统存储器130包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出系统133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问和/或者当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图1示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到系统总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到系统总线121。
图1讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作系统144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作系统134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作系统144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。
用户可以通过输入设备,如键盘162、麦克风163和定位设备161,如鼠标、轨迹球或触摸板向计算机110输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。除监视器之外,计算机也可包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、手持式设备、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN 173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出了远程应用程序185驻留在远程计算机180中。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
本发明提供一种用于即使当输入文本组成不好或是片断时也能够有效地标识输入文本中的语义结构的方法和装置。图2示出了本发明的系统的框图,图3的流程图示出了标识语义结构的方法。
在图3的步骤300中,定义了模式200,包括语义类型和概率202、马尔可夫(Markov)概率204和语义规则206。图4示出了该模式的一部分的示例。
在图4中,使用XML格式定义了该模式,格式从<Schema>标签400开始,到</Schema>标签402结束。在诸如<Entity>标签404和406的<Entity>标签内定义了语义类型。在打开<Entity>标签中,列出实体的身份为“Type(类型)”属性的值。例如,对于<Entity>标签400,实体被标识为“Flight(航班)”。打开<Entity>标签也包含“Seen(看见)”属性,指示该实体在一组训练数据中出现的次数。例如,“Flight”实体在该训练数据中出现了121次。
在打开和关闭<Entity>标签之间,可以找到一组<With>标签,如<With>标签408、410、412、414和416。每一<With>标签包括“EntityType(实体类型)”属性,标识对开始<Entity>标签中列出的实体可看似子实体的实体。例如,<With>标签408指示“TimeEntity(时间实体)”可对标签404中的“Flight”实体看似为子实体。每一<With>标签也包括“Seen”属性,指示<With>标签的实体被发现为<Entity>标签中的实体的子实体的次数。例如,标签414指示“Airline(航线)”实体39次被发现为“Flight”的子实体。
<With>标签中的一些实体进一步由“Type”属性中设置的限制来定义。例如,<With>标签410和412都用于“City(城市)”实体。然而,标签410被限制在作为旅行的“Goal(目的地)”或目的地的城市上,而标签412被限制在作为旅行的“Source(始发地)”或起点的城市上。
<Entity>标签中另一标签是<Denoted>标签。两个<Denoted>标签之间的单词或词组是出现在训练数据中并且与该实体关联的单词或词组。例如,单词“flights”在训练文本中出现并与“fiight”实体关联,如<Denoted>标签418所指示的。<Denoted>标签可包括“Seen”属性,指示<Denoted>标签之间的单词或词组与该实体关联的次数。例如,单词“flightes”79次与“flight”实体关联。
返回到图3,在定义了模式之后,在步骤302由表构造单元208使用该模式来构造语义结构表210。具体地,使用模式中<Entity>标签之间定义的语义类型202来构造语义结构表210。
结构表210包括用于模式中实体的每一可能对的单独的条目。每一条目包括在其中呈现两个实体的可以构建的所有结构的列表。注意,这些结构包括其中两个实体直接连接在一起的结构以及其中两个实体通过另一实体连接的结构。例如,一个实体可以是另一实体的孙子,使它们之间有一实体,或者这两个实体共享一个共同的祖先实体。对表中的任一结构,仅列出形成两个实体间的连接所需要的实体。通过最初创建该表,本发明减少了为标识两个实体在该模式下被连接在一起的不同方法必需在运行时刻完成的计算量。
在步骤304,语义实体标识器214接收文本212,该标识器在步骤306标识可由文本表示的所有实体。为完成这一过程,实体标识器使用在模式200的<Entity>标签中的<Denoted>标签。如果在一对<Denoted>标签中找到来自文本的单词或词组,则为该文本或词组创建语义节点,并且将包括该<Denoted>标签的实体添加为对该节点的可能实体。注意,单个节点可具有多个实体。同样,如果两个实体的跨度(与该实体关联的单词或词组)部分地交迭,则它们被认为是同一语义节点的一部分。其结果是语义实体点阵。
图5提供了通过步骤306形成的示例实体点阵的图示。在图5中,处理组成不好的输入句子“I am in Boston and I want to be in Detroit on Tuesday,show meUnited flights”来标识实体点阵。在这一过程中,“Boston(波士顿)”和“Detroit(底特律)”被映射到两个单独的“城市名”实体500和502,表示两个顺序的语义节点。“Tuesday(周二)”在第三语义节点上被映射到“一周的周几”实体504。单词“show(显示)”被映射到在第四节点上交迭的四个可能实体。具体地,“show”被映射到“显示服务的航线”实体506、“显示航班”实体508、“列出交通”实体510和“显示容量”实体512。单词“United(联合航空公司)”和“flights(航班)”分别被映射到“航线”实体514和“航班”实体516,表示点阵中最后两个语义节点。
在步骤308,向步骤306中标识的实体应用语义规则206。在图4的示例模式中,在诸如<GrammarRule>标签420和422以及<GrammarRule>标签424和426的<GrammarRule>标签之间示出了这一语义规则的示例。
在每一对<GrammarRule>标签之间的是一个或多个<Constit>标签,如<Constit>标签428。每一<Constit>标签表示在<Constit>标签内由“Entity”属性标识的实体。为确定是否应当执行特定的语法规则,检查步骤306中形成的实体点阵来看该规则的<Constit>标签中列出的所有实体是否在沿该点阵的分别的语义节点中存在。在一些实施例中,实体必须以与<Constit>标签相同的顺序出现在点阵中。例如,如果语法规则包含以下标签序列:
<Constit Number=″0″Entity=″Number″/>
<Constit Number=″1″Entity=″Flight″>
则“Number(数字)”实体必须在实体点阵中出现在“Flight”实体的左边,使语法规则得以执行。
如上所示,<Constit>标签也包括“Number”属性。这一属性向实体分配一个可用来在规则的执行过程中标识该实体的值。该值是需要的,因为可以在单个语法规则中使用同一实体类型的两个实体。
一般而言,每一语法规则组合<Constit>标签中找到的成分实体来形成在其中嵌入该成分实体的新实体。一类语法规则形成一个父实体,其中,每一成分实体变成该父实体的子实体。这类规则使用具有“Entity”属性的<Parent>标签,它标识被用作父实体的实体。当遇到这一标签并且在实体点阵中存在<Constit>标签的实体时,移除<Constit>标签的个别实体,并生成一语义结构,其中,<Constit>标签的实体变成<Parent>标签中找到的实体的子实体。然后,该结构的跨度为子实体的跨度的组合。
语法规则可包括更复杂的结构组成,其中,通过多级结构组合<Constit>标签的实体或改变一个实体的属性或改变实体本身。这类规则包括一<Rule>标签,它指定使用通过<Constit>标签的“Number”属性分配的值从成分实体形成的最终结构。
例如:
<Constit Number=″0″Entity=″City″
Restriction=″Source″/>
<Constit Number=″1″Entity=″City″
Restriction=″Goal″/>
<Constit Number=″2″Entity=″City″
Restriction=″Goal″/>
<Rule>{Flight[(Source,City,0)(Via,City,1)
(Goal,City,2)]}</Rule>
创建“Flight”结构,它具有父“Flight”实体、用指定为实体“0”的城市实体填充的子始发地城市实体、用指定为实体“1”的城市实体填充的子途经城市实体以及用指定为实体“2”的城市实体填充的子目的地城市实体。
在上述示例中,“Restriction(限制)”属性是一种特殊类型的实体。与其它实体一样,限制实体在其定义中包括指示哪一单词将生成该实体的<Denoted>标签。例如,“Goal(目的地)”限制实体由单词“to(到)”或词组“arriving at(到达)”指示。限制实体与其它实体不同之处在于它们在结构的同一级中修改其它实体。由此,“目的地”、“始发地”和“途经”修改“城市”实体。限制实体和被修改的实体一起形成了有限制的单个实体。在以下讨论中,限制实体经常仅被称为限制。
在该模式中,如果一个实体接受有限制的另一实体,则使用<With>标签中的“Type(类型)”属性标识该限制。例如,<With>标签416指示“Flight”实体接受具有“Via(途经)”限制的“City(城市)”实体。
图6示出了在图5的实体点阵上执行在图4中找到的语法规则的结果。具体地,<GrammarRule>标签424和426中的语法规则被应用到“城市名(CityName)”实体500和502。这生成具有父“城市(City)”实体604和606以及子“城市名(CityName)”实体500和502的“城市”语义结构。<GrammarRule>标签420和422中的语法规则被应用到“一周中的周几(DaysOfWeek)”实体504来生成具有“时间实体(TimeEntity)”父实体610和“一周中的周几(DaysOfWeek)”子实体504的“时间实体(TimeEntity)”结构608。
在执行了语义规则之后,在步骤310选择前两个语义节点。在大多数实施例中,这涉及选择两个最左边的语义节点。
在步骤312,结构生成器216使用语义结构表210来标识可以使用对两个选择的语义节点列出的实体形成的所有可能结构。例如,如果第一个节点包含实体A和B,第二个节点包含实体C和D,则对实体对AC、AD、BC、BD标识单独的结构。注意,对每一实体对可标识多个结构。这一过程可以在运行时刻快速执行,因为对每一实体对的可能结构先前已经被标识并储存在结构表210中。
图7示出了从图6的修改的实体点阵的前两个实体生成的结构的示例。由于对图6的前两个语义节点的每一个仅有一个实体,因此仅考虑一个实体对。然而,结构生成器标识了六个可由该单个实体对形成的单独的结构。具体地,标识了六个“航班”语义结构700、702、704、706、708和710。
尽管所有标识的语义结构是“航班”结构,它们的每一个使用“城市”语义结构600(包括“城市”实体604和“城市名=波士顿”实体500)以及“城市”语义结构602(包括“城市”实体606和“城市名=底特律”实体502)来填充“航班”结构中不同的空位。具体地,每一“城市”语义结构可以用来填充对“航班”实体中的限制实体“始发地城市”、“途经城市”和“目的地城市”的三个空位之一。由此,六个“航班”结构表示对两个“城市”语义结构的六种不同的可能分配组合。
例如,在“航班”结构700中,“城市”实体604填充“始发地”城市空位720,“城市”实体606填充“目的地”城市空位722。然而,在“航班”结构702中,“城市”实体604填充“目的地”城市空位724,“城市”实体606填充“始发地”城市空位726。
在“航班”结构704中,“城市”实体604填充“始发地”城市空位728,“城市”实体606填充“途经”城市空位730,而在“航班”结构706中,“城市”实体604填充“途经”城市空位732,“城市”实体606填充“始发地”城市空位734。
最后,在“航班”结构708中,“城市”实体605填充“目的地”城市空位736,“城市”实体606填充“途经”城市空位738,而在“航班”结构710中,“城市”实体604填充“途经”城市空位740,“城市”实体606填充“目的地”城市空位742。
在图7的语义结构中,“航班”实体是对每一城市实体的父实体,每一城市实体在“航班”实体的定义内的<With>标签中列出。由此,每一城市实体是被认为是在语义结构中在“航班”实体之下的子实体。
在创建了对该两个节点的所有可能结构之后,向结构记分模块218提供该结构,结构记分模块218在步骤314对每一结构记分。在本发明中,每一结构的得分是三个半正交(semi-orthogonal)得分的乘积。这些得分之一基于该语义结构的似然性,另一得分基于语义实体在输入文本中表示的顺序,最后一个得分基于该语义结构的句法正确性。
第一个得分被称为语义得分,并如下计算:
公式1
其中,Ej是实体结构S中的单独的实体,CE是实体Ej的所有子实体,p(Ej)是实体Ej的概率,p(ci|Ej)是给定实体Ej子实体ci的概率。
语义概率中的概率使用<Entity>标签和<With>标签中的“Seen”属性从模式中确定。具体地,一个实体的概率p(Ej)通过将该实体的<Entity>标签中的“Seen”属性的值除以该模式中所有实体的<Entity>标签中的“Seen”属性的值的总和来确定。给定父实体,子实体的概率p(ci|Ej)通过将该子实体的<With>标签中的“Seen”属性的值除以该父实体的<Entity>标签中的“Seen”属性的值来确定。
在本发明的一些实施例中,将公式1的语义得分加上罚因子(penalty factor),应用该罚因子以便当一个实体不是从文本直接衍生而是被创建来连接两个从文本衍生的实体时降低该实体的概率。例如,在图7中,可以通过罚因子来降低“航班”实体750的概率,因为“航班”实体被放置在语义结构中来连接两个“城市”实体,并且不是从由文本生成的实体点阵中直接获得。在一些实施例中,罚因子是.90。
第二得分基于语义实体在输入文本中表示的顺序,被称为马尔可夫得分或转移得分。在一个实施例中,计算马尔可夫得分为该语义结构中同一级别的每一对实体的转移概率的乘积。例如,可以将图7的语义结构700的马尔可夫概率简单地计算为令目的地城市跟随在始发地城市之后的转移概率。如果在目的地城市之后有同一级别的另一子节点,则确定令该另外的实体跟随在目的地城市之后的另外的转移概率。
从模式200中的<TransitionProb>标签(指示为图2中的马尔可夫概率204)确定一对同级实体的转移概率。这类<TransitionProb>标签的示例在图4中能够找到,为<TransitionProb>标签430和432。
在<TransitionProb>标签内,使用“R1”、“E1”、“R2”和“E2”属性指示实体的顺序。“R1”和“E1”属性分别对两个实体的最左边的实体标识限制和实体,“R2”和“E2”属性分别对两个实体的最右边实体标识限制和实体。由此,<TransitionProb>标签430中的转移概率用于始发地城市跟随在目的地城市之后,<TransitionProb>标签432用于目的地城市跟随在始发地城市之后。每一<TransitionProb>标签也包括“Seen”属性,指示在标签中列出的顺序中一起找到这两个实体的次数。
为对两个实体的具体顺序确定概率,定位包含这两个实体的所有<TransitionProb>标签。(可以有一个或两个这样的标签)。通过将该顺序的“Seen”值除以包括这两个实体的所有<TransitionProb>标签的“Seen”值的总和来确定这两个实体的具体顺序的概率。例如,计算图4中始发地城市跟随在目的地城市之后的概率为2/71,而目的地城市跟随在始发地城市之后的概率为69/71。
然后确定每一对同级实体的个别的转移概率的乘积,来形成该结构的马尔可夫概率。注意,尽管上文仅使用了二实体转移概率,可以使用任意数量的实体来确定该过渡概率。
最后一个概率指示该语义结构的句法正确性,被称为句法得分。这一得分可以用多种不同的方式生成。在一个实施例中,基于语义结构形成句法剖析结构。具体地,语义结构中实体所跨越的单词被放置在句法结构中与语义结构中的实体相同的相对位置。然后确定所得的句法剖析树的得分并将其用作该语义结构的句法得分。
在本发明的另一实施例中,通过对语义结构中每一父-子关系确定分别的得分来计算句法得分。对于每一父-子关系,标识由父实体跨越的单词或词组的句元位置以及由子实体跨越的单词或词组的句元位置,其中,句元位置是从句子的开始到该单词或词组的句元数。句元包括作为单个实体操作的个别的单词或词组。例如,“纽约市”是单个句元。
然后使用句元位置来标识描述当子实体在句元位置Y时在句元位置X的父实体的似然性的概率。由此,句法得分如下计算:
公式2
其中,PX是所有父实体的集合,CY是对每一父实体的子实体的集合,X是父实体的句元位置,Y是子实体的句元位置。
语义得分、马尔可夫得分和句法得分的乘积是每一语义结构的全得分。通过整合这三个半正交得分,能够从甚至较差组成的文本标识语义结构,因为尽管从这类较差组成的句子生成的候选结构可具有低句法得分,它们仍被在语义上记分,并且语义得分可对至少一个结构足够高以使其变为可行的语义结构。另外,通过在循序构建语义结构的过程中整合得分的句法成分和语义成分,本发明很大程度地减少了从文本标识语义结构所需的时间量。
在步骤314对语义结构进行记分之后,在步骤316通过排除系统200从考虑中排除一个或多个结构。这一排除能够通过采用前N个语义结构或通过采用得分最高的语义结构的阈值内的语义结构来执行。对图7的示例,保留了前四个语义结构。具体地,保留了结构700、704、708和710。
在排除之后,在步骤318检查点阵来确定是否有其它语义节点需要处理。如果有另外的语义节点需要处理,则在步骤320,由结构生成器216将下一节点的实体与保留的语义结构组合起来形成实体和保留的结构的所有可能组合。
在一个实施例中,执行有序的搜索来确定一个实体如何被挂连到语义结构。首先,执行搜索来找出其中新实体符合语义结构中任一实体之下的结构。下一步,执行搜索来找出其中语义结构的头符合新实体之下的结构。最后,执行搜索来看在语义结构的头和新实体之间是否有共同的祖先。使用语义结构表210执行这些搜索的每一个。
图8示出了从图7的结构和“时间实体”实体形成新结构的示例。具体地,结构800、802、804和806分别已从结构700、704、708和710形成。在所有结构中,“时间实体”实体作为子节点添加到“航班”实体。
重复步骤314和316来对语义结构的每一个记分,并排除结构集。由于在图8的示例中仅有四个结构,不排除任何结构。
然后执行步骤318和320来将图8的结构与下一语义节点的“显示服务的航线”实体506、“显示航班”实体508、“列出交通”实体510和“显示容量”实体512组合。
在下一语义节点的四个实体中,仅“显示航班”实体可与图8的结构组合。另外,“显示航班”实体仅可与每一结构组合,使得“显示航班”实体变为具有“航班”实体作为其直接子实体的结构的头。这得出图9的语义结构900、902、904和906,对应于图8的结构800、802、804和806。
在步骤318确定有更多的语义节点要处理之前,对新语义结构900、902、904和906重复记分和排除步骤314和316。然后在步骤320,向语义结构900、902、904和906添加“航线”实体。对这些结构的每一个,这涉及将“航线”实体作为子节点添加到“航班”实体。在图10中示出所得的结构为语义结构1000、1002、1004和1006。
然后在向图10的结构添加“航班”实体之前对该新结构重复步骤314、316和318。由于创建“航班”实体来连接两个城市实体,不需要将“航班”实体添加到结构。然而,在点阵中找到“航班”实体意味着该语义结构的得分不再包括对“航班”实体的创建的罚因子。
在对新结构进行记分和排除之后,在步骤318没有更多的语义节点要处理,图3的过程继续到步骤322,其中,由命令标识器222检查得分最高的结构来确定它是否是命令结构。命令结构由具有在模式200中设为“True(真)”的“Command(命令)”属性的实体作为头部。如果得分最高的语义结构是命令结构,则在步骤324将该结构作为由文本表示的命令返回。
如果在步骤322,得分最高的语义结构不是命令实体,在步骤326,命令标识器222试图标识可接受得分最高的结构的命令。然后将得分最高的结构结合到这些命令结构的每一个中,并在步骤328对该命令结构记分。然后将得分最高的命令结构作为由文本表示的命令返回。
尽管参考具体的实施例描述了本发明,本领域的技术人员可以认识到,可以在不脱离本发明的精神和范围的情况下在形式和细节上作出变化。具体地,可以在本发明的范围内修改或组合记分功能。