可减少运算量的CYK算法进行语法分析的方法及其装置制造方法及图纸

技术编号:2915511 阅读:413 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种可减少运算量的CYK算法进行语法分析的方法及其装置。该方法包括以下步骤1)对上下文无关语法的产生式进行Chomsky范式转换,得出多个符合Chomsky形式的产生式;2)使用CYK运算方法根据产生式对上下文无关语法句进行分析,并填入规约符号表;3)检查这些产生式是否包含机率信息;是则进至步骤4);4)根据机率信息选择要填入二维数组的规约符号;5)将规约符号填入二维数组中。本发明专利技术可减少CYK算法在进行语法分析时的运算量。

【技术实现步骤摘要】

本专利技术涉及一种CYK运算方法,尤其是一种可减少运算量的CYK算法进行语法分析的方法及其装置。
技术介绍
语法是一种用来描述语言架构的规则。例如,用来描述人类中文自然语言的规则为中文语法;用来描述电子计算器编程C语言的语法为C语言语法。而所谓语法分析,就是将一个句子分解成一些小的组成部分,例如:词、词组或子句等,并了解这些组成部分之间的关系,从而帮助我们把握这个句子的意义。为了使电子计算器能够进行语法分析及处理,通常必须使用上下文无关语法来描述和代表语法规则。上下文无关语法是由若干产生式所构成,产生式的形式如下:S->npvpnp->nnp->annp->ncnvp->vn即:句子->名词词组加动词词组名词词组->名词名词词组->形容词加名词名词词组->名词加连词加名词动词词组->动词加名词上述产生式即可构成上下文无关语法,并用来描述简单的中文语法规则。其中S、np及vp被称作非终结符号,代表其并非单一词组;n、v、c、a则被称作终结符号。非终结符号和终结符号统称为语法符号,其中非终结符号S又被-->称为开始符号,它所规范的一连串语法符号就是符合语法定义的语言。举例而言,参见图1,为由产生式所衍生的符合中文语法规则的语言,我们将其称为语法树。它描述的是一个符合上文定义的上下文无关语法的中文语句。而计算机进行语法分析的过程就是利用输入的句子和上下文无关语法中的产生式来产生语法树。由于上下文无关语法的产生式比较灵活,所以分析起来比较困难。举例而言,名词子句的构成成分有形容词加名词、副词加名词或形容词词组加名词等组合。CYK运算方法是一种基于Chomsky范式的语法分析方法,且只能对满足Chomsky范式的语法进行分析,CYK运算方法的规则简单,不需要回溯处理。而Chomsky范式则只有两种类型的产生式:A->BCD->e其中A、D为非终结符号,B、C可为终结符号或非终结符号,e为终结符号。当习知的CYK运算方法在进行语法分析时,分析过程中的语法符号被保存在如图二所示的二维矩阵数据架构中。矩阵中的每个元素P(i,j)对应到句子中跨度范围内可能的非终结符号的集合。其中,i表示跨度左侧第一个词组的位置,j表示跨度包含词组的数目。举例而言,图2中P(2,1)表示"喜欢"中左侧第一个词组“喜欢”是句子中第二个词组,因此i=2;而"喜欢"仅具备词组,因此j=1。同理,P(2,3)表示"喜欢大房间"中左侧第一个词组“喜欢”是句子中第二个词组,所以i=2;而"喜欢大房间"包含三个词组,所以j=3。如果最顶层的P(1,4)可以规范成为开始符号"S",就表示输入的句子可以产生语法树,且输入的句子符合语法规则。由于相同的产生式左侧语法符号,可以对应到不同的右侧组成部分。因此,矩阵每个元素中可能将出现许多重复的语法符号。在使用规模(产生式数量)庞大的上下文无关语法进行分析时,这种现象尤为突出。当计算机处理较复杂的句子时,参见图3,参与到分析过程的产生式的数量将变得非常多,甚至高达-->上万种组合。因此计算机需要使用极大容量的二维矩阵来储存所有可能的产生式,也使整体的处理速度变得十分缓慢。有鉴于
技术介绍
的各项问题,为了能够兼顾解决,本专利技术人基于多年研究开发与诸多实践经验,提出一种可减少运算量的CYK运算方法及其装置,以作为改善上述缺点的实现方式与依据。
技术实现思路
本专利技术为解决
技术介绍
中存在的上述技术问题,而提出一种可减少运算量的CYK算法进行语法分析的方法。本专利技术的技术解决方案是:本专利技术为一种可减少运算量的CYK算法进行语法分析的方法,其特殊之处在于:该方法包含下列步骤:1)对上下文无关语法的产生式进行Chomsky范式转换,得出多个符合Chomsky形式的产生式;2)使用CYK运算方法根据产生式对上下文无关语法句进行分析,并填入规约符号表;3)检查这些产生式是否包含机率信息;是则进至步骤4);4)根据机率信息选择要填入二维数组的规约符号;5)将规约符号填入二维数组中。上所述步骤1)的具体步骤如下:1.1)对上下文无关语法的产生式执行Chomsky范式转换,使其具备符合Chomsky范式的产生式及虚拟产生式;1.2)引入虚拟规约符号以规范虚拟产生式;1.3)对虚拟产生式重复执行Chomsky范式转换,使上下文无关语法的产生式转换为多个符合Chomsky范式的产生式及多个虚拟规约符号;1.4)将多个产生式及多个虚拟规约符号依序填入储存数组。上述步骤2)中使用CYK运算方法根据产生式对上下文无关语法句进行分析的具体步骤如下:2.1)首先在现有的矩阵中加入规约符号表的数据结构;2.2)此数据结构对每个现有的矩阵的元素进行扩展程序,将先前矩阵元素-->P(i,j)从底部到顶部依次扩展填充符号表L(i,j)而产生新矩阵;上g述2.2)中的扩展程序的具体步骤如下:2.2.1)扩展程序首先检查矩阵中是否存在产生式左部符号,若否,进至步骤2.2.2),若是则直接步骤2.2.3);2.2.2)则添加左部符号到规约符号表;2.2.3)最后再添加产生式到左部符号对应的表格中。上述步骤2)中当规约符号表中加入了新符号时,在特殊产生式集合中寻找以新符号为右部的产生式,并检查是否存在符合条件的产生式,若是,则将该产生式也加入规约符号表中;上述步骤4)的具体步骤如下:4.1)比较待加入的产生式与规约符号表中已存在的产生式的机率;4.2)并检查规约符号表中有无此符号或者有新的产生式机率更高;若否,进至步骤4.4),若是则直接步骤4.3);4.3)添加新的产生式到规约符号表中,并删除旧的产生式;4.4)删除新的产生式。一种实现上述的可减少运算量的CYK算法进行语法分析的方法的装置,其特殊之处在于:该置包括:输入单元,用来接收上下文无关语法及上下文无关语法句;储存单元,用来提供储存数组及多个规约符号;处理单元,用来对上下文无关语法的产生式执行Chomsky范式转换,使其具备符合Chomsky范式的产生式及虚拟产生式,并引入虚拟规约符号以规范虚拟产生式,以及对虚拟产生式重复执行Chomsky范式转换,使上下文无关语法的产生式转换为多个符合Chomsky范式形式的产生式及多个虚拟规约符号,再将产生式及虚拟规约符号存入储存数组,根据转换后的上下文无关语法对输入的上下文无关语法句进行语法分析,将参与分析的产生式放入规约符号表,输入单元接入处理单元,处理单元与储存单元相接。上述储存单元包括规约符号表。上述储存单元包括产生式机率统计表。本专利技术提供的CYK算法进行语法分析的方法及其装置,可减少CYK算法-->在进行语法分析时的运算量。附图说明图1为
技术介绍
语法树的示意图;图2为
技术介绍
二维数组的示意图;图3为
技术介绍
语法树的另一示意图;图4为本专利技术可减少运算量的上下文无关语法进行Chomsky范式转换运算方法的流程图;图5为本专利技术的方法的实施例详细流程图;图6为本专利技术二维数组的填充符号表示意图;图7为本专利技术扩展程序流程图;图8为本专利技术符号规则检查程序流程图;图9为本专利技术机率选择机制的流程图;图10为本专利技术的装置功能方块图;图11为本专利技术的装置的实施例详细功能方块图。其中,100-输入单元,110本文档来自技高网
...

【技术保护点】
一种可减少运算量的CYK算法进行语法分析的方法,其特征在于:该方法包含下列步骤: 1)对上下文无关语法的产生式进行Chomsky范式转换,得出多个符合Chomsky形式的产生式; 2)使用CYK运算方法根据产生式对上下文无关语法句进行分析,并填入规约符号表; 3)检查这些产生式是否包含机率信息;是则进至步骤4); 4)根据机率信息选择要填入二维数组的规约符号; 5)将规约符号填入二维数组中。

【技术特征摘要】
1、一种可减少运算量的CYK算法进行语法分析的方法,其特征在于:该方法包含下列步骤:1)对上下文无关语法的产生式进行Chomsky范式转换,得出多个符合Chomsky形式的产生式;2)使用CYK运算方法根据产生式对上下文无关语法句进行分析,并填入规约符号表;3)检查这些产生式是否包含机率信息;是则进至步骤4);4)根据机率信息选择要填入二维数组的规约符号;5)将规约符号填入二维数组中。2、根据权利要求1所述的可减少运算量的CYK算法进行语法分析的方法,其特征在于:所述步骤1)的具体步骤如下:1.1)对上下文无关语法的产生式执行Chomsky范式转换,使其具备符合Chomsky范式的产生式及虚拟产生式;1.2)引入虚拟规约符号以规范虚拟产生式;1.3)对虚拟产生式重复执行Chomsky范式转换,使上下文无关语法的产生式转换为多个符合Chomsky范式的产生式及多个虚拟规约符号;1.4)将多个产生式及多个虚拟规约符号依序填入储存数组。3、根据权利要求2所述的可减少运算量的CYK算法进行语法分析的方法,其特征在于:所述步骤2)中使用CYK运算方法根据产生式对上下文无关语法句进行分析的具体步骤如下:2.1)首先在现有的矩阵中加入规约符号表的数据结构;2.2)此数据结构对每个现有的矩阵的元素进行扩展程序,将先前矩阵元素P(i,j)从底部到顶部依次扩展填充符号表L(i,j)而产生新矩阵。4、根据权利要求3所述的可减少运算量的CYK算法进行语法分析的方法,其特征在于:所述2.2)中的扩展程序的具体步骤如下:2.2.1)扩展程序首先检查矩阵中是否存在产生式左部符号,若否,进至步骤2.2.2),若是则直接步骤2.2.3);2.2.2)则添加左部符号到规约符号表;2.2....

【专利技术属性】
技术研发人员:陈淮琰闫海红
申请(专利权)人:无敌科技西安有限公司
类型:发明
国别省市:87[中国|西安]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1