CN111353292B - 针对用户操作指令的解析方法及装置 - Google Patents
针对用户操作指令的解析方法及装置 Download PDFInfo
- Publication number
- CN111353292B CN111353292B CN202010120906.2A CN202010120906A CN111353292B CN 111353292 B CN111353292 B CN 111353292B CN 202010120906 A CN202010120906 A CN 202010120906A CN 111353292 B CN111353292 B CN 111353292B
- Authority
- CN
- China
- Prior art keywords
- semantic
- sequence
- descriptor
- commodity
- word
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000004458 analytical method Methods 0.000 title claims abstract description 52
- 230000011218 segmentation Effects 0.000 claims abstract description 135
- 238000000034 method Methods 0.000 claims abstract description 48
- 239000003550 marker Substances 0.000 claims abstract description 42
- 125000004122 cyclic group Chemical group 0.000 claims abstract description 26
- 238000012545 processing Methods 0.000 claims abstract description 14
- 238000013507 mapping Methods 0.000 claims description 13
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 4
- 235000015220 hamburgers Nutrition 0.000 description 23
- 230000003993 interaction Effects 0.000 description 11
- 210000003128 head Anatomy 0.000 description 10
- 238000010586 diagram Methods 0.000 description 7
- 235000015243 ice cream Nutrition 0.000 description 5
- 241000287828 Gallus gallus Species 0.000 description 3
- 230000008859 change Effects 0.000 description 3
- 235000013353 coffee beverage Nutrition 0.000 description 3
- 238000012217 deletion Methods 0.000 description 3
- 230000037430 deletion Effects 0.000 description 3
- 235000013305 food Nutrition 0.000 description 3
- 239000012634 fragment Substances 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 241001465754 Metazoa Species 0.000 description 2
- 206010000210 abortion Diseases 0.000 description 2
- 235000020289 caffè mocha Nutrition 0.000 description 2
- 235000020965 cold beverage Nutrition 0.000 description 2
- 239000006071 cream Substances 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 241000283973 Oryctolagus cuniculus Species 0.000 description 1
- 241001122767 Theaceae Species 0.000 description 1
- 235000015278 beef Nutrition 0.000 description 1
- 235000013361 beverage Nutrition 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 244000309466 calf Species 0.000 description 1
- 235000013351 cheese Nutrition 0.000 description 1
- 238000011010 flushing procedure Methods 0.000 description 1
- 235000012020 french fries Nutrition 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 235000012054 meals Nutrition 0.000 description 1
- 239000008267 milk Substances 0.000 description 1
- 235000013336 milk Nutrition 0.000 description 1
- 210000004080 milk Anatomy 0.000 description 1
- 238000002156 mixing Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011022 operating instruction Methods 0.000 description 1
- 210000001747 pupil Anatomy 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G10—MUSICAL INSTRUMENTS; ACOUSTICS
- G10L—SPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
- G10L15/00—Speech recognition
- G10L15/26—Speech to text systems
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- Acoustics & Sound (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Machine Translation (AREA)
Abstract
本说明书实施例提供一种针对用户操作指令的解析方法,该方法包括:先获取对用户输入语音进行识别得到的输入文本,并对其行分词处理,得到分词序列;再将该分词序列中,与商品描述相关的若干分词分别转化为预定格式的标记符,得到混合序列;再获取预先设定的语义模板集,其中每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型,多个语义描述符包括对应于标记符的组合的商品描述符;再基于语义模板集,对初始为混合序列的当前序列进行循环解析;其中任意一次循环解析包括,从当前序列头部开始,截取出与某个语义模板匹配的序列部分,根据该某个语义模板对应的操作类型和该序列部分中的标记符,得到操作指令,并更新当前序列。
Description
技术领域
本说明书实施例涉及计算机技术领域,具体地,涉及一种针对用户操作指令的解析方法及装置。
背景技术
越来越多的行业利用人机交互系统,向用户提供服务。例如,餐饮行业中利用语音点餐系统向用户提供点餐服务,又例如,交通行业中利用智能售票系统向用户提供票务服务。这些人机交互系统通常包括语音识别、自然语言理解、自然语言生成、语音合成等几个主要的功能模块,其中自然语言理解模块是整个系统的核心部分,负责理解用户输入,解析用户操作指令,如解析出用户想在购物车中添加某一商品。
然而,目前因自然语言理解模块对用户操作指令的解析能力有限,通常要求用户按照较为简短的、相对固定的句式进行语音输入,使得用户的输入自由度和灵活度受到限制。
因此,迫切需要一种合理、可靠的解析算法,可以支持不同用户的复杂多变的输入,同时精准地解析出用户操作指令,从而提高用户体验。
发明内容
本说明书中的一个或多个实施例提供一种针对用户操作指令的解析方法,利用预先设定的语义模板集,对用户输入文本进行循环解析,从而实现从用户复杂多变的个性化输入中,精准、高效地解析出一个或多个用户操作指令。
第一方面,提供一种针对用户操作指令的解析方法,该方法包括:获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入。对所述输入文本进行分词处理,得到多个分词,组成分词序列。将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列。获取预先设定的语义模板集,所述语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符。基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析;其中任意一次循环解析包括,从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,并更新当前序列。
在一个实施例中,所述第一服务为点餐服务或购物服务,在得到解析出的操作指令之后,所述方法还包括:基于所述操作指令,更新用户的已点商品或购物车。
在一个实施例中,获取输入文本,包括:获取所述用户语音输入;对所述用户语音输入进行语音识别,得到所述输入文本。
在一个实施例中,所述标记符包括表示商品描述词的第一标记符;将所述分词序列中,与所述第一服务中的商品描述相关的若干分词转化为预定格式的标记符,包括:利用商品描述词集合,对所述多个分词进行匹配,得到若干匹配词,其中商品描述词集合基于所述第一服务中可提供的多种商品而预先确定;将所述分词序列中的所述若干匹配词分别转化为所述第一标记符。
在一个具体的实施例中,所述标记符还包括用于指示对单品描述中止的中止符;将所述分词序列中,与所述第一服务中的商品描述相关的若干分词转化为预定格式的标记符,还包括:判断所述分词序列中相邻的两个分词之间是否存在关联;在判断出所述两个分词之间不存在关联的情况下,在所述两个分词对应的两个第一标记符之间添加所述中止符;其中,所述商品描述符对应于若干第一标记符和所述中止符的组合。
在一个更具体的实施例中,判断所述两个分词之间是否存在关联,包括:基于预先确定的对应于多种商品的多个商品描述词子集,判断所述两个分词是否存在于同一商品描述词子集中;如果所述两个分词未存在于同一商品描述词子集中,则判断出所述两个分词之间不存在关联。
在另一个更具体的实施例中,判断所述两个分词之间是否存在关联,包括:基于预先建立的商品描述词和描述类别标签之间的映射关系,确定所述两个分词对应的两个描述类别标签;基于预先设定的标签关联规则,确定所述两个描述类别标签之间是否存在关联;如果所述两个描述类别标签之间不存在关联,则判断出所述两个分词之间不存在关联。
在一个例子中,所述映射关系基于多个商品描述词和多个描述类别标签而预先建立,其中多个描述类别标签包括以下中的至少一个:商品种类、商品属性、商品常用名。
在一个实施例中,所述多个语义描述符还包括以下中的至少一项:若干种操作类型描述符,数量描述符,单位描述符。
在一个实施例中,所述语义模板集还包括对所述多个第二描述符的第二定义;所述从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,包括:基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配;将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
在一个具体的实施例中,基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配,包括:基于所述第二定义,依次将所述当前序列中的分词或标记符分别转化为对应的若干备选语义描述符,从而得到多个语义描述符序列,该多个语义描述符序列与所述多个语义模板中的多个第二语义模板相匹配;基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列。
在一个更具体的实施例中,基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,包括:从所述多个分词子序列中,确定出包含分词数量最多的最长分词子序列,并将其对应的语义描述符序列确定为所述第一语义描述符序列。
在另一个更具体的实施例中,基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,包括:将所述多个分词子序列分别输入预先训练的关联度预测模型中,得到多个预测关联度;确定所述预测关联度中的最大值,并将其对应的分词子序列所对应的语义描述符序列,确定为所述第一语义描述符序列。
在一个实施例中,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,包括:至少根据所述标记符组合所对应的原始分词,解析出商品信息;基于所述操作类型和所述商品信息,得到对应的操作指令。
在一个具体的实施例中,所述多个语义描述符中还包括数量描述符;至少根据所述标记符组合所对应的原始分词,解析出商品信息,还包括:根据该序列部分中包含的与数量描述符对应的原始分词,确定商品数量,归入所述商品信息。
在一个实施例中,更新当前序列,包括:从所述当前序列中去除与所述某个语义模板匹配的序列部分,得到更新后的当前序列。
根据第二方面,提供一种针对用户操作指令的解析装置,该装置包括:文本获取模块,配置为获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入。文本分词模块,配置为对所述输入文本进行分词处理,得到多个分词,组成分词序列。序列转化模块,配置为将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列。模板集获取模块,配置为获取预先设定的语义模板集,所述语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型。所述多个语义描述符包括对应于所述标记符的组合的商品描述符;循环解析模块,配置为基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析;其中循环解析模块具体包括:序列匹配单元,配置为从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分;指令确定单元,配置为至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令;序列更新单元,配置为更新当前序列。
第三方面,提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行第一方面中提供的方法。
第四方面,提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现第一方面中提供的方法。
在本说明书中实施例披露的解析方法中,首先,获取对用户输入语音进行识别得到的输入文本,并对其行分词处理,得到分词序列;再将该分词序列中,与商品描述相关的若干分词分别转化为预定格式的标记符,得到混合序列;接着,获取预先设定的语义模板集,其中每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型,多个语义描述符包括对应于标记符的组合的商品描述符;再基于语义模板集,对初始为混合序列的当前序列进行循环解析;其中任意一次循环解析包括,从当前序列头部开始,截取出与某个语义模板匹配的序列部分,根据该某个语义模板对应的操作类型和该序列部分中的标记符,得到操作指令,并更新当前序列。如此可以从复杂多变的用户输入中,全面、精准、高效地解析出用户操作指令,使得用户可以在人机交互中,灵活、自由地进行语音输入,从而大大提高用户体验。
附图说明
为了更清楚地说明本说明书披露的多个实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书披露的多个实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1示出根据一个实施例的解析用户操作指令的流程框图;
图2示出根据一个实施例的针对用户操作指令的解析方法流程图;
图3示出根据一个实施例的客户端和服务端的交互示意图;
图4示出根据一个实施例的针对用户操作指令的解析装置结构图。
具体实施方式
下面结合附图,对本说明书披露的多个实施例进行描述。
如前所述,目前应用于人机交互系统中的解析算法,对用户操作指令的解析能力十分有限。具体而言,针对用户的单次输入,只支持较为简短或相对固定的句式,否则会出现解析遗漏或解析失败的情况。举例来说,某些解析算法会指定顺序提取的信息,比如在语音购买咖啡的场景中,通过固定的多轮交互引导用户说出其想要购买的咖啡的信息,比如首先,客户端中的语音助手问:“您好,请问您需要哪种咖啡”,顾客对此回答“需要大杯的摩卡”,此时解析出有效信息的只有摩卡,接着,语音助手继续问:“您好,请问需要那种杯型的咖啡”,顾客对此回答“大杯、不加奶油,半糖”,此时解析出的有效信息只有大杯,然后,语音助手再继续问其他关于是否加奶油和加糖的问题,并且在未提取出对应有效信息时重复询问,如此,无疑将耗费用户大量的时间,使得用户体验十分有限。
还有一些解析算法只支持解析较为简单的用户操作指令,比如在点餐场景下支持添加和删除操作,不支持对购物车中商品进行替换等相对复杂的用户操作指令。再有受到解析算法的限制,导致交互系统只支持提供服务方可以提供的全量服务中的部分服务,比如在外卖下单的场景下,只支持语音购买有限种类(如3种套餐)的餐品,而对于其他餐品则无法进行语音下单。
进一步地,发明人还发现,当允许用户自由输入时,获取的用户输入虽然是复杂多变的,如单次输入可以对应多个操作指令(如在购物车中添加商品、删除商品、替换商品或查看商品信息等),不同用户针对同一操作指令(如在购物车中添加一杯可乐)的表达方式(如来杯可乐,或者我要一个可乐,或者可乐走一个,或者点杯可乐等)不同,但是,无论用户输入多么复杂,都可以将其拆分成对应不同操作指令的粒度较小的文本分段,相应地,如果可以将用户输入拆分成若干分段,并解析出该若干分段对应的若干用户操作指令,就可以实现支持用户进行自由、灵活、复杂的输入,并可以从用户的单次输入中,全面、精准、高效地解析出全量的用户操作指令,进而大大提高用户体验。
基于以上观察,发明人提出一种对针对用户操作指令的解析方法。在一个实施例中,图1示出根据一个实施例的解析用户操作指令的流程框图。如图1所示,首先,获取用户在使用第一服务(如点餐服务等)的过程中输入的输入文本(如通过语音识别得到的:一汉堡再来个冰淇淋)。接着,对所述输入文本进行分词处理,得到若干分词,组成分词序列(如,一汉堡再来个冰淇淋,其中用空格区隔不同分词)。然后,将所述分词序列中,与所述第一服务中的商品描述相关的若干分词(如:大、汉堡、冰淇淋)分别转化为预定格式的标记符(如:T_XX),得到包括分词和标记符的混合序列(如:一T_01再来个T_02)。再接着,基于预先设定的语义模板集,对初始为上述混合序列的当前序列进行循环解析,其中任意一次循环解析包括,从当前序列(如:一T_01再来个T_02)头部开始,截取出与所述多个语义模板中的某个语义模板(如add_pattern_1=quantity?goods)匹配的序列部分(如:一T_01),根据该某个语义模板对应的操作类型(如,ADD)和该序列部分中的商品描述符(如goods),得到解析出的操作指令(如:ADD,{"汉堡",1}),并更新当前序列(例如更新为:再来个T_02)。如此,通过多轮次的循环解析,直到当前序列为空,可以实现从用户的单次输入中,全面、精准、高效地解析出全量的用户操作指令,进而大大提高用户体验。
下面,结合具体的实施例,描述本说明书所披露方法的具体实施步骤。具体地,图2示出根据一个实施例的针对用户操作指令的解析方法流程图,所述方法的执行主体可以为任何具有计算、处理能力的装置、设备或服务器集群,例如,可以为服务端。如图2所示,所述方法可以包括以下步骤:
步骤S210,获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入;步骤S220,对所述输入文本进行分词处理,得到多个分词,组成分词序列;步骤S230,将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列;步骤S240,获取预先设定的语义模板集,其中包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符;步骤S250,基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析,其中任意一次循环解析包括,从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,并更新当前序列。
针对以上步骤,首先需要说明的是,上述步骤中提及的第一服务和第一定义中的“第一”,以及后续提到的“第二”等类似用语,仅用于区分同类事物,不具有其他限定作用。
以上步骤具体如下:
首先,在步骤S210,获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入。
在一个实施例中,本步骤可以包括:先获取用户语音输入,再对该用户语音输入进行语音识别,得到输入文本。在一个具体的实施例中,其中语音识别可以通过现有的自动语音识别技术或流式语音识别技术等实现,对此不作赘述。在另一个具体的实施例中,服务方通过客户端向用户提供支持语音交互的第一服务,相应地,其中获取用户语音输入可以为,获取客户端接收的用户语音输入。在另一个实施例中,本步骤可以包括:从第三方语音识别平台,获取上述输入文本,其中输入文本由第三方语音识别平台对客户端上传的用户语音输入进行识别而得到。
在一个实施例中,第一服务可以为购物服务。在一个具体的实施例中,购物服务涉及的商品可以为多种,如餐品、衣服、裤子、鞋帽、饰品等等。在一个例子中,上述输入文本可以为:要两册人教版的小学生英语和五个绘画本。在另一个实施例中,第一服务可以为点餐服务。在一个具体的实施例中,该点餐服务可以包括堂食点餐服务或外卖点餐服务。在一个例子中,上述输入文本可以为:买一个亲子家庭三人套餐和两份大薯条。在一个实施例中,第一服务可以为算术服务。在一个具体的实施例中,算术服务可以为计算多种或多个动物(此时将动物作为上述商品)所具有总腿数的服务。在一个例子中,上述输入文本可以为:两只兔子和1头牛和1匹马。
以上,可以获取输入文本。接着,在步骤S220,对所述输入文本进行分词处理,得到多个分词,组成分词序列。
需要理解,分词就是将文本(即连续的字序列)按照一定的规范重新组合成词序列的过程。
在一个实施例中,考虑到在第一服务的场景下,大量用户语音输入所对应的识别文本中,会存在许多高频词汇,相应地,可以确定出这些高频词,用于对本步骤中的输入文本进行匹配,从而实现高效、精准地分词,进而使得后续解析出的操作指令全面而精准。在一个具体的实施例中,可以基于第一服务中提供的多个商品,确定多个商品描述词。在一个更具体的实施例中,可以从客户端中接收当前向用户展示的商品列表,其中包括所述多个商品。另一方面,在一个更具体的实施例中,服务方或服务平台中,通常已对多个商品的信息进行分级、清晰地统计、整理,由此,可以直接从获取的多个商品的描述或介绍信息中提取与商品相关的词语,作为上述多个商品描述词。在一个例子中,从客户端中接收的商品列表中,包括多种商品,针对其中某种商品的信息(或称商品条目)具体包括:商品全称:可口可乐(大),类别:饮料,常用名称:可口可乐、可乐、大可乐、冷饮,属性:大杯、大的、儿童、冰,从此商品条目中,可以提取商品全称、类别、常用名称和属性对应的全部词语,归入上述商品描述词。在另一个具体的实施例中,可以采集在第一服务中产生的、大量的历史语音识别文本,对其统计分析,从而确定其中出现次数超过预定阈值的词语,归入上述高频词汇。如此,可以得到大量的高频词汇,进而通过字符串匹配的方式,实现对上述输入文本的分词处理,得到上述分词序列。
在另一个实施例中,可以直接使用现有的开源的分词工具(如,StandardAnalyzer、MM Analyzer等)实现对输入文本的分词。
以上,可以实现对所述输入文本进行分词处理,得到上述分词序列。然后,在步骤S230,将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列。
在一个实施例中,上述标记符包括表示商品描述词的第一标记符,相应地,本步骤中可以包括:首先,利用商品描述词集合,对所述多个分词进行匹配,得到若干匹配词,其中商品描述词集合基于所述第一服务中可提供的多种商品而预先确定;接着,将所述分词序列中的所述若干匹配词分别转化为所述第一标记符。在一个具体的实施例中,其中商品描述词集合中可以包括上述多个商品描述词,具体请参加前述描述,不作赘述。在一个具体的实施例中,上述第一标记符具有的预定格式可以为T_XX,其中XX=1-99。在一个例子中,假定分词序列为:来一个汉堡和一个可乐,则将其中与商品描述相关的分词“汉堡”和“可乐”分别转换为T_01和T_02,可以得到包括分词和标记符的混合序列来一个T_01和T_02。在另一个具体的实施例中,上述第一标记符具有的预定格式可以为SP_XXX,其中XXX=1-999。
进一步地,在一个实施例中,上述标记符中还可以包括用于指示对单品描述中止的中止符,需要理解,任何商品在单独提及的时候都可以称做单品,有别于其他商品的一种商品就叫做单品,例如,可以认为可乐是一种单品,或者说汉堡是一种单品。在一个具体的实施例中,中止符的具体形式可以由工作人员预先定义,可以由字母、数字或符号组成,如可以为EOS或STOP等。
相应地,一方面,在本步骤中还可以包括:针对分词序列中包含的与商品描述相关的若干分词中相邻的两个分词,判断两个分词之间是否存在关联;在判断出所述两个分词之间不存在关联的情况下,在所述两个分词对应的两个第一标记符之间添加所述中止符,而在判断出所述两个分词之间存在关联的情况下,不添加所述中止符。另外需要说明,此时,上述语义模板集中包括的商品描述符对应于若干第一标记符和所述中止符的组合。
在一个具体的实施例中,上述判断两个分词之间是否存在关联可以包括:基于预先确定的对应于多种商品的多个商品描述词子集,判断所述两个分词是否存在于同一商品描述词子集中。进一步地,如果所述两个分词未存在于同一商品描述词子集中,则判断出所述两个分词之间不存在关联,而如果存在于同一商品描述词子集中,则判断出所述两个分词之间存在关联。在一个更具体的实施例中,其中多个商品描述词子集属于上述商品描述词子集。
在一个例子中,多个商品描述词子集中可以包括与商品可乐和商品汉堡对应的描述词子集,分别为{可口可乐、可乐、大可乐、冷饮、大杯、大的、冰}和{牛堡、牛肉堡、芝士、不辣},假定相邻的两个分词为大杯和可乐,由此可以确定这两个分词存在于与商品可乐对应的描述词子集中,进而判断出两个分词之间存在关联,无需添加中止符,再假定相邻的两个分词为可乐和不辣,由此可以确定这两个分词不存在于同一商品描述词子集中,进而判断出两个分词之间不存在关联,并在这两个分词对应的第一标记符T_01和T_02之间添加中止符EOS,得到...T_01EOST_02...,其中“...”表示略去混合序列中的其他部分。
在另一个具体的实施例中,上述判断两个分词之间是否存在关联可以包括:首先,基于预先建立的商品描述词和描述类别标签之间的映射关系,确定所述两个分词对应的两个描述类别标签;接着,基于预先设定的标签关联规则,确定所述两个描述类别标签之间是否存在关联;然后,若所述两个描述类别标签之间不存在关联,则判断出所述两个分词之间不存在关联,而若所述两个描述类别标签之间存在关联,则判断出所述两个分词之间存在关联。
在一个更具体的实施例中,其中映射关系基于多个商品描述词和多个描述类别标签而预先建立。需要说明,对于多个商品描述词的介绍可以参见前述相关描述,在此不赘述。在一个例子中,其中多个描述类别标签包括以下中的至少一个:商品种类、商品属性、商品常用名。在一个具体的例子中,其中映射关系可以由业务人员预先建立。
在一个更具体的实施例中,假定映射关系中涉及的描述类别标签包括商品种类、商品属性和商品常用名,由此预先设定的标签关联规则可以包括:两个“商品种类”之间不存在关联、两个“商品常用名”之间不存在关联、“商品种类”和“商品常用名”之间不存在关联。
在一个例子中,假定基于映射关系,确定出两个分词“可乐”和“汉堡”对应的两个描述类别标签分别为“商品常用名”和“商品常用名”,并且,预先设定的标签关联规则中包括:两个“商品常用名”之间不存在关联,由此可以确定出两个描述类别标签之间不存在关联,进而判断出“可乐”和“汉堡”之间不存在关联,并在这两个分词对应的第一标记符之间添加中止符。
另一方面,本步骤中还可以包括:如果上述若干分词中的某个分词,在分词序列中不与若干分词中的其他分词相邻,则在分词序列中的该某个分词对应的第一标记符之后,添加所述中止符。根据一个具体的例子,对于分词序列:要汉堡薯条再来个冰淇淋,在本步骤将其中与商品描述相关的分词“汉堡”、“薯条”和“冰淇淋”转化为预定格式的标记符,可以得到混合序列:要T_001 EOS T_002EOS再来个T_003 EOS。
以上,将分词序列中与商品描述相关的若干分词分别转化为预定格式的标记符,可以得到包括分词和标记符的混合序列。
接着,在步骤S240,获取预先设定的语义模板集。
需要说明的是,在本说明书披露的实施例中,对本步骤S240与上述步骤S210、或步骤S220、或步骤S230之间的相对执行顺序不作限定,例如,可以在执行步骤S210之前执行步骤S240。
下面先对语义模板集的设定进行介绍。具体地,语义模板集可以由工作人员预先设定,如前所述,发明人发现,无论用户的输入内容多么复杂多变,都可以将其拆分成对应不同操作指令的粒度较小的文本分段,由此,可以根据大量历史的或可能的用户输入,设定包括多个语义模板的语义模板集,用于对上述混合序列进行循环解析。
在一个实施例中,可以先确定第一服务中支持的多种操作类型。在一个具体的实施例中,该多种操作类型可以包括增加、删除、清空、更新、替换和定制套餐等。需要说明,其中清空、更新、替换和定制套餐等较为复杂的指令解析,在常规的人机交互服务中是无法实现的,而在本说明书实施例中,通过利用语义模板集进行循环解析,可以实现对这些复杂操作指令的解析。
进一步地,除确定上述多种操作类型以外,还可以根据对大量用户输入的分析,定义多个语义描述符,然后基于多个语义描述符,针对每种操作类型,设定对应的至少一个语义模板。需要说明,考虑到操作指令是围绕商品进行的,因此,定义的多个语义描述符中至少包括商品描述符,在一个具体的实施例中,该商品描述符对应于上述标记符的组合,在一个例子中,假定上述预定格式的第一标记符为T_xx,则商品描述符可以被定义为:goods=("":"<goods")T_xx{1,99}("":">"),其表示goods可以匹配1-99个T_xx。在另一个具体的实施例中,该商品描述符对应于若干第一标记符和中止符的组合,假定上述预定格式的第一标记符和中止符分别为G_xxx和_EOS_,则商品描述符可以被定义为:goods=("":"<goods")G_xxx{1,999}("":">")_EOS_,其表示goods可以匹配1-999个G_xxx,以_EOS_结束。根据一个具体的例子,针对操作类型“增加”,设定的至少一个语义模板中可以包括语义模板:add_pattern_1=goods,其中goods表示商品描述符。
在一个具体的实施例中,上述多个语义描述符中还可以包括数量描述符,对数量描述符的定义可以为:数量描述符用于匹配任意的数量词,包括阿拉伯数字1或3,或汉字形式的数字,如一或壹、三或叁等。在一个例子中,数量描述符可以表示为quantity。在另一个具体的实施例中,上述多个语义描述符中还可以包括单位描述符,对单位描述符的定义可以为:单位描述符用于匹配任意的单位词,如个、份、杯、捆、袋等等。在一个例子中,单位描述符可以表示为unit。
在又一个具体的实施例中,上述多个语义描述符中还可以包括若干操作类型描述符,具体可以包括与上述多种操作类型种每个操作类型对应的一个或多个操作类型描述符。在一个更具体的实施例中,与操作类型“增加”对应的操作类型描述符可以包括添加动词描述符(如,表示为add_verb)、添加连词描述符(如,表示为add_linker),进一步地,在一个例子中,可以将前者定义为:add_verb=“来”|“买”|“要”|“点”,其中符号“|”表示“或”,将后者定义为:add_linker=“和”|“加”|“再要”|“再来”。在另一个更具体的实施例中,与操作类型“更新”对应的操作类型描述符可以包括更新动词描述符(如,表示为update_verb)、改变动词描述符(如,表示为change_verb),进一步地,在一个例子中,可以将前者定义为:update_verb=“要”,将后者定义为:change_verb=“要换成”|要改成”。在又一个更具体的实施例中,与操作类型“删除”对应的操作类型描述符可以包括在前删除动词描述符(如,表示为delete_verb_front)、在后删除动词描述符(如,表示为delete_verb_back),进一步地,在一个例子中,可以将前者定义为:delete_verb_front=“删去”|“去掉”|“删除”,将后者定义为:delete_verb_back=“不要了”|“不想要了”|“删除”|。如此,可以定义出多个语义描述符。
基于以上定义的多个语义描述符,可以针对每种操作类型,设定对应的至少一个语义模板。在一个具体的实施例中,针对操作类型“增加”,设定的多个语义模板中可以包括:add_pattern1=add_verb quantity?unit?goods,其中add_verb表示上述增加动词描述符;quantity表示上述数量描述符,quantity?表示quantity可有可无;unit表示上述单位描述符,unit?表示unit可有可无;goods表示上述商品描述符。在一个具体的实施例中,针对操作类型“增加”,设定的多个语义模板中还可以包括:add_pattern2=goods add_linker quantity,其中goods表示上述商品描述符;add_linker表示上述添加连词描述符;quantity表示上述数量描述符。在一个具体的实施例中,针对操作类型“删除”,设定的多个语义模板中可以包括:delete_pattern1=delete_verb_front quantity?goods,其中delete_verb_front表示上述在前删除动词描述符;quantity表示上述数量描述符,quantity?表示quantity可有可无;goods表示上述商品描述符。如此,可以针对每种操作类型,定义至少一个语义模板,进而组成上述多个语义模板。
以上可以实现对语义模板集的预先设定,相应地,在本步骤中可以对预先设定的语义模板集进行获取,具体地,获取的语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符。在一个实施例中,所述语义模板集还包括对所述多个第二描述符的第二定义。在一个实施例中,上述多个语义描述符中还可以包括:若干操作类型描述符、数量描述符和单位描述符。
以上,可以获取语义模板集,接着在步骤S250,基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析。
下面以上述循环解析中的任意一次为例进行说明。具体地,其中任意一次循环解析包括,从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,并更新当前序列。
上述语义模版集中还包括对多个第二描述符的第二定义,相应地,在一个实施例中,上述从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,可以包括:基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配;将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
根据一个例子,假定上述第二定义中包括对上述若干操作类型描述符(例如,add_verb)、数量描述符(例如,quantity)和单位描述符(例如,unit)的定义,上述多个语义模版中包括与操作类型“增加”对应的语义模版:add_pattern=add_verb quantity?unit?goods,以及与操作类型“删除”对应的语义模版:delete_pattern=delete_verb_frontGoods,再假定当前序列为:买1个T_00 T_01 T_02 T_03 EOS T_04 EOS不要了,基于此,从该当前序列的头部开始,依次将买、1、个、T_00 T_01 T_02 T_03 EOS转化为add_verb、quantity、unit、goods,如此转化得到的第一语义描述符序列add_verb quantity unitgoods,与语义模版add_pattern相匹配,并将当前序列中与此第一语义描述序列对应的部分,即,买1个T_00 T_01 T_02 T_03 EOS,截取为上述序列部分。如此,可以截取出与所述多个语义模板中的某个语义模板匹配的序列部分。
进一步地,在针对多个语义描述符的定义中,存在一个词语可以被转化为不同语义描述符的情况,例如,“要”既可以被转化为更新动词描述符(如update_verb),也可以被转化为增加动词描述符(如,add_verb),相应地,在一个具体的实施例中,上述基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配,可以包括:基于所述第二定义,依次将所述当前序列中的分词或标记符分别转化为对应的若干备选语义描述符,从而得到多个语义描述符序列,该多个语义描述符序列与所述多个语义模板中的多个第二语义模板相匹配;基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列。
在一个更具体的实施例中,上述基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,可以包括:从所述多个分词子序列中,确定出包含分词数量最多的最长分词子序列,并将其对应的语义描述符序列确定为所述第一语义描述符序列。需要说明,其中多个分词子序列是从属于上述分词序列的子序列,上述分词序列是通过对输入文本进行分词处理得到。
在另一个更具体的实施例中,上述基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,可以包括:将所述多个分词子序列分别输入预先训练的关联度预测模型中,得到多个预测关联度;确定所述预测关联度中的最大值,并将其对应的分词子序列所对应的语义描述符序列,确定为所述第一语义描述符序列。需要说明,其中关联度预测模型可以根据采集的标注数据进行训练得到,对此不作赘述。如此,可以确定出第一语义描述序列,进而从当前序列中对应截取得到上述序列部分。
在另一个实施例中,上述从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,可以包括:基于所述第二定义,将所述当前序列中的各个分词或标记符转化为对应的若干备选语义描述符,得到若干备选序列,再将若干备选序列与多个语义模版进行匹配,得到若干语义描述符序列,该若干语义描述符序列与若干第二语义模板相匹配。进一步的,在若干语义描述符序列为一个的情况下,可以直接从上述当前序列中截取与之匹配的序列部分,而在若干语义描述符序列为多个的情况下,可以先基于多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出第一语义描述符序列,再从上述当前序列中截取与之匹配的序列部分。需要说明,具体还可以参见前述实施例中的相关描述。
如此,可以实现从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分。进一步地,一方面,可以至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,另一方面,可以根据该序列部并更新当前序列。
在一个实施例中,上述至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,可以包括:根据所述标记符组合所对应的原始分词,解析出商品信息;基于所述操作类型和所述商品信息,得到对应的操作指令。根据一个例子,假定该序列部分为:买T_001 T_002 EOS,其中对应于商品描述符的标记符组合为T_001 T_002 EOS,对应的原始分词为冰和可乐,由此可以解析出商品信息为:冰#可乐,再假定该某个语义模版对应的操作类型为增加,由此可以得到对应的操作指令:Add,{冰#可乐}。
在另一个实施例中,上述多个语义描述符中还包括数量描述符,相应地,上述至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,还可以包括:根据该序列部分中包含的与数量描述符对应的原始分词,确定商品数量,归入所述商品信息。
根据一个例子,假定该序列部分为:T_001 EOS去掉1个,其中对应于数量描述符的原始分词为1,并且,对应于商品描述符的标记符组合为T_001 EOS,其对应的原始分词为鸡翅,由此可以解析出商品信息为:1,鸡翅;再假定该某个语义模版对应的操作类型为删除,由此可以得到对应的操作指令:Delete,{鸡翅,1}。如此,可以确定出上述序列部分对应的操作指令。
另一方面,在一个实施例中,上述更新当前序列,可以包括:从所述当前序列中去除与所述某个语义模板匹配的序列部分,得到更新后的当前序列。在一个例子中,假定更新前的当前序列为买1个T_01 EOS T_02 EOS不要了,其中与某个语义模版匹配的序列部分为:买1个T_01 EOS,由此可以得到去除该序列部分后的当前序列为:T_02 EOS不要了。如此,可以完成对当前序列的更新。
需要说明,上述循环解析可以直到当前序列为空时结束。如此,通过一次或多次循环解析,可以解析出混合序列对应的全量的操作指令。此外,在解析出操作指令之后,所述方法还可以包括:执行该操作指令。在一个实施例中,可以在上述任意一次循环解析中,解析出操作指令后,即执行该指令。在另一个实施例中,还可以针对当前序列的循环解析全部结束后,再批量执行解析出的操作指令。
根据一个具体的实施例,上述第一服务为点餐服务,相应地,在得到任意一次循环解析中解析出的操作指令之后,所述方法还可以包括:基于该操作指令,更新用户已选商品或已点餐品。在一个例子中,用户通过客户端使用第一服务,相应地,可以在该客户端的界面中,对已选商品或已点餐品进行更新显示,例如,根据操作指令,将汉堡套餐中的可乐替换为奶茶。
根据另一个具体的实施例,上述第一服务为购物服务,相应地,在得到任意一次循环解析中解析出的操作指令之后,所述方法还可以包括:基于该操作指令,更新用户购物车。在一个例子中,用户通过客户端使用第一服务,相应地,可以在该客户端的界面中,对购物车中的商品进行更新显示,例如,根据操作指令,将口罩的数量由1修改为10。如此,可以实现执行解析出的操作指令。
综上,采用本说明书实施例中披露的针对用户操作指令的解析方法,可以从复杂多变的用户输入中,全面、精准、高效地解析出全量的用户操作指令,使得用户可以在人机交互中,灵活、自由地进行语音输入,从而大大提高用户体验。
下面再结合一个具体的例子,对上述解析方法进行说明。具体地,图3示出根据一个实施例的客户端和服务端的交互示意图,如图3所示,其中包括以下交互步骤:
步骤S301,客户端接收用户的语音输入。
步骤S302,客户端对语音输入进行识别,得到输入文本。
在一个例子中,得到的输入文本为:
“要一辣汉堡一可乐加冰汉堡不要了”。
步骤S303,客户端向服务端发送输入文本。
步骤S304,服务端对输入文本进行分词处理,得到分词序列。
在一个例子中,得到的分词序列为:
“要一辣汉堡一可乐加冰汉堡不要了”。
步骤S305,将分词序列转换为对应的混合序列。
在一个例子中,得到的混合序列为:
“要一T_01 T_02 EOS一T_03 EOS加T_04 EOS T_05 EOS不要了”。
步骤S306,基于预先设定的语义模板集,对初始为混合序列的当前序列进行循环解析,得到若干操作指令,并且,在步骤S307,将若干操作指令发送给客户端,以使客户端执行该若干操作指令。
在一个例子中,假定混合序列为:
“要一T_01 T_02 EOS一T_03 EOS加T_04 EOS T_05 EOS不要了”。对以其为初始内容的当前序列进行的多轮次循环解析,具体可以包括:
第一轮解析:
基于对多个语义描述符的第二定义,依次将当前序列中的“要”、“一”、“T_01 T_02EOS”转化为对应的语义描述符:add_verb、quantity和goods,由此得到的描述符序列“add_verb quantity goods”与多个语义模版中的“add_pattern1=add_verb quantity?unit?goods”相匹配,并且,此语义模版对应的操作类型为增加。由此,根据当前序列中与该语义模版对应的序列部分“要一T_01 T_02 EOS”,可以解析出商品信息,包括与quantity对应的商品数量“1”,以及与T_01 T_02对应的原始分词“辣”和“汉堡”,进一步地,根据操作类型和商品信息,可以得到解析出的操作指令为:Add,{辣#汉堡,1},进一步地,可以在客户端界面显示的购物餐车中添加一个辣汉堡。
同时,得到更新后的当前序列为:
“一T_03 EOS加T_04 EOS T_05 EOS不要了”。
第二轮解析:
基于对多个语义描述符的第二定义,依次将当前序列中的“一”、“T_03 EOS”转化为对应的语义描述符:quantity和goods,由此得到的描述符序列“quantity goods”与多个语义模版中的“add_pattern2=quantity?goods”相匹配,并且,此语义模版对应的操作类型为增加。由此,根据当前序列中与该语义模版对应的序列部分“一T_03 EOS”,可以解析出商品信息,包括与quantity对应的商品数量“1”,以及与T_03对应的原始分词“可乐”,进一步地,根据操作类型和商品信息,可以得到解析出的操作指令为:Add,{可乐,1},进一步地,可以在客户端界面显示的购物餐车中添加一个可乐。
同时,得到更新后的当前序列为:
“加T_04 EOS T_05 EOS不要了”。
第三轮解析:
基于对多个语义描述符的第二定义,依次将当前序列中的“加”、“T_04 EOS”转化为对应的语义描述符:update_verb和goods,由此得到的描述符序列“update_verb goods”与多个语义模版中的“update_pattern1=update_verb goods”相匹配,并且,此语义模版对应的操作类型为更新。由此,根据当前序列中与该语义模版对应的序列部分“加T_04EOS”,可以解析出商品信息,包括与T_04对应的原始分词“冰”,进一步地,根据操作类型和商品信息,可以得到解析出的操作指令为:Update,{可乐,冰},进一步地,可以将购物餐车中的可乐更新为可乐(加冰)。
同时,得到更新后的当前序列为:
“T_05 EOS不要了”。
第四轮解析:
基于对多个语义描述符的第二定义,依次将当前序列中的“T_05 EOS”、“不要了”转化为对应的语义描述符:goods和delete_verb_back,由此得到的描述符序列“goodsdelete_verb_back”与多个语义模版中的“delete_pattern1=goods delete_verb_back”相匹配,并且,此语义模版对应的操作类型为删除。由此,根据当前序列中与该语义模版对应的序列部分“T_05 EOS不要了”,可以解析出商品信息,包括与T_05对应的原始分词“汉堡”,进一步地,根据操作类型和商品信息,可以得到解析出的操作指令为:Delete,{汉堡},进一步地,可以将购物餐车中的汉堡进行删除。
同时,得到更新后的当前序列为空,据此结束对当前序列的解析。
由上可知,采用本说明书实施例中披露的针对用户操作指令的解析方法,可以从用户口语化,句式多变的输入内容中,全面、精准、高效地解析出全量的用户操作指令。
与上述解析方法相对应的,本说明书实施例还提供一种解析装置。具体地,图4示出根据一个实施例的针对用户操作指令的解析装置结构图,所述装置可以通过任何具有计算能力的计算平台或服务器集群等实现,在一个实施例中,所述装置还可以集成于上述服务端。
如图4所示,所述装置4000包括:
文本获取模块4100,配置为获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入。文本分词模块4200,配置为对所述输入文本进行分词处理,得到多个分词,组成分词序列。序列转化模块4300,配置为将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列。模板集获取模块4400,配置为获取预先设定的语义模板集,所述语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符。循环解析模块4500,配置为基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析;其中循环解析模块具体包括:序列匹配单元4510,配置为从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分;指令确定单元4520,配置为至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令;序列更新单元4530,配置为更新当前序列。
在一个实施例中,所述第一服务为点餐服务或购物服务,所述装置400还包括:购物车更新模块4600,配置为基于所述操作指令,更新用户的已点商品或购物车。
在一个实施例中,文本获取模块4100具体配置为:获取所述用户语音输入;对所述用户语音输入进行语音识别,得到所述输入文本。
在一个实施例中,所述标记符包括表示商品描述词的第一标记符;所述序列转化模块4300具体配置为:利用商品描述词集合,对所述多个分词进行匹配,得到若干匹配词,其中商品描述词集合基于所述第一服务中可提供的多种商品而预先确定;将所述分词序列中的所述若干匹配词分别转化为所述第一标记符。
在一个具体的实施例中,所述标记符还包括用于指示对单品描述中止的中止符;所述序列转化模块4300具体包括:关联判断单元4310,配置为判断所述分词序列中相邻的两个分词之间是否存在关联;中止符添加单元4320,配置为在判断出所述两个分词之间不存在关联的情况下,在所述两个分词对应的两个第一标记符之间添加所述中止符;其中,所述商品描述符对应于若干第一标记符和所述中止符的组合。
在一个更具体的实施例中,所述关联判断单元4310具体配置为:基于预先确定的对应于多种商品的多个商品描述词子集,判断所述两个分词是否存在于同一商品描述词子集中;如果所述两个分词未存在于同一商品描述词子集中,则判断出所述两个分词之间不存在关联。
在一个更具体的实施例中,所述关联判断单元4310具体配置为:基于预先建立的商品描述词和描述类别标签之间的映射关系,确定所述两个分词对应的两个描述类别标签;基于预先设定的标签关联规则,确定所述两个描述类别标签之间是否存在关联;如果所述两个描述类别标签之间不存在关联,则判断出所述两个分词之间不存在关联。
在一个例子中,所述映射关系基于多个商品描述词和多个描述类别标签而预先建立,其中多个描述类别标签包括以下中的至少一个:商品种类、商品属性、商品常用名。
在一个实施例中,所述多个语义描述符还包括以下中的至少一项:若干种操作类型描述符,数量描述符,单位描述符。
在一个实施例中,所述语义模板集还包括对所述多个第二描述符的第二定义;所述序列匹配单元4510具体配置为:基于所述第二定义,从当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配;将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
在一个具体的实施例中,所述序列匹配单元4510具体包括:匹配子单元4511,配置为基于所述第二定义,依次将所述当前序列中的分词或标记符分别转化为对应的若干备选语义描述符,从而得到多个语义描述符序列,该多个语义描述符序列与所述多个语义模板中的多个第二语义模板相匹配;确定子单元4512,配置为基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列;截取子单元4513,配置为将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
在一个具体的实施例中,所述确定子单元4512具体配置为:从所述多个分词子序列中,确定出包含分词数量最多的最长分词子序列,并将其对应的语义描述符序列确定为所述第一语义描述符序列。
在另一个具体的实施例中,所述确定子单元4512具体配置为:将所述多个分词子序列分别输入预先训练的关联度预测模型中,得到多个预测关联度;确定所述预测关联度中的最大值,并将其对应的分词子序列所对应的语义描述符序列,确定为所述第一语义描述符序列。
在一个实施例中,指令确定单元4520具体包括:解析子单元4521,配置为至少根据所述标记符组合所对应的原始分词,解析出商品信息;处理子单元4522,配置为基于所述操作类型和所述商品信息,得到对应的操作指令。
在一个具体的实施例中,所述多个语义描述符中还包括数量描述符;所述解析子单元4521还配置为:根据该序列部分中包含的与数量描述符对应的原始分词,确定商品数量,归入所述商品信息。
在一个实施例中,所述序列更新单元4530具体配置为:从所述当前序列中去除与所述某个语义模板匹配的序列部分,得到更新后的当前序列。
综上,采用本说明书实施例中披露的针对用户操作指令的解析装置,可以从用户口语化,句式多变的输入内容中,全面、精准、高效地解析出全量的用户操作指令。
如上,根据又一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图3所描述的方法。
根据又一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图3所描述的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本说明书披露的多个实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。
以上所述的具体实施方式,对本说明书披露的多个实施例的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本说明书披露的多个实施例的具体实施方式而已,并不用于限定本说明书披露的多个实施例的保护范围,凡在本说明书披露的多个实施例的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本说明书披露的多个实施例的保护范围之内。
Claims (34)
1.一种针对用户操作指令的解析方法,包括:
获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入;
对所述输入文本进行分词处理,得到多个分词,组成分词序列;
将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列;
获取预先设定的语义模板集,所述语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符;
基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析;其中任意一次循环解析包括,从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,并更新当前序列。
2.根据权利要求1所述的方法,其中,所述第一服务为点餐服务或购物服务,在得到解析出的操作指令之后,所述方法还包括:
基于所述操作指令,更新用户的已点商品或购物车。
3.根据权利要求1所述的方法,其中,获取输入文本,包括:
获取所述用户语音输入;
对所述用户语音输入进行语音识别,得到所述输入文本。
4.根据权利要求1所述的方法,其中,所述标记符包括表示商品描述词的第一标记符;
将所述分词序列中,与所述第一服务中的商品描述相关的若干分词转化为预定格式的标记符,包括:
利用商品描述词集合,对所述多个分词进行匹配,得到若干匹配词,其中商品描述词集合基于所述第一服务中可提供的多种商品而预先确定;
将所述分词序列中的所述若干匹配词分别转化为所述第一标记符。
5.根据权利要求4所述的方法,其中,所述标记符还包括用于指示对单品描述中止的中止符;将所述分词序列中,与所述第一服务中的商品描述相关的若干分词转化为预定格式的标记符,还包括:
判断所述分词序列中相邻的两个分词之间是否存在关联;
在判断出所述两个分词之间不存在关联的情况下,在所述两个分词对应的两个第一标记符之间添加所述中止符;
其中,所述商品描述符对应于若干第一标记符和所述中止符的组合。
6.根据权利要求5所述的方法,其中,判断所述两个分词之间是否存在关联,包括:
基于预先确定的对应于多种商品的多个商品描述词子集,判断所述两个分词是否存在于同一商品描述词子集中;
如果所述两个分词未存在于同一商品描述词子集中,则判断出所述两个分词之间不存在关联。
7.根据权利要求5所述的方法,其中,判断所述两个分词之间是否存在关联,包括:
基于预先建立的商品描述词和描述类别标签之间的映射关系,确定所述两个分词对应的两个描述类别标签;
基于预先设定的标签关联规则,确定所述两个描述类别标签之间是否存在关联;
如果所述两个描述类别标签之间不存在关联,则判断出所述两个分词之间不存在关联。
8.根据权利要求7所述的方法,其中,所述映射关系基于多个商品描述词和多个描述类别标签而预先建立,其中多个描述类别标签包括以下中的至少一个:商品种类、商品属性、商品常用名。
9.根据权利要求1所述的方法,其中,所述多个语义描述符还包括以下中的至少一项:若干种操作类型描述符,数量描述符,单位描述符。
10.根据权利要求1所述的方法,其中,所述语义模板集还包括对所述多个语义描述符的第二定义;
所述从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分,包括:
基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配;
将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
11.根据权利要求10所述的方法,其中,基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配,包括:
基于所述第二定义,依次将所述当前序列中的分词或标记符分别转化为对应的若干备选语义描述符,从而得到多个语义描述符序列,该多个语义描述符序列与所述多个语义模板中的多个第二语义模板相匹配;
基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列。
12.根据权利要求11所述的方法,其中,基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,包括:
从所述多个分词子序列中,确定出包含分词数量最多的最长分词子序列,并将其对应的语义描述符序列确定为所述第一语义描述符序列。
13.根据权利要求11所述的方法,其中,基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列,包括:
将所述多个分词子序列分别输入预先训练的关联度预测模型中,得到多个预测关联度;
确定所述预测关联度中的最大值,并将其对应的分词子序列所对应的语义描述符序列,确定为所述第一语义描述符序列。
14.根据权利要求1所述的方法,其中,至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令,包括:
至少根据所述标记符组合所对应的原始分词,解析出商品信息;
基于所述操作类型和所述商品信息,得到对应的操作指令。
15.根据权利要求14所述的方法,其中,所述多个语义描述符中还包括数量描述符;至少根据所述标记符组合所对应的原始分词,解析出商品信息,还包括:
根据该序列部分中包含的与数量描述符对应的原始分词,确定商品数量,归入所述商品信息。
16.根据权利要求1所述的方法,其中,更新当前序列,包括:
从所述当前序列中去除与所述某个语义模板匹配的序列部分,得到更新后的当前序列。
17.一种针对用户操作指令的解析装置,包括:
文本获取模块,配置为获取输入文本,其对应于在提供第一服务的过程中接收的用户语音输入;
文本分词模块,配置为对所述输入文本进行分词处理,得到多个分词,组成分词序列;
序列转化模块,配置为将所述分词序列中,与所述第一服务中的商品描述相关的若干分词分别转化为预定格式的标记符,得到包括分词和标记符的混合序列;
模板集获取模块,配置为获取预先设定的语义模板集,所述语义模板集包括对多个语义模板的第一定义,每个语义模板包括多个语义描述符的预定组合排列,且对应于一种操作类型;所述多个语义描述符包括对应于所述标记符的组合的商品描述符;
循环解析模块,配置为基于所述语义模板集,对初始为所述混合序列的当前序列进行循环解析;其中循环解析模块具体包括:
序列匹配单元,配置为从当前序列头部开始,截取出与所述多个语义模板中的某个语义模板匹配的序列部分;
指令确定单元,配置为至少根据该某个语义模板对应的操作类型和该序列部分中对应于商品描述符的标记符组合,得到解析出的操作指令;
序列更新单元,配置为更新当前序列。
18.根据权利要求17所述的装置,其中,所述第一服务为点餐服务或购物服务,所述装置还包括:
购物车更新模块,配置为基于所述操作指令,更新用户的已点商品或购物车。
19.根据权利要求17所述的装置,其中,文本获取模块具体配置为:
获取所述用户语音输入;
对所述用户语音输入进行语音识别,得到所述输入文本。
20.根据权利要求17所述的装置,其中,所述标记符包括表示商品描述词的第一标记符;
所述序列转化模块具体配置为:
利用商品描述词集合,对所述多个分词进行匹配,得到若干匹配词,其中商品描述词集合基于所述第一服务中可提供的多种商品而预先确定;
将所述分词序列中的所述若干匹配词分别转化为所述第一标记符。
21.根据权利要求20所述的装置,其中,所述标记符还包括用于指示对单品描述中止的中止符;所述序列转化模块具体包括:
关联判断单元,配置为判断所述分词序列中相邻的两个分词之间是否存在关联;
中止符添加单元,配置为在判断出所述两个分词之间不存在关联的情况下,在所述两个分词对应的两个第一标记符之间添加所述中止符;
其中,所述商品描述符对应于若干第一标记符和所述中止符的组合。
22.根据权利要求21所述的装置,其中,所述关联判断单元具体配置为:
基于预先确定的对应于多种商品的多个商品描述词子集,判断所述两个分词是否存在于同一商品描述词子集中;
如果所述两个分词未存在于同一商品描述词子集中,则判断出所述两个分词之间不存在关联。
23.根据权利要求21所述的装置,其中,所述关联判断单元具体配置为:基于预先建立的商品描述词和描述类别标签之间的映射关系,确定所述两个分词对应的两个描述类别标签;
基于预先设定的标签关联规则,确定所述两个描述类别标签之间是否存在关联;
如果所述两个描述类别标签之间不存在关联,则判断出所述两个分词之间不存在关联。
24.根据权利要求23所述的装置,其中,所述映射关系基于多个商品描述词和多个描述类别标签而预先建立,其中多个描述类别标签包括以下中的至少一个:商品种类、商品属性、商品常用名。
25.根据权利要求17所述的装置,其中,所述多个语义描述符还包括以下中的至少一项:若干种操作类型描述符,数量描述符,单位描述符。
26.根据权利要求17所述的装置,其中,所述语义模板集还包括对所述多个语义描述符的第二定义;
所述序列匹配单元具体配置为:
基于所述第二定义,从所述当前序列头部开始,依次将各个分词或标记符转化为对应的语义描述符,使得转化得到的第一语义描述符序列,与所述多个语义模板中的第一语义模板相匹配;
将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
27.根据权利要求26所述的装置,其中,所述序列匹配单元具体包括:
匹配子单元,配置为基于所述第二定义,依次将所述当前序列中的分词或标记符分别转化为对应的若干备选语义描述符,从而得到多个语义描述符序列,该多个语义描述符序列与所述多个语义模板中的多个第二语义模板相匹配;
确定子单元,配置为基于所述多个语义描述符序列所对应的多个分词子序列,从所述多个语义描述符序列中确定出所述第一语义描述符序列;
截取子单元,配置为将当前序列中与所述第一语义描述符序列对应的部分截取为所述序列部分。
28.根据权利要求27所述的装置,其中,所述确定子单元具体配置为:
从所述多个分词子序列中,确定出包含分词数量最多的最长分词子序列,并将其对应的语义描述符序列确定为所述第一语义描述符序列。
29.根据权利要求27所述的装置,其中,所述确定子单元具体配置为:
将所述多个分词子序列分别输入预先训练的关联度预测模型中,得到多个预测关联度;
确定所述预测关联度中的最大值,并将其对应的分词子序列所对应的语义描述符序列,确定为所述第一语义描述符序列。
30.根据权利要求17所述的装置,其中,指令确定单元具体包括:
解析子单元,配置为至少根据所述标记符组合所对应的原始分词,解析出商品信息;
处理子单元,配置为基于所述操作类型和所述商品信息,得到对应的操作指令。
31.根据权利要求30所述的装置,其中,所述多个语义描述符中还包括数量描述符;所述解析子单元还配置为:
根据该序列部分中包含的与数量描述符对应的原始分词,确定商品数量,归入所述商品信息。
32.根据权利要求17所述的装置,其中,所述序列更新单元具体配置为:
从所述当前序列中去除与所述某个语义模板匹配的序列部分,得到更新后的当前序列。
33.一种计算机可读存储介质,其上存储有计算机程序,其中,当所述计算机程序在计算机中执行时,令计算机执行权利要求1-16中任一项的所述的方法。
34.一种计算设备,包括存储器和处理器,其中,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现权利要求1-16中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120906.2A CN111353292B (zh) | 2020-02-26 | 2020-02-26 | 针对用户操作指令的解析方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010120906.2A CN111353292B (zh) | 2020-02-26 | 2020-02-26 | 针对用户操作指令的解析方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111353292A CN111353292A (zh) | 2020-06-30 |
CN111353292B true CN111353292B (zh) | 2023-06-16 |
Family
ID=71192463
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010120906.2A Active CN111353292B (zh) | 2020-02-26 | 2020-02-26 | 针对用户操作指令的解析方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111353292B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112581959B (zh) * | 2020-12-15 | 2023-05-09 | 四川虹美智能科技有限公司 | 智能设备控制方法、系统和语音服务器 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138575A (zh) * | 2015-07-29 | 2015-12-09 | 百度在线网络技术(北京)有限公司 | 语音文本串的解析方法和装置 |
CN106057196A (zh) * | 2016-07-08 | 2016-10-26 | 成都之达科技有限公司 | 车载语音数据解析识别方法 |
CN106469184A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 数据对象标签处理、显示方法及服务器和客户端 |
CN107315739A (zh) * | 2017-07-12 | 2017-11-03 | 安徽博约信息科技股份有限公司 | 一种语义分析方法 |
CN110457447A (zh) * | 2019-05-15 | 2019-11-15 | 国网浙江省电力有限公司电力科学研究院 | 一种电网任务型对话系统 |
CN110688859A (zh) * | 2019-09-18 | 2020-01-14 | 平安科技(深圳)有限公司 | 基于机器学习的语义解析方法、装置、介质及电子设备 |
-
2020
- 2020-02-26 CN CN202010120906.2A patent/CN111353292B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105138575A (zh) * | 2015-07-29 | 2015-12-09 | 百度在线网络技术(北京)有限公司 | 语音文本串的解析方法和装置 |
CN106469184A (zh) * | 2015-08-20 | 2017-03-01 | 阿里巴巴集团控股有限公司 | 数据对象标签处理、显示方法及服务器和客户端 |
CN106057196A (zh) * | 2016-07-08 | 2016-10-26 | 成都之达科技有限公司 | 车载语音数据解析识别方法 |
CN107315739A (zh) * | 2017-07-12 | 2017-11-03 | 安徽博约信息科技股份有限公司 | 一种语义分析方法 |
CN110457447A (zh) * | 2019-05-15 | 2019-11-15 | 国网浙江省电力有限公司电力科学研究院 | 一种电网任务型对话系统 |
CN110688859A (zh) * | 2019-09-18 | 2020-01-14 | 平安科技(深圳)有限公司 | 基于机器学习的语义解析方法、装置、介质及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111353292A (zh) | 2020-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108805594B (zh) | 信息推送方法和装置 | |
US9245012B2 (en) | Information classification system, information processing apparatus, information classification method and program | |
US10042880B1 (en) | Automated identification of start-of-reading location for ebooks | |
US11640427B2 (en) | Method and system for recommending video | |
CN109451147B (zh) | 一种信息展示方法及装置 | |
CN111651996A (zh) | 摘要生成方法、装置、电子设备及存储介质 | |
CN110489649B (zh) | 标签关联内容的方法及装置 | |
CN107729453B (zh) | 一种提取中心产品词的方法和装置 | |
CN110110577A (zh) | 识别菜名的方法及装置、存储介质、电子装置 | |
CN112907333A (zh) | 基于区块链的智能匹配方法、装置、设备及存储介质 | |
US20190066659A1 (en) | Dialogue control system and dialogue control method | |
CN113051380A (zh) | 信息生成方法、装置、电子设备和存储介质 | |
CN111353292B (zh) | 针对用户操作指令的解析方法及装置 | |
US11636267B2 (en) | Methods and apparatus to generate textual data using machine learning processes | |
CN107688600B (zh) | 知识点挖掘方法及装置 | |
CN112417210A (zh) | 健身视频的查询方法、装置、终端和存储介质 | |
CN114743012B (zh) | 一种文本识别方法及装置 | |
CN113672700B (zh) | 内容项的搜索方法、装置、电子设备以及存储介质 | |
CN114254109B (zh) | 用于确定行业类别的方法及装置 | |
CN110705308A (zh) | 语音信息的领域识别方法、装置、存储介质及电子设备 | |
JPH10340275A (ja) | 情報抽出装置 | |
CN111144122A (zh) | 评价处理方法、装置和计算机系统及介质 | |
US11941362B2 (en) | Systems and methods of artificially intelligent sentiment analysis | |
CN114372466A (zh) | 别名实体识别方法、装置、计算机设备、介质及程序产品 | |
JP6979902B2 (ja) | 情報処理装置、情報処理方法、およびプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |