一种基于上下文关联的智能语义匹配方法与流程

文档序号:18060250发布日期:2019-07-03 03:02阅读:718来源:国知局
一种基于上下文关联的智能语义匹配方法与流程

本发明涉及数据处理技术领域,尤其涉及一种基于上下文关联的智能语义匹配方法。



背景技术:

自然语言处理(naturallanguageprocessing,nlp)是人工智能中最为困难的问题之一,而对自然语言处理的研究也是充满挑战的。通常,用户输入的自然语言是用户根据自己大脑中的逻辑形成的,由于语言习惯,语言在形成时可能会隐去一些关键词语。例如,用户输入“我想查北京的天气”,则语义处理系统可以根据该语句输出相应的结果,而当用户再次输入“那天津呢”,因为语句中缺少相应的主语和谓语,因此语义处理系统无法只根据“那天津呢”确定用户的目的,导致语义处理系统无法根据该语句输出相应的结果。因此,如何确定一个残缺语句的语义,从而得到与用户语句语义相对应的答案,成为了本领域的难点之一。



技术实现要素:

本发明的目的是针对现有技术的缺陷,提供一种基于上下文关联的智能语义匹配方法,在当前语句数据缺少解析所需要素的情况下,从上一语句文字数据或下一语句文字数据中提取与当前所缺要素相对应的信息,通过关联上下文的方式确定当前语句数据的语义匹配结果,实现了确定残缺语句的语义,从而得到与用户语句语义相对应的答案。

为实现上述目的,本发明提供了一种基于上下文关联的智能语义匹配方法,所述方法包括:

语义处理系统接收语句数据,对所述语句数据进行语音识别,得到当前语句文字数据;

对所述当前语句文字数据进行句式泛化处理,提取所述当前语句文字数据中的固定语信息和泛化对象信息;

确定所述当前语句文字数据中的固定语信息或所述当前语句文字数据中的泛化对象信息是否为空;

当所述当前语句文字数据中的固定语信息为空时,获取上一语句文字数据中的固定语信息,并根据所述上一语句文字数据中的固定语信息和所述当前语句文字数据中的泛化对象信息生成新的语句文字数据;

当所述当前语句文字数据中的泛化对象信息为空时,生成引导语句数据,并输出;

接收用户根据所述引导语句数据输入的补充语句数据,并提取所述补充语句数据中的泛化对象信息;

根据所述补充语句数据中的泛化对象信息和当前语句文字数据中的所述固定语信息生成新的语句文字数据;

解析所述新的语句文字数据,得到语义匹配结果数据,并输出所述语义匹配结果数据。

优选的,所述语句数据包括语句语音数据和语句文字数据;所述语义处理系统接收语句数据,对所述语句数据进行语音识别,得到当前语句文字数据具体为:

所述语义处理系统的语音转换器接收所述语句数据,对所述语句数据中的语句语音数据进行识别,得到所述语句语音数据的语句文字数据,并将所述语句语音数据的语句文字数据插入所述语义处理系统的输入队列的末尾;

所述语义处理系统的轮询器监听所述输入队列的数据插入,从所述输入队列中获取所述输入队列末尾的语句文字数据,得到所述当前语句文字数据。

进一步优选的,所述获取上一语句文字数据中的固定语信息具体为:

从所述输入队列中获取上一语句文字数据;

对所述上一语句文字数据进行句式泛化处理,提取所述上一语句文字数据中的固定语信息。

优选的,所述获取上一语句文字数据中的固定语信息具体为:

从所述语义处理系统中的缓存器中获取上一语句文字数据中的固定语信息。

优选的,在所述获取上一语句文字数据中的固定语信息之后,所述方法还包括:

将所述上一语句文字数据中的固定语信息代入当前语句文字数据进行校验;

如果校验通过,则根据所述上一语句文字数据中的固定语信息和当前语句文字数据中的泛化对象信息,生成所述新的语句文字数据。

进一步优选的,如果校验不通过,所述方法还包括:

生成引导语句数据,并输出,用以用户根据所述引导语句数据输入补充语句数据。

优选的,当所述泛化对象信息为空时,在所述生成引导语句数据,并输出之前,所述方法还包括:

获取上一语句文字数据中的泛化对象信息,并根据所述上一语句文字数据中的泛化对象信息和所述当前语句文字数据中的固定语信息得到新的语句文字数据。

进一步优选的,在所述获取上一语句文字数据中的泛化对象信息之后,所述方法还包括:

将所述上一语句文字数据中的泛化对象信息代入当前语句文字数据进行校验;

如果校验通过,则根据所述上一语句文字数据中的泛化对象信息和当前语句文字数据中的固定语信息生成所述新的语句文字数据;

如果校验不通过,则生成所述引导语句数据,并输出。

优选的,在所述提取所述补充语句数据中的泛化对象信息之后,所述方法还包括:

将所述补充语句数据中的泛化对象信息代入当前语句文字数据进行校验;

如果校验通过,则根据所述补充语句数据中的泛化对象信息和当前语句文字数据中的固定语信息生成所述新的语句文字数据;

如果校验不通过,则生成所述引导语句数据,并输出。

本发明实施例提供的基于上下文关联的智能语义匹配方法,在当前语句数据缺少解析所需要素的情况下,从上一语句文字数据或下一语句文字数据中提取与当前所缺要素相对应的信息,通过关联上下文的方式确定当前语句数据的语义匹配结果,实现了确定残缺语句的语义,从而得到与用户语句语义相对应的答案。

附图说明

图1为本发明实施例提供的基于上下文关联的智能语义匹配方法的流程图。

具体实施方式

下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。

本发明实施例提供的一种基于上下文关联的智能语义匹配方法,用于语义处理系统通过关联上下文的方法,对接收到的残缺语句进行语义补完,从而根据补完结果输出相应的语句匹配结果。其方法流程图如图1所示,包括如下步骤:

步骤101,接收语句数据,得到当前语句文字数据;

具体的,语义处理系统可以理解为一个具有语句输入、处理和输出功能的系统。语义处理系统包括语音转换器、输入队列、轮询器、缓存器和处理器。当语义处理系统启动时,系统输出页面中配置的监听器被启动,该监听器会加载用于语音服务的配置文件、域(domain)类以及domain对应的用户配置文件、语义处理系统特定情况的输出语句,同时启动语音转换器、输入队列、轮询器、缓存器和处理器。

语句数据包括语句语音数据和语句文字数据。也就是说,用户可以通过语音或文字的方式向系统输入语句数据。语音转换器接收语句数据,对语句数据中的语句语音数据进行识别,得到语句语音数据的语句文字数据,并将语句语音数据的语句文字数据或直接将用户输入的语句文字数据插入语义处理系统的输入队列的末尾。

轮询器会一直监听输入队列是否有新的消息,也就是监听是否有语句文字数据进入队列,并从输入队列中获取输入队列末尾的语句文字数据,从而得到当前语句文字数据。

步骤102,对当前语句文字数据进行句式泛化处理,提取语句文字数据中的固定语信息和泛化对象信息;

具体的,在轮询器获取到当前语句文字数据后,轮询器将当前语句文字数据发送至处理器。处理器根据语法规则树对语句数据进行句式泛化处理,提取语句数据中的固定语信息和泛化对象信息。句式泛化处理可以理解为根据语法规则树通过一个语句扩展到多种语句的表达形式,并提取语句中关键要素的过程。在这个过程中,提取出语句中关键要素包括固定语信息和泛化对象信息。例如,在一个“我想去电影院”的句子中,“我想去”是固定语信息,是句式的一部分,“电影院”是泛化对象信息;再如,在一个“我想买电影票”的句子中,“我想买”是固定语信息,“电影票”是泛化对象信息。

在一个具体的例子中,用户通过语音输入了“我想去电影院”的语句语音数据,语音转化器对该语句语音数据进行语音识别处理,得到了“我想去电影院”的语句文字数据。然后语义处理系统中的处理器先识别到“去”,然后进一步向前识别到“想去”进而识别到“我想去……”的句式,并根据预设的语法规则树中“去”-“想去”-“我想去”的句式,提取语句数据中的固定语信息“我想去”,以及“我想去”之后的词语“电影院”作为泛化对象信息。

可以理解的是,一个语句文字数据可能对应一个固定语信息和一个泛化对象信息,也可能对应多个固定语信息和多个泛化对象信息,但在一个正常的语句文字数据中,每个固定语信息应至少对应有一个泛化对象信息。

在一些优选的实施例中,语法规则树也可以是经过模型训练得到的。进一步具体的,语义处理系统采集多个语句文字数据作为样本,并多个语句文字数据进行训练,得到句式解析模型,根据句式解析模型得到语法规则树,从而实现根据语法规则树对语句文字数据进行句式泛化处理。

步骤103,确定当前语句文字数据中的固定语信息是否为空;

具体的,当当前语句文字数据中的固定语信息或泛化对象信息为空时,说明当前语句文字数据所代表的句子是一个语义残缺的句子,语义处理系统无法直接根据当前语句文字数据得到语句的匹配结果。例如,一个内容为“天津呢”的语句数据,其固定语信息为空,泛化对象信息为“天津”,另一个内容为“我要订票”的语句数据,其固定语信息为“订票”,泛化对象信息为空,在这两个语句中,语音处理系统均无法直接根据当前语句文字数据确定其语义。

这里,步骤103和步骤105的判断分别为确定当前语句文字数据中的固定语信息是否为空的步骤和确定当前语句文字数据中的泛化对象信息是否为空的步骤,可以理解的是,用户可以根据需要设置步骤103和步骤105的先后顺序。

在本步骤103中,当从当前语句数据中提取到的固定语信息为空时,执行下述步骤104;当从当前语句数据中提取到的固定语信息不为空时,则执行下述步骤105,也就是还需要确定当前语句文字数据中的泛化对象信息是否为空。

步骤104,获取上一语句文字数据中的固定语信息;

具体的,当当前语句文字数据中的固定语信息为空时,获取上一语句文字数据中的固定语信息的方式可以包括以下两种。

在第一种方式中,处理器从输入队列中获取上一语句文字数据,然后对上一语句文字数据进行句式泛化处理,提取上一语句文字数据中的固定语信息。在此过程中,由于输入队列中不保存历史语句数据中的固定语信息,因此如果需要获取上一语句文字数据中的固定语信息,则需要在获取到上一语句文字数据后,再对上一语句文字数据进行解析,提取上一语句文字数据中的固定语信息。

在第二种方式中,处理器可以通过缓存模块获取上一语句文字数据的固定语信息。也就是说,如果需要获取上一语句文字数据中的固定语信息,则可以直接从缓存模块中获取上一语句文字数据中的固定语信息即可,而无需在对上一语句文字数据进行解析。用户可以根据需要选择上述两种方式。

在执行了步骤104后,需要执行下述步骤107。

步骤105,确定当前语句文字数据中的泛化对象信息是否为空;

具体的,如果处理器确定了当前语句文字数据中的固定语信息不为空,还需要确定当前语句文字数据中的泛化对象信息是否为空。当当前语句文字数据中的固定语信息不为空,且当前语句数据中提取到的泛化对象信息为空时,执行下述步骤106;当当前语句文字数据中的固定语信息不为空,且当前语句数据中提取到的泛化对象信息也不为空时,说明当前语句文字数据是一条完整的句子,可以直接对其进行下一步的处理,则直接执行步骤110。

步骤106,提取用户输入的补充语句数据中的泛化对象信息;

具体的,当当前语句文字数据中的固定语信息不为空,且当前语句数据中提取到的泛化对象信息为空时,处理器生成并输出引导语句数据,用以提示用户补充输入当前语句数据中为空的固定语信息或泛化对象信息。然后处理器接收用户根据引导语句数据输入的补充语句数据并提取补充语句数据中的泛化对象信息。此时,补充语句数据可以理解为当前语句文字数据的下一语句文字数据。提取方法可以参照上述步骤102。

优选的,引导语句数据是处理器根据当前语句文字数据中的固定语信息,并结合预设提问句式生成的,在一个具体的例子中,语句数据为“我要订票”,其固定语信息为“订票”,泛化对象信息为空,则语义处理系统根据不为空的固定语信息为“订票”,结合“‘请问需要’+动词+‘什么’+名词”的预设提问句式,生成“请问需要订什么票”的引导语句数据,并输出。输出方式可以包括语音提示和/或文字提示。

在另一些实施例中,在处理器生成并输出引导语句数据之前,处理器先获取上一语句文字数据中的泛化对象信息,将上一语句文字数据中的泛化对象信息代入当前语句文字数据进行校验;如果校验通过,则根据上一语句文字数据中的泛化对象信息和当前语句文字数据中的固定语信息生成新的语句数据。如果校验不通过,则生成引导语句数据,并输出。这里的校验过程在下述步骤107中有详细说明。

步骤107,对新的固定语信息或新的泛化对象信息进行校验,确定校验是否通过;

具体的,这里,新的固定语信息包括:处理器获取到的上一语句文字数据中的固定语信息,以及处理器获取到的补充语句数据中的固定语信息。新的泛化对象信息包括:处理器获取到的上一语句文字数据中的泛化对象信息,以及处理器获取到的补充语句数据中的泛化对象信息。

由于新的固定语信息或新的泛化对象信息泛化对象信息并不一定适用于当前语句文字数据中,或者说当前语句的场景并不一定与上一语句中的场景或补充语句中的场景相同,若不对新的固定语信息或新的泛化对象信息进行场景校验很可能会出现错误。因此,处理器需要将上一语句文字数据中的固定语信息或泛化对象信息,或者处理器获取到的补充语句数据中的固定语信息或泛化对象信息代入当前语句文字数据进行场景校验,如果校验通过才会执行下述步骤108,如果不通过则执行下述步骤109。

进一步具体的,在针对固定语信息的场景校验中,处理器需要获取上一语句文字数据中的固定语信息或补充语句数据中的固定语信息所对应的场景信息,将该固定语信息和其所对应的场景信息代入当前语句文字数据,与当前语句文字数据的泛化对象信息进行语义规则匹配,如果语义规则匹配成功,则说明场景校验通过,反之则说明场景校验不通过。

在一个具体的例子中,当前语句文字数据为“天津呢”,其固定语信息为空,泛化对象信息为“天津”。上一个语句文字数据为“我想查北京的天气”,其固定语信息为“查天气”,该固定语信息“查天气”对应的场景数据为“天气”。将上一语句文字数据中的固定语信息“查天气”和其所对应的场景信息“天气”代入当前语句文字数据中泛化对象信息“天津”中,语义规则确定“查天气”与“天津”相匹配,则确定校验通过。

在针对泛化对象信息的场景校验中,处理器需要将上一语句文字数据中的泛化对象信息或补充语句数据中的泛化对象信息代入当前语句文字数据,与当前语句文字数据的固定语信息进行语义规则匹配,如果语义规则匹配成功,则说明场景校验通过,反之则说明场景校验不通过。

步骤108,得到新的语句文字数据;

具体的,如果将新的固定语信息代入当前语句数据,与当前语句数据中的泛化对象信息进行语义规则匹配后通过校验,则处理器将新的固定语信息和当前语句数据中的泛化对象信息相结合,得到新的语句文字数据。如果将新的泛化对象信息代入当前语句数据,与当前语句数据中的固定语信息进行语义规则匹配后通过校验,则处理器将新的泛化对象信息和当前语句数据中的固定语信息相结合,得到新的语句文字数据。

在一个具体的例子中,当前语句数据为“天津呢”,其固定语信息为空,泛化对象信息为“天津”,则语义处理系统获取该语句数据的上一语句文字数据为“我想查北京的天气”,其固定语信息为“查天气”,将当前语句数据中的泛化对象信息“天津”和上一语句文字数据的中固定语信息“查天气”结合,得到“查天津天气”的新的语句文字数据。

步骤109,生成引导语句数据,并输出;

具体的,如果将新的固定语信息代入当前语句文字数据,与当前语句文字数据中的泛化对象信息进行匹配后,校验不通过,或者将新的泛化对象信息带入当前语句文字数据,与当前语句文字数据中的固定语信息进行匹配后,校验不通过,则处理器生成引导语句数据并输出,用以提示用户补充输入补充语句数据。

在执行完本步骤后,返回执行步骤101,也就是处理器继续接收用户根据引导语句数据输入的补充语句数据,从而提取补充语句数据中的固定语信息或泛化对象信息,进而根据补充语句数据中的固定语信息或泛化对象信息生成新的语句文字数据。此时,步骤101中的语句数据为本步骤中用户输入的补充语句数据。

步骤110,解析语句文字数据,得到语义匹配结果数据,并输出;

具体的,执行完步骤108也就是在处理器得到了信息语句文字数据之后,或者在步骤105中确定了当前语句文字数据中的固定语信息和当前语句文字数据中的泛化对象信息均不为空时,处理器首先根据语句文字数据中的固定语句信息确定语句数据对应的场景数据。每个固定语句信息都可对应到一个场景数据。这里,每个场景数据都可以理解为一个独立的用户行为场景。

同时,处理器在兴趣点库中匹配与新的语句文字数据中的泛化对象信息相对应的兴趣点数据,根据匹配结果得到语句数据的校验值。兴趣点库可以理解为用户设置的、当前语义处理系统中的、用于存储兴趣点与泛化对象的匹配关系的数据库。兴趣点库中的兴趣点数据可以是用户根据需要设置的。如果在兴趣点库中匹配到了与泛化对象信息相对应的兴趣点数据时,处理器根据该兴趣点数据得到语句数据的校验值。如果在兴趣点库中匹配不到与当前泛化对象信息相对应的兴趣点数据时,则处理器根据外接接口连接外接数据库,并在外接数据库匹配与泛化对象信息相对应的兴趣点数据,作为语句数据的校验值。

在一些优选的实施例中,在兴趣点库中匹配与泛化对象信息相对应的兴趣点数据时,匹配条件包括位置条件。也就是说,在处理器匹配泛化对象信息相对应的兴趣点数据时,需要获取用户当前的位置信息,并将当前的位置信息作为匹配条件,筛选与匹配条件相符的兴趣点数据。

最后,处理器将语句数据的校验值带入场景数据的数据集中,得到语义匹配结果。语义匹配结果可以是语义处理系统自身中的匹配结果,也可以是语义处理系统打开其他应用程序后显示的匹配结果。例如,语义匹配结果可以是语义处理系统自身中“导航到位置为z的电影院c”的输出结果,再如,语义匹配结果也可以是“打开某团购应用程序”的输出结果。

而在输出语义匹配结果数据时,处理器将语义匹配结果数据封装入输出队列。在预设时间内,如果输出队列中包括语义匹配结果数据,则输出该语义匹配结果数据。在预设时间内,如果输出队列中不包括语义匹配结果数据,则输出预设反馈语句。例如,在1分钟内,由于没有匹配到任何语义匹配结果数据,使得输出队列中不包括语义匹配结果数据,则处理器输出“我需要更多信息”的预设反馈语句。

本发明实施例提供的基于上下文关联的智能语义匹配方法,在当前语句数据缺少解析所需要素的情况下,从上一语句文字数据或下一语句文字数据中提取与当前所缺要素相对应的信息,通过关联上下文的方式确定当前语句数据的语义匹配结果,实现了确定残缺语句的语义,从而得到与用户语句语义相对应的答案。

专业人员应该还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以用硬件、用户终端执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1