【技术实现步骤摘要】
一种生成句法树的方法及装置
本专利技术涉及自然语言处理
,特别涉及一种生成句法树的方法及装置。
技术介绍
自然语言处理包括词汇、句法、语义和语用四个层面,句法研究单词之间的形式关系,包括单词如何形成词类、相邻单词如何形成短语以及单词之间的联系方式等,其核心是句法剖析。句法剖析是识别输入句子并给句子指派结构的过程,它是语义分析的中间阶段,在机器翻译、智能问答和关系抽取中都有重要的作用。句法剖析的结果也常表示为树形结构,称为句法树。在现有技术中,在生成句法树时,主要是通过N元语法来实现。N元语法中的分支较多,在生成句法树时,需要对各种可能的分支进行处理,而这些可能的分支中大部分都是无效的,处理过程中需要消耗大量的资源和时间。通过上述描述可见,现有的生成句法树的方案的效率较低。
技术实现思路
本专利技术实施例提供了一种生成句法树的方法及装置,能够提高生成句法树的效率。一方面,本专利技术实施例提供了一种生成句法树的方法,包括:预先将N元语法的替换规则转换为二元语法的替换规则;预先根据所述二元语法的替换规则,生成左端词性匹配语法、右端词性匹配语法;预先根据所述左端词性匹配语法,生成左端词性匹配索引表;预先根据所述右端词性匹配语法,生成右端词性匹配索引表;预先根据所述二元语法的替换规则和所述左端词性匹配语法,生成左端词性祖先表;预先根据所述二元语法的替换规则和所述右端词性匹配语法,生成右端词性祖先表;包括:读取待处理语句;根据所述二元语法的替换规则、所述左端词性匹配语法、所述右端词性匹配语法、所述左端词性匹配索引表、所述右端词性匹配索引表、所述左端词性祖先表和所述右 ...
【技术保护点】
1.一种生成句法树的方法,其特征在于,预先将N元语法的替换规则转换为二元语法的替换规则;预先根据所述二元语法的替换规则,生成左端词性匹配语法、右端词性匹配语法;预先根据所述左端词性匹配语法,生成左端词性匹配索引表;预先根据所述右端词性匹配语法,生成右端词性匹配索引表;预先根据所述二元语法的替换规则和所述左端词性匹配语法,生成左端词性祖先表;预先根据所述二元语法的替换规则和所述右端词性匹配语法,生成右端词性祖先表;包括:读取待处理语句;根据所述二元语法的替换规则、所述左端词性匹配语法、所述右端词性匹配语法、所述左端词性匹配索引表、所述右端词性匹配索引表、所述左端词性祖先表和所述右端词性祖先表,对所述待处理语句进行处理,生成所述待处理语句对应的句法树。
【技术特征摘要】
1.一种生成句法树的方法,其特征在于,预先将N元语法的替换规则转换为二元语法的替换规则;预先根据所述二元语法的替换规则,生成左端词性匹配语法、右端词性匹配语法;预先根据所述左端词性匹配语法,生成左端词性匹配索引表;预先根据所述右端词性匹配语法,生成右端词性匹配索引表;预先根据所述二元语法的替换规则和所述左端词性匹配语法,生成左端词性祖先表;预先根据所述二元语法的替换规则和所述右端词性匹配语法,生成右端词性祖先表;包括:读取待处理语句;根据所述二元语法的替换规则、所述左端词性匹配语法、所述右端词性匹配语法、所述左端词性匹配索引表、所述右端词性匹配索引表、所述左端词性祖先表和所述右端词性祖先表,对所述待处理语句进行处理,生成所述待处理语句对应的句法树。2.根据权利要求1所述的方法,其特征在于,所述预先将N元语法的替换规则转换为二元语法的替换规则,包括:S11:读取第1个N元语法的替换规则X→y,其中,X→y表示用右边符号所代表的项y替换左边符号所代表的项X;S12:计算y中包含的符号个数n,其中,y是由n个符号通过空格连接而成的字符串,y=Y1Y2LLYn;S13:判断n是否大于2,如果是,执行S14,否则执行S16;S14:将X→y表示为X→Y1Y2LLYn,执行S15;S15:将X→Y1Y2LLYn等效转换为如下二元语法的替换规则,执行S16:X→Y1Z1,Z1→Y2Z2,…,Zm→Ym+1Zm+1,…,Zn-1→Yn;其中,Zi表示第i个过渡项,i=1,2,L,n-1;S16:判断N元语法的替换规则是否读取完毕,如果没有,执行S17,否则,执行S18;S17:读取下1个N元语法替换规则,执行S12;S18:保存转换后的所述二元语法的替换规则。3.根据权利要求1所述的方法,其特征在于,所述预先根据所述二元语法的替换规则,生成左端词性匹配语法、右端词性匹配语法,包括:按照所述二元语法中的后项1的字典序排列所述二元语法的替换规则,生成所述左端词性匹配语法;按照所述二元语法中的后项2的字典序排列所述二元语法的替换规则,生成所述右端词性匹配语法,其中,当所述二元语法中的某个替换规则不存在后项2时,根据该替换规则的后项1进行排列;其中,任一所述二元语法的替换规则表示为A→BC,其中,A为当前替换规则的前项,B为当前替换规则的后项1,C表示当前替换规则的后项2,后项2可为空,A→BC表示由后项1、后项2替换前项。4.根据权利要求3所述的方法,其特征在于,所述预先根据所述左端词性匹配语法,生成左端词性匹配索引表,包括:S2211:初始化所述左端词性匹配索引表为空;S2212:从所述左端词性匹配语法中提取两列:编号的列和后项1的列,构成“编号-后项1”表;S2213:读取“编号-后项1”表的第1条记录;S2214:判断所读取的记录中的后项1是否存在于所述左端词性匹配索引表中,如果不存在,则执行S2215,否则执行S2216;S2215:将所读取的记录添加到所述左端词性匹配索引表的末尾;S2216:判断“编号-后项1”表是否读取完毕,如果没有,执行S2217,否则执行S2218;S2217:读取“编号-后项1”表的下1条记录,执行S2214;S2218:保存所述左端词性匹配索引表;其中,所述左端词性匹配语法中包括:编号的列、前项的列、后项1的列和后项2的列,在左端词性匹配语法中每一行表示一个替换规则;所述预先根据所述右端词性匹配语法,生成右端词性匹配索引表,包括:S2221:初始化所述右端词性匹配索引表为空;S2222:从右端词性匹配语法中提取两列:编号的列和后项2的列,构成“编号-后项2”表,其中,当前某条替换规则的后项2不存在时,则将替换规则的后项1作为后项2填充到“编号-后项2”表中;S2223:读取“编号-后项2”表的第1条记录;S2224:判断所读取的记录的后项2是否存在于所述右端词性匹配索引表中,如果不存在,执行S2225,否则执行S2226;S2225:将所读取的记录添加到所述右端词性匹配索引表的末尾;S2226:判断“编号-后项2”表是否读取完毕,如果没有,执行S2227,否则执行S2228;S2227:读取“编号-后项2”表的下1条记录,执行S2224;S2228:保存所述右端词性匹配索引表;其中,所述右端词性匹配语法中包括:编号的列、前项的列、后项1的列和后项2的列,在右端词性匹配语法中每一行表示一个替换规则。5.根据权利要求1所述的方法,其特征在于,所述预先根据所述二元语法的替换规则和所述左端词性匹配语法,生成左端词性祖先表,包括:S2311:初始化左端词性祖先表为空;S2312:提取所述二元语法的替换规则中的“后项1”中的词性,构成左端词性表;S2313:读取左端词性表的第1个词性Tag;S2314:初始化Tag的祖先集合ProTag={};S2315:初始化“后项1”集合TagB={Tag};S2316:在所述左端词性匹配语法中,找出“后项1”为TagB中元素时,所有“前项”构成的集合TagA;S2317:判断TagA是否是空集,如果是,执行S231D,否则,执行S2318;S2318:判断TagA是否是TagB的子集,如果是,执行S231D,否则,执行S2319;S2319:计算并集:ProTag=ProTag∪TagA;S231A:计算差集:TagA=TagA-TagB;S231B:判断TagA是否是空集,如果是,执行S231D,否则,执行S231C;S231C:赋值TagB=TagA,执行S2316;S231D:将(Tag,ProTag)添加到左端词性祖先表的末尾;S231E:判断所述左端词性表是否读取完毕,如果没有,执行S231F,否则,执行S231G;S231F:读取所述左端词性表的下1个词性,执行S2314;S231G:保存左端词性祖先表;所述预先根据所述二元语法的替换规则和所述右端词性匹配语法,生成右端词性祖先表,包括:S2321:初始化右端词性祖先表为空;S2322:提取二元语法的替换规则中的“后项2”中的词性,构成右端词性表,其中,当某条替换规则的后项2不存在时,则用该替换规则的后项1代替后项2;S2323:读取所述右端词性表的第1个词性Tag;S2324:初始化Tag的祖先集合ProTag={};S2325:初始化“后项2”集合TagC={Tag};S2326:在所述右端词性匹配语法中,找出“后项2”为TagC中元素时,所有“前项”构成的集合TagA,其中,当某条替换规则的后项2不存在时,则用后项1代替后项2;S2327:判断TagA是否是空集,如果是,执行S232D,否则,执行S2328;S2328:判断TagA是否是TagC的子集,如果是,执行S232D,否则,执行S2329;S2329:计算并集:ProTag=ProTag∪TagA;S232A:计算差集:TagA=TagA-TagC;S232B:判断TagA是否是空集,如果是,执行S232D,否则,执行S232C;S232C:赋值TagC=TagA,执行S2326;S232D:将(Tag,ProTag)添加到右端词性祖先表的末尾;S232E:判断所述右端词性表是否读取完毕,如果没有,执行S232F,否则,执行S232G;S232F:读取所述右端词性表的下1个词性,执行S2324;S232G:保存右端词性祖先表。6.根据权利要求1所述的方法,其特征在于,进一步包括:预先设置每一条所述二元语法的替换规则出现的概率;所述根据所述二元语法的替换规则、所述左端词性匹配语法、所述右端词性匹配语法、所述左端词性匹配索引表、所述右端词性匹配索引表、所述左端词性祖先表和所述右端词性祖先表,对所述待处理语句进行处理,生成所述待处理语句对应的句法树,包括:S31:读取tag,其中,tag是sent中词汇对应的词性tag[1]、tag[2]、......、tag[N],sent表示所述待处理语句,sent由N个词汇sent[1]、sent[2]、......、sent[N]构成,sent[i…j]表示由sent[i]、sent[i+1]、......、sent[j]所构成的语句;S32:初始化前项preTag=S;S33:初始化分值score=-1,句法树syntaxTreeStr="";S34:统计sent中词汇数量N;S35:判断N是否等于1,如果是,执行S36,否则,执行S37;S36:生成单个词汇对应的1元句法树;S37:判断preTag是否是tag[1]的左端词性祖先,如果是,执行S38;S38:判断preTag是否是tag[N]的右端词性祖先,如果是,执行S39;S39:遍历sent中间的N-1个分割位置,根据所述二元语法的替换规则、所述左端词性匹配语法、所述右端词性匹配语法、所述左端词性匹配索引表、所述右端词性匹配索引表、所述左端词性祖先表、所述右端词性祖先表和每一条所述二元语法的替换规则出现的概率,确定N-1个分割位置中分值最大的句法树;S3A:根据下式确定所述待处理语句的...
【专利技术属性】
技术研发人员:王功明,张娴,郭运艳,王建华,
申请(专利权)人:浪潮软件集团有限公司,
类型:发明
国别省市:山东,37
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。