首页> 中国专利> 语法编译方法、语义解析方法以及对应装置

语法编译方法、语义解析方法以及对应装置

摘要

本发明提供了一种语法编译方法、语义解析方法以及对应装置,按照语义的常用语句表达采用基于逻辑语法直观语言(LGML)预先定义对应的语法描述文件和词类描述文件,在语法描述文件中由词类、操作符和函数构成常用语句的描述,词类描述文件用于描述词类的具体取值;将语法描述文件和词类描述文件分别按照预设顺序的归约方法生成语法描述文件的语法树和词类描述文件的词类树,将词类树挂接在语法树中对应词类的位置,形成语义的语法树,从而实现语法编译。基于该方式建立的语义的语法树,采用整句匹配、语义映射匹配或者整句匹配和语义映射匹配相结合的方式进行语义解析。

著录项

  • 公开/公告号CN103294666A

    专利类型发明专利

  • 公开/公告日2013-09-11

    原文格式PDF

  • 申请/专利权人 百度在线网络技术(北京)有限公司;

    申请/专利号CN201310203987.2

  • 发明设计人 王育军;贾磊;万广鲁;蒋正翔;

    申请日2013-05-28

  • 分类号G06F17/28(20060101);G06F17/30(20060101);

  • 代理机构北京鸿德海业知识产权代理事务所(普通合伙);

  • 代理人袁媛

  • 地址 100085 北京市海淀区上地十街10号百度大厦

  • 入库时间 2024-02-19 20:48:02

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-03-01

    授权

    授权

  • 2016-04-27

    实质审查的生效 IPC(主分类):G06F17/28 申请日:20130528

    实质审查的生效

  • 2013-09-11

    公开

    公开

说明书

【技术领域】

本发明涉及计算机应用技术领域,特别涉及一种语法编译方法、语义解 析方法以及对应装置。

【背景技术】

语音识别和口语语义解析是语音交互产品的两个重要技术,语音识别是 将语音的内容转换成文字,口语语义解析是理解口语语音信号承载的信息。 语音识别率和口语语义解析的准确度直接影响用户体验。为了提高语音识别 率和口语语义解析的准确度,目前主要采用的是W3C(万维网联盟)规范的 两种上下文无关语法来构建识别空间,即利用BNF(巴克斯范式)形式的语 法或基于XML(可扩展标记语言)格式的语法。

人们说话的方式为自然口语,行为、措词和文本输入都有较大差异,例 如口语中存在语法不严格和语序颠倒,W3C推荐的BNF语法和XML格式的 语法为主流的大词汇量连续语音识别器所应用,但由于BNF和XML的解释 层级深,采用这两种语法进行的语义映射和句法理解定义非常复杂,具有可 读性差和可维护性差的缺陷,且很难进行相关的语法编译和语义解析。

【发明内容】

有鉴于此,本发明提供了一种语法编译方法、语义解析方法以及对应装 置,以便于提高可读性和可维护性。

具体技术方案如下:

一种语法编译方法,按照语义的常用语句表达采用基于逻辑语法直观语言 LGML预先定义对应的语法描述文件和词类描述文件,在所述语法描述文件中 由词类、操作符和函数构成常用语句的描述,所述词类描述文件用于描述词类 的具体取值;

将所述语法描述文件和词类描述文件分别按照预设顺序的归约方法生成语 法描述文件的语法树和词类描述文件的词类树;

将所述词类树挂接在所述语法树中对应词类的位置,形成所述语义的语 法树。

根据本发明一优选实施方式,所述词类描述文件中包含词项,或者除了包含 词项外还包含操作符和函数中的至少一种以描述各词项之间的关系。

根据本发明一优选实施方式所述操作符包括以下至少一种:

操作符+表示两个以上的操作数串联;

操作符|表示两个以上的操作数并列关系;

操作符()表示操作数形成一个不可忽略的组合;

操作符[]表示操作数形成一个可忽略的组合;

操作符;表示语句结束;

操作符:表示词类描述文件中词类的解释关系;

操作符“”表示引用了外部词典。

根据本发明一优选实施方式,所述语法描述文件中的函数包括以下函数 中的至少一种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍;

函数&repeat(EXP,n)表示把EXP重复n遍;

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列;

函数&grammar(gammar_name)表示语法名称为grammar_name的语法描 述文件;

函数&magic(EXP,key,default,display)或函数&magic(EXP,key,default) 实现EXP到语义标签key的映射;其中函数&magic(EXP,key,default)在语法 匹配过程中,当EXP与一个文本片段T匹配成功时,key的值为T,否则key 的值为default;函数&magic(EXP,key,default,display)在语法匹配过程中, 当EXP与一个文本片段T匹配成功时,key的值为display,否则key的值为 default。

根据本发明一优选实施方式,所述词类描述文件中的函数包括以下函数 中的至少一种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍;

函数&repeat(EXP,n)表示把EXP重复n遍;

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。

根据本发明一优选实施方式,在所述语义的语法树中,叶节点为词类描 述文件中的词项或者引用的外部词典,非叶节点为操作符或函数名,非叶节 点的操作数为该非叶节点的各子树表示的内容。

根据本发明一优选实施方式,在所述语义的语法树中所述函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)作为非叶 节点进行标识,保存所述函数&magic(EXP,key,default,display)或函数 &magic(EXP,key,default)对应的映射表。

一种语义解析方法,该语义解析方法包括:

将待解析文本在采用上述语法编译方法得到的语法树上按照所述预设 顺序进行匹配,如果所述待解析文本完全与所述语法树匹配,则将所述语法 树所对应的语义确定为所述待解析文本的语义。

根据本发明一优选实施方式,在所述匹配的过程中,如果所述待解析文 本中某文本片段与所述函数&magic(EXP,key,default,display)或函数 &magic(EXP,key,default)所标识的子树匹配,则在解析结果中所述函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)所对应的 映射表中key的取值为该文本片段或映射表中display的取值。

一种语义解析方法,该语义解析方法包括:

将待解析文本在采用上述语法编译方法得到的语法树上按照所述预设 顺序进行前向最大匹配,如果所述待解析文本中存在文本片段与所述语法树 中函数&magic(EXP,key,default,display)或函数&magic(EXP,key,default)所 标识的子树匹配,则将所述语法树所对应的语义确定为所述待解析文本的语 义。

根据本发明一优选实施方式,在解析结果中匹配的函数&magic(EXP,key, default,display)或函数&magic(EXP,key,default)所对应的映射表中key的取 值为该文本片段或映射表中display的取值。

根据本发明一优选实施方式,只有所述待解析文本中存在文本片段与所 述语法树中预设的关键函数&magic(EXP,key,default,display)或关键函数 &magic(EXP,key,default)所标识的子树匹配,才将所述语法树所对应的语义 确定为所述待解析文本的语义。

一种语义解析方法,该语义解析方法包括:

S1、将待解析文本在采用上述语法编译方法得到的语法树上按照所述预 设顺序进行匹配,如果所述待解析文本完全与所述语法树匹配,则将所述语 法树所对应的语义确定为所述待解析文本的语义;否则执行步骤S2;

S2、将所述待解析文本在所述语法树上按照所述预设顺序进行前向最大 匹配,如果所述待解析文本中存在文本片段与所述语法树中函数&magic(EXP, key,default,display)或函数&magic(EXP,key,default)所标识的子树匹配,则 将所述语法树所对应的语义确定为所述待解析文本的语义。

根据本发明一优选实施方式,在解析结果中匹配的函数&magic(EXP,key, default,display)或函数&magic(EXP,key,default)所对应的映射表中key的取 值为该文本片段或映射表中display的取值。

一种语法编译装置,该语法编译装置包括:

文件存储单元,用于存储语义对应的语法描述文件和词类描述文件,所 述语法描述文件和词类描述文件是按照语义的常用语句表达采用基于逻辑语 法直观语言LGML预先定义的,在所述语法描述文件中由词类、操作符和函 数构成常用语句的描述,所述词类描述文件用于描述词类的具体取值;

语法树生成单元,用于将所述语法描述文件和词类描述文件分别按照预 设顺序的归约方法生成语法描述文件的语法树和词类描述文件的词类树,将 所述词类树挂接在所述语法树中对应词类的位置,形成所述语义的语法树。

根据本发明一优选实施方式,所述词类描述文件中包含词项,或者除了 包含词项外还包含操作符和函数中的至少一种以描述各词项之间的关系。

根据本发明一优选实施方式,所述操作符包括以下至少一种:

操作符+表示两个以上的操作数串联;

操作符|表示两个以上的操作数并列关系;

操作符()表示操作数形成一个不可忽略的组合;

操作符[]表示操作数形成一个可忽略的组合;

操作符;表示语句结束;

操作符:表示词类描述文件中词类的解释关系;

操作符“”表示引用了外部词典。

根据本发明一优选实施方式,所述语法描述文件中的函数包括以下函数 中的至少一种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍;

函数&repeat(EXP,n)表示把EXP重复n遍;

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列;

函数&grammar(gammar_name)表示语法名称为grammar_name的语法描 述文件;

函数&magic(EXP,key,default,display)或函数&magic(EXP,key,default) 实现EXP到语义标签key的映射;其中函数&magic(EXP,key,default)在语法 匹配过程中,当EXP与一个文本片段T匹配成功时,key的值为T,否则key 的值为default;函数&magic(EXP,key,default,display)在语法匹配过程中, 当EXP与一个文本片段T匹配成功时,key的值为display,否则key的值为 default。

根据本发明一优选实施方式,所述词类描述文件中的函数包括以下函数 中的至少一种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍;

函数&repeat(EXP,n)表示把EXP重复n遍;

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。

根据本发明一优选实施方式,在所述语义的语法树中,叶节点为词类描 述文件中的词项或者引用的外部词典,非叶节点为操作符或函数名,非叶节 点的操作数为该非叶节点的各子树表示的内容。

根据本发明一优选实施方式,在所述语义的语法树中所述函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)作为非叶 节点进行标识,所述文件存储单元进一步保存所述函数&magic(EXP,key, default,display)或函数&magic(EXP,key,default)对应的映射表。

一种语义解析装置,该语义解析装置包括:

整句匹配单元,用于将待解析文本在由上述语法编译装置得到的语法树 上按照所述预设顺序进行匹配,如果所述整句匹配单元确定所述待解析文本 完全与所述语法树匹配,则将匹配结果发送给结果确定单元;

结果确定单元,用于接收到所述匹配结果时,将所述语法树所对应的语 义确定为所述待解析文本的语义。

根据本发明一优选实施方式,在所述匹配的过程中,如果所述待解析文 本中某文本片段与所述函数&magic(EXP,key,default,display)或函数 &magic(EXP,key,default)所标识的子树匹配,则在所述结果确定单元得到的 解析结果中所述函数&magic(EXP,key,default,display)或函数&magic(EXP, key,default)所对应的映射表中key的取值为该文本片段或映射表中display 的取值。

一种语义解析装置,该语义解析装置包括:

语义映射匹配单元,用于将待解析文本在由上述语法编译装置得到的语 法树上按照所述预设顺序进行前向最大匹配,如果所述待解析文本中存在文 本片段与所述语法树中函数&magic(EXP,key,default,display)或函数 &magic(EXP,key,default)所标识的子树匹配,则将匹配结果发送给结果确定 单元;

结果确定单元,用于在接收到所述匹配结果时,将所述语法树所对应的 语义确定为所述待解析文本的语义。

根据本发明一优选实施方式,在所述结果确定单元得到的解析结果中所 述函数&magic(EXP,key,default,display)或函数&magic(EXP,key,default)所 对应的映射表中key的取值为该文本片段或映射表中display的取值。

根据本发明一优选实施方式,所述语义映射匹配单元只有在所述待解析 文本中存在文本片段与所述语法树中预设的关键函数&magic(EXP,key, default,display)或关键函数&magic(EXP,key,default)所标识的子树匹配时, 才将匹配结果发送给所述结果确定单元。

一种语义解析装置,该语义解析装置包括:

整句匹配单元,用于将待解析文本在由语法编译装置得到的语法树上按 照所述预设顺序进行匹配,如果所述整句匹配单元确定所述待解析文本完全 与所述语法树匹配,则将匹配结果发送给结果确定单元;否则,触发语义映 射匹配单元;

语义映射匹配单元,用于受到触发后,将所述待解析文本在所述语法树 上按照所述预设顺序进行前向最大匹配,如果所述待解析文本中存在文本片 段与所述语法树中函数&magic(EXP,key,default,display)或函数&magic(EXP, key,default)所标识的子树匹配,则将匹配结果发送给结果确定单元;

结果确定单元,用于接收到匹配结果时,将所述语法树对应的语义确定 为所述待解析文本的语义。

根据本发明一优选实施方式,所述结果确定单元如果接收到所述语义映 射匹配单元的匹配结果,则在解析结果中匹配的函数&magic(EXP,key, default,display)或函数&magic(EXP,key,default)所对应的映射表中key的取 值为该文本片段或映射表中display的取值。

由以上技术方案可以看出,本发明提供的语法编译方法和语义解析方法 基于LGML预先定义的语法描述文件和词类描述文件,其更接近于人的口语 表达,相比较BNF和XML解释层级浅,可读性更强且更易维护。

【附图说明】

图1a为本发明实施例提供的一个语法描述文件的语法树示意图;

图1b、图1c和图1d为本发明实施例提供的词类描述文件的词类树示意 图;

图1e为本发明实施例提供的一个语义的语法树示意图;

图2a为本发明实施例提供的一个语法描述文件的语法树实例图;

图2b和图2c为本发明实施例提供的一个词类描述文件的词类树实例图;

图2d为本发明实施例提供的一个语义的语法树实例图;

图3为本发明实施例提供的针对查询天气的语义对应的语法树;

图4为本发明实施例提供的语法编译装置的结构图;

图5为本发明实施例提供的第一种语义解析装置的结构图;

图6为本发明实施例提供的第二种语义解析装置的结构图;

图7为本发明实施例提供的第三种语义解析装置的结构图。

【具体实施方式】

为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体 实施例对本发明进行详细描述。

本发明所提供的语法编译方法基于一种新的语法描述语言,即基于逻辑 语法直观语言(LGML,Logical Grammar by Manifest Language),该LGML 不同于现有的BNF或XML的复杂结构,而更接近于自然口语的顺序和描述 方式。针对各语义的常用语句表达采用LGML预先定义对应的语法,采用 LGML定义的语法由两部分构成:语法描述文件和词类描述文件。

在语法描述文件中由操作符,词类和函数构成常用的语句描述,该语法 描述文件通常采用穷举的方式预先定义各种语句描述。词类和函数在语法描 述文件中通常作为操作符的操作数,词类除了在语法描述文件中作为一个独 立的操作对象出现之外,也可以作为函数中的参数出现。词类是对若干具有 相同含义的词项(指词汇或词组)所进行的统一标识,一个词类具体包含的 词项在该词类对应的词类描述文件中定义,也就是说,词类描述文件用于描 述词类的具体取值,在词类描述文件中也会包含操作符和/或函数来描述各词 项之间的关系。词类描述文件可以采用人工定义的方式,也可以采用机器挖 掘的结果。

下面对本发明实施例提供的LGML的上述具体构成进行详细描述。首先 语法描述文件和词类描述文件中的操作符可以包括但不限于以下几种:

操作符+表示两个以上的操作数串联,所谓串联就是按顺序描述语句。

操作符|表示两个以上的操作数并列的关系,所谓并列的关系就是操作 数择一的表达相同含义。

操作符()表示操作数形成一个不可忽略的组合。

操作符[]表示操作数形成一个可忽略的组合。

操作符;表示语句结束。

操作符:表示词类描述文件中词类的解释关系。

操作符“”表示引用了外部词典,词典中的词汇是并列关系。

词类描述文件中的函数可以包括但不限于以下几种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍。

函数&repeat(EXP,n)表示把EXP重复n遍。

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。例如: &perm(EXP1,EXP2,EXP3)等价于6个串联项的并列:

(EXP1+EXP2+EXP3)|(EXP1+EXP3+EXP2)|(EXP2+EXP3+EXP1)|(EXP2+ EXP1+EXP3)|(EXP3+EXP1+EXP2)|(EXP3+EXP2+EXP1)

语法描述文件中除了上面的函数&repeat(EXP,min,max)、函数 &repeat(EXP,n)和函数&perm(EXP1,EXP2,…)之外,还可以包括但不限于以 下几种函数:

函数&grammar(gammar_name)通常写在语法文件开头,表示一个语句 表达的语法名称为grammar_name,该grammar_name标识该语句表达的语法 描述文件。

函数&magic(EXP,key,default,display)和函数&magic(EXP,key,default) 实现EXP到语义标签key的映射。

其中函数&magic(EXP,key,default)在语法匹配过程中,当EXP与一个文 本片段T匹配成功时,key的值为T。否则key的值为default。

函数&magic(EXP,key,default,display)在语法匹配过程中,当EXP与一 个文本片段T匹配成功时,key的值为display,否则key的值为default。

下面举一个例子,假设针对查询天气的语句表达预先定义语法描述文件 和词类描述文件,则语法描述文件可以定义为:

词类描述文件可以定义为:

【意愿】:我+(想|想要);

【查询】:知道|查询;

【时间】:今天|明天;

【地点】:&repeat(“place.dic”+[省|市],1,2);

【天气指标】:气温|湿度;

……

本发明中提供的语法编译是将语义基于LGML编译成一棵语法树,在编 译语法树的过程中对上述语法描述文件和词类描述文件采用预设顺序(本发 明实施例中采用从左至右的顺序)的归约方法,按照函数和操作符所约束的 关系生成的语法树。具体地,采用从左至右的归约方法,将语法描述文件生 成语法树,并且采用从左至右的归约方法将词类描述文件生成词类树,然后 将词类树挂接在语法树中对应词类的位置,最终各词类树挂接在语法树的叶 子节点上。

在将语法描述文件生成语法树时,叶节点为词类,非叶节点为操作符, 作为非叶结点的操作符的操作数为该非叶结点的各子树表示的内容。由于函 数&repeat(EXP,min,max)、&repeat(EXP,n)、&perm(EXP1,EXP2,…)都可以 表示成语法片段EXP与操作符的组合的形式,而函数&magic(EXP,key, default,display)和&magic(EXP,key,default)由于实现的是映射关系,因此需 要在语法树中对&magic函数进行标识,标识的方式可以是作为一个非叶节点 出现,同时存在该&magic函数所对应的映射表,例如该&magic函数的标识 与其对应的映射表之间可以存在一个位置指向。

下面举一些简单的例子:假设某语义的语法描述文件的内容为:

[【A】+【B】]|【C】

从左至右进行归约,生成的语法描述文件的语法树如图1a所示,在图 1a中,叶节点为词类【A】、【B】和【C】,非叶结点为操作符,其中非叶 节点“+,[]”的操作数为【A】和【B】,非叶节点“|”为其各子树的内容, 左边分支的子树内容为[【A】+【B】],右边分支的子树内容为【C】。

如果该语义的词类描述文件分别为:

【A】:a+b;

【B】:[c+d]+e;

【C】:f|g;

那么分别对各词类进行从左至右的归约,词类【A】、【B】和【C】对 应的词类树分别为图1b、图1c和图1d所示。然后将各词类树挂接在语法描 述文件的语法树上对应词类的位置,最终形成上述语义的语法树如图1e所 示。

假设某语义的语法描述文件的内容为:

&magic((【X】|【Y】),key,default,display)

从左至右归约,生成的语法描述文件的语法树如图2a所示,非叶节点 “magic,+”标识&magic函数,并且存在一个magic映射表,并指示出该 magic函数的语法树在映射表中的位置。

假设该语义的词类描述文件为:

【X】:[a+b]+c;

【Y】:[a+b]+d;

那么分别对各词类进行从左至右的归约,词类【X】和【Y】对应的词类 树分别为图2b和图2c所示。然后将各词类树挂接在语法描述文件的语法树 上对应词类的位置,最终形成该语义的语法树如图2d所示。

也就是说,最终形成的语义的语法树中,叶节点为词类描述文件中的词 项或者引用的外部词典,非叶节点为操作符或函数名,非叶节点的操作数为 该非叶节点的各子树表示的内容。

如果在语法描述文件中存在两个以上的&magic函数,则可以将语法描 述文件中的所有&magic函数的映射表合并形成一个映射表,以方便存储和查 询。

在完成上述语法编译后,就可以在语法编译形成的语法树的基础上进行 语义解析。待解析文本可以是诸如对用户的语音进行识别的文本结果,从而 对该文本结果进行语义解析得到其所表达的语义,也可以是诸如用户输入搜 索引擎的文本,对用户输入的该文本进行语义解析得到其所表达的语义,等 等,在此不再一一穷举。

在进行语义解析时,是将待解析文本与各语法树进行匹配,在匹配时采 用从左至右的匹配方式,将匹配的语法树所对应的语义确定为待解析文本的 语义。在匹配过程中可以采用整句匹配的方式,也可以采用语义映射匹配的 方式,或者采用整句匹配和语义映射匹配相结合的方式,即先整句匹配,若 无匹配结果再进行语义映射匹配的方式。所谓整句匹配是待解析文本能够完 全与某语义的LGML的语法树匹配,这种匹配方式是一种通用的、准确度较 高的匹配方式,无论LGML中采用什么函数均适用。语义映射匹配是待解析 文本中的文本片段能够与&magic函数定义的语法片段匹配,即待解析文本中 的全部或部分文本能够与语法树中&magic函数所标识的子树匹配,则确定该 解析文本的语义包含该&magic函数所映射的语义。

整句匹配时,将待解析文本与语法树的匹配方式与现有语法树匹配方式 基本相同,只是顺序是按照从左至右的顺序进行,只有待解析文本能够在语 法树上完全匹配到,则确定匹配成功。特别地,在匹配过程中,如果匹配到 &magic函数所标识的子树,则根据&magic函数所标识的子树的匹配结果从 该&magic函数所指示的映射表中获取映射结果作为解析结果。即,如果待解 析文本中某文本片段与&magic函数所标识的子树完全匹配,则在解析结果中 该&magic函数所指示的映射表中的key的取值为该文本片段或映射表中 display的取值。

以图2b所示语法树为例,假设待解析文本为:abd,那么从左至右在语 法树上进行匹配,“|”左边子树没有匹配,但右边子树能够完全匹配,因此 可以确定abd的语义解析结果为该语义树所对应的语义,在解析结果中key 的取值为display的取值。如果待解析文本为eabdc,则与该语法树不匹配, 该语法树所对应的语义不是该待解析文本的语义。

对于&magic函数这种特殊的函数,对其所标识的子树可以采用语义映 射匹配的方式,即将&magic函数所标识的子树与待解析文本做前向最大匹 配,如果待解析文本中存在文本片段与&magic函数所标识的子树匹配,则可 以确定该待解析文本的语义为该语法树对应的语义,在解析结果中该&magic 函数所指示的映射表中的key的取值为该文本片段或映射表中display的取 值。

同样以图2b所示语法树为例,假设待解析文本为eabdc,将该语法树与 待解析文本进行前向最大匹配(即从e作为待解析文本的开始进行匹配,如 果匹配不成功再从a开始作为待解析文本的开始进行匹配,如果不成功再从 b开始,依次类推),结果是其中的文本片段abd能够与该语法树匹配,则 可以确定待解析文本的语义为该语法树对应的语义,解析结果中key的取值 为display的取值。

鉴于整句匹配的准确性和语义映射匹配的高覆盖率,为了整合两种匹配 方式的优点,在本发明实施例中可以采取先整句匹配后语义映射匹配的方式, 即如果整句匹配失败再进行语义映射匹配。

下面举一个具体的实例,假设针对查询天气的语义对应的语法树如图3 所示,需要说明的是,在该图中为了描述方便将该&magic的标识magic进行 了编号,在实际情况中语法树中的节点magic标识是相同的,但存在与其对 应的magic映射表的位置指向,图3中为了清楚没有采用位置指向的方式, 而是将magic标识采用编号的方式来呈现与magic映射表的指向关系。另外, 在实际情况中可以将各magic映射表合并成一张映射表的形式。

如果待解析文本为“我想知道北京温度”,能够整句匹配成功,magic1 映射到“today”,magic2映射到“北京”,magic3映射到“weather”,因 此该待解析文本的语义为查询天气,解析结果中date的取值为“today”,place 的取值为“北京”,weather的取值为“weather”,用户虽然没有说今天, 但由于语法中规定magic1的操作符为[]是可忽略的,因此取默认值“today”。

如果待解析文本为“告诉我温度”,由于语法中未定义“告诉我”的相 关语法片段,因此整句匹配失败,然后进行语义映射匹配,其中“温度”这 一文本片段与magic3的子树匹配成功,则语义映射匹配成功,仍可以认为该 待解析文本的语义为查询天气,magic1映射到“today”,magic2映射到“LBS”, magic3映射到“weather”,因此解析结果中date的取值为“today”,place 的取值为“LBS”,weather的取值为“weather”。

另外在语义映射匹配过程中可以对关键的magic函数进行设置,只有关 键的magic函数对应的子树匹配成功才认为语义映射匹配成功。例如可以将 图3所示的语法树中magic3函数设置为关键的magic函数,只有该magic函 数对应的子树匹配成功才认为语义映射匹配成功。举个例子,当待解析文本 为“我想知道北京”,虽然“我想知道北京”整句匹配失败,但“北京”这 一文本片段与magic2函数对应的子树匹配成功,但由于关键的magic3函数 没有匹配成功,仍不会认为语义映射匹配成功,不能认为该待解析文本为查 询天气的语义。

还可能存在这样的情况,在一个语义的语法树中进行语义映射匹配时, 存在多个&magic函数的子树都能够与待解析文本匹配的情况,为了解决这种 情况下的冲突,可以采用预先定义各子树的优先级的方式来解决,或者以匹 配的词项数目最大等约束条件来解决。

以上是对本发明所提供的方法进行的描述,下面结合实施例对本发明提 供的装置进行详细描述。

图4为本发明实施例提供的语法编译装置的结构图,如图4所示,该语 法编译装置主要包括文件存储单元41和语法树生成单元42。

文件存储单元41存储语义对应的语法描述文件和词类描述文件,语法 描述文件和词类描述文件是按照语义的常用语句表达采用基于LGML预先 定义的,在语法描述文件中由词类、操作符和函数构成常用语句的描述,词 类描述文件用于描述词类的具体取值。

在词类描述文件中包含词项,或者除了包含词项外还包含操作符和函数 中的至少一种以描述各词项之间的关系。

上述的操作符可以包括但不限于以下操作符中的至少一种:

操作符+表示两个以上的操作数串联;

操作符|表示两个以上的操作数并列关系;

操作符()表示操作数形成一个不可忽略的组合;

操作符[]表示操作数形成一个可忽略的组合;

操作符;表示语句结束;

操作符:表示词类描述文件中词类的解释关系;

操作符“”表示引用了外部词典。

词类描述文件中的函数可以包括但不限于以下几种:

函数&repeat(EXP,min,max)表示把语法片段EXP重复最少min遍,最 多max遍。

函数&repeat(EXP,n)表示把EXP重复n遍。

函数&perm(EXP1,EXP2,…)表示把EXP1,EXP2,…做全排列。例如: &perm(EXP1,EXP2,EXP3)等价于6个串联项的并列:

(EXP1+EXP2+EXP3)|(EXP1+EXP3+EXP2)|(EXP2+EXP3+EXP1)|(EXP2+ EXP1+EXP3)|(EXP3+EXP1+EXP2)|(EXP3+EXP2+EXP1)

语法描述文件中除了上面的函数&repeat(EXP,min,max)、函数 &repeat(EXP,n)和函数&perm(EXP1,EXP2,…)之外,还可以包括但不限于以 下几种函数:

函数&grammar(gammar_name)通常写在语法文件开头,表示一个语句 表达的语法名称为grammar_name,该grammar_name标识该语句表达的语法 描述文件。

函数&magic(EXP,key,default,display)和函数&magic(EXP,key,default) 实现EXP到语义标签key的映射。

其中函数&magic(EXP,key,default)在语法匹配过程中,当EXP与一个文 本片段T匹配成功时,key的值为T。否则key的值为default。

函数&magic(EXP,key,default,display)在语法匹配过程中,当EXP与一 个文本片段T匹配成功时,key的值为display,否则key的值为default。

语法树生成单元42负责将语法描述文件和词类描述文件分别按照预设 顺序(例如采用从左至右的顺序)的归约方法生成语法描述文件的语法树和 词类描述文件的词类树,将词类树挂接在语法树中对应词类的位置,形成语 义的语法树。

在将语法描述文件生成语法树时,叶节点为词类,非叶节点为操作符, 作为非叶结点的操作符的操作数为该非叶结点的各子树表示的内容。由于函 数&repeat(EXP,min,max)、&repeat(EXP,n)、&perm(EXP1,EXP2,…)都可以 表示成语法片段EXP与操作符的组合的形式,而函数&magic(EXP,key, default,display)和&magic(EXP,key,default)由于实现的是映射关系,因此需 要在语法树中对&magic函数进行标识,标识的方式可以是作为一个非叶节点 出现,同时进一步保存该&magic函数所对应的语义映射,例如该&magic函 数的标识与其对应的映射表之间可以存在一个位置指向。

在最终生成的语义的语法树中,叶节点为词类描述文件中的词项或者引 用的外部词典,非叶节点为操作符或函数名,非叶节点的操作数为该非叶节 点的各子树表示的内容。

如果在语法描述文件中存在两个以上的&magic函数,则可以将语法描 述文件中的所有&magic函数的映射表合并形成一个映射表,以方便存储和查 询。

基于图4所示的语法编译装置得到的语义的语法树,本发明提供的语义 解析装置可以采用三种结构实现,一种单纯采用整句匹配的方式,另一种单 纯采用语义映射匹配的方式,还有一种采用整句匹配和语义映射匹配相结合 的方式。

图5为本发明实施例提供的第一种语义解析装置的结构图,该语义解析 装置单纯采用整句匹配的方式,如图5所示,该语义解析装置包括:整句匹 配单元51和结果确定单元52。

整句匹配单元51将待解析文本在上述语义的语法树上按照预设顺序进 行匹配,如果确定待解析文本完全与语法树匹配,则将匹配结果发送给结果 确定单元52。

结果确定单元52接收到匹配结果时,将语法树所对应的语义确定为待 解析文本的语义。

可以看出,整句匹配是待解析文本能够完全与某语义的LGML的语法树 匹配,这种匹配方式是一种通用的、准确度较高的匹配方式,无论LGML中 采用什么函数均适用。

特别地,在整句匹配的过程中可能会匹配到&magic函数所标识的子树, 如果待解析文本中某文本片段与函数&magic(EXP,key,default,display)或函 数&magic(EXP,key,default)所标识的子树匹配,则在结果确定单元52得到 的解析结果中函数&magic(EXP,key,default,display)或函数&magic(EXP,key, default)所对应的映射表中key的取值为该文本片段或映射表中display的取 值。

图6为本发明实施例提供的第二种语义解析装置的结构图,该语义解析 装置单纯采用语义映射匹配,这种方式应用于包含将&magic函数所标识的子 树的语法树,如图6所示,该语义解析装置包括:语义映射匹配单元61和结 果确定单元62。

语义映射匹配单元61将待解析文本在语义的语法树上按照预设顺序进 行前向最大匹配,如果待解析文本中存在文本片段与语法树中函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)所标识的 子树匹配,则将匹配结果发送给结果确定单元62。

结果确定单元62在接收到匹配结果时,将语法树所对应的语义确定为 待解析文本的语义。更进一步地,在结果确定单元62得到的解析结果中函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)所对应的 映射表中key的取值为该文本片段或映射表中display的取值。

另外在语义映射匹配过程中可以对关键的magic函数进行设置,只有关 键的magic函数对应的子树匹配成功才认为语义映射匹配成功。即语义映射 匹配单元61只有在待解析文本中存在文本片段与语法树中预设的关键函数 &magic(EXP,key,default,display)或关键函数&magic(EXP,key,default)所标 识的子树匹配时,才将匹配结果发送给结果确定单元62。

图7为本发明实施例提供的第三种语义解析装置的结构图,该语义解析 装置采用整句匹配和语义映射匹配相结合的方式,其中语义映射匹配通常适 用于语法树中包含&magic函数对应的子树的情况。如图7所示,该语义解析 装置包括:整句匹配单元71、语义映射匹配单元72和结果确定单元73。

整句匹配单元71将待解析文本在语义的语法树上按照预设顺序进行匹 配,如果整句匹配单元71确定待解析文本完全与语法树匹配,则将匹配结果 发送给结果确定单元73;否则,触发语义映射匹配单元72。

语义映射匹配单元72受到触发后,将待解析文本在语法树上按照预设 顺序进行前向最大匹配,如果待解析文本中存在文本片段与语法树中函数 &magic(EXP,key,default,display)或函数&magic(EXP,key,default)所标识的 子树匹配,则将匹配结果发送给结果确定单元73。

结果确定单元73无论接收到整句匹配单元71匹配结果还是语义映射匹 配单元72的匹配结果,都可以将语法树对应的语义确定为待解析文本的语 义。

更进一步地,结果确定单元73如果接收到语义映射匹配单元72的匹配 结果,则在解析结果中匹配的函数&magic(EXP,key,default,display)或函数 &magic(EXP,key,default)所对应的映射表中key的取值为该文本片段或映射 表中display的取值。

同样,在语义映射匹配过程中可以对关键的magic函数进行设置,只有 关键的magic函数对应的子树匹配成功才认为语义映射匹配成功。即语义映 射匹配单元72只有在待解析文本中存在文本片段与语法树中预设的关键函 数&magic(EXP,key,default,display)或关键函数&magic(EXP,key,default)所 标识的子树匹配时,才将匹配结果发送给结果确定单元73。

需要特别说明的是,在语义解析的过程中,通常是对各语义的语法树逐 个进行匹配从而确定待解析文本对应的语义的,在本发明的实施例中均以在 一个语法树上进行匹配为例进行的描述,对于各语法树的匹配过程相同。另 外,在一些应用中,采用多层次的语义分析,那么可以在每一层次的语义分 析中均采用本发明实施例提供的语义解析方法和语义解析装置来实现。

在本发明所提供的几个实施例中,应该理解到,所揭露的装置和方法, 可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的, 例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外 的划分方式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作 为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方, 或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或 者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元 中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一 个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加 软件功能单元的形式实现。

上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机 可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指 令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等) 或处理器(processor)执行本发明各个实施例所述方法的部分步骤。而前述 的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、 随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可 以存储程序代码的介质。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本 发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在 本发明保护的范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号