CN108491381B - 一种汉语二分结构的句法分析方法 - Google Patents

一种汉语二分结构的句法分析方法 Download PDF

Info

Publication number
CN108491381B
CN108491381B CN201810203192.4A CN201810203192A CN108491381B CN 108491381 B CN108491381 B CN 108491381B CN 201810203192 A CN201810203192 A CN 201810203192A CN 108491381 B CN108491381 B CN 108491381B
Authority
CN
China
Prior art keywords
sequence
syntax
chinese
sentence
tree
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
Application number
CN201810203192.4A
Other languages
English (en)
Other versions
CN108491381A (zh
Inventor
谷波
王瑞波
李济洪
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanxi University
Original Assignee
Shanxi University
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanxi University filed Critical Shanxi University
Priority to CN201810203192.4A priority Critical patent/CN108491381B/zh
Publication of CN108491381A publication Critical patent/CN108491381A/zh
Application granted granted Critical
Publication of CN108491381B publication Critical patent/CN108491381B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/205Parsing
    • G06F40/211Syntactic parsing, e.g. based on context-free grammar [CFG] or unification grammars
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/20Natural language analysis
    • G06F40/279Recognition of textual entities
    • G06F40/289Phrasal analysis, e.g. finite state techniques or chunking

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Machine Translation (AREA)

Abstract

本发明公开了一种汉语二分结构的句法分析方法,从汉语成分的内部结构出发构建句法树,将句子成分的内部限定为二分结构,更加适合汉语的句法特点;使用简洁高效的哈夫曼编码来表示和描述,易将原始的句子和句法树的表示相分离,节省存储空间,也便于计算机处理;递归使用基于RNN的序列标注器进行汉语的句法分析,减少了句法分析对于其它资源的依赖,也降低了使用自动词性标注工具所带来的错误积累;对词的间隔标记的RNN模型中使用了hinge‑loss损失函数,提高了句法分析的准确率和算法的运行效率。

Description

一种汉语二分结构的句法分析方法
技术领域
本发明涉及句法分析领域,特别是涉及一种汉语二分结构的句法分析方法。
背景技术
在当前人工智能高速发展的阶段,计算机对于自然语言的深度理解越来越受到重视。因为只有计算机能能够真正理解的人类的自然语言,才能说计算机拥有了智能,人工智能技术才能更好的服务人类。目前的自然语言处理和自然语言理解技术还远未达到这一要求,但是自然语言处理的一些基础任务,比如在汉语中的分词,词性标注,命名实体识别,句法分析,语义和篇章的理解,已经越来越显示出在工业界中的实际价值。比如搜索引擎,问答系统,聊天系统,以及最近出现的热度比较高的机器智能自动写诗等等,都是基于自然语言处理的技术的。
句法分析在自然语言处理中,是一项重要的任务,它上承词法分析任务,比如分词、词性标注、命名体识别等等,下接语义分析、篇章分析等任务。已有的研究表明,正确的句法分析系统会为其他的自然语言处理任务提供更多的更有用的信息,从而提高其他自然语言处理的性能。自然语言中的句法分析任务,可以看成是将自然语言中一个由词的线性序列表示的句子,经过算法的分析,表示成一棵树结构的形式,这种形式称为句法分析树。目前主流的句法分析基于的理论有两种,一种是基于乔姆斯基的形式语言理论中的CFG(上下文无关文法),这种句法分析也称为成分句法分析;另一种是基于特斯尼耶尔的依存句法理论的句法分析。本发明专利采用的是成分句法分析,即通过构建一棵层次句法分析树,可以描述一个句子是如何由词逐步组合成短语,最终构成整个句子的,层次结构的句法分析树可以提供线性的词序列所无法提供的丰富的结构信息。
目前汉语的成分句法分析,借鉴了英文中的句法分析理论和方法,都是基于CFG(上下文无关文法)。但是,从语言学上来看,中文和英文有很大的不同,中文是一种孤立语言,缺少形态的变化,词性的概念不明显,以意合为主,成句方式较为自由。而英语是一种屈折语,词的形态变化丰富,有明确的词性的概念,成句的方式较为严格。所以借鉴英文方式的句法分析,不能很好的反应出汉语的特点,也提供不了中文自然语言处理中需要的相应的信息。早期基于CFG的句法分析方法,存在的问题是事先需要一个构造好的CFG文法,但是手工构造的文法有无法覆盖和切合现实中人们使用的语言的情况。因而后来出现了基于统计的句法分析,但是其仍然是基于CFG文法的,一方面对CFG的规则加上概率(可以从语料库中统计出规则以及每条规则的概率),另一方面对于实际的句法分析方法也通过统计来学习在不同的情况下应该执行什么样的分析动作。CFG的规则一般不直接在词上构造(比如NP红色的苹果),因为这会导致将来不能处理含有域外词的句子,所以这类方法一般都是在词性一级上构造规则的(例如,NP adj n,而“红色的”需要事先标注词性为adj,“苹果”事先标注词性n)。这样就使得目前的成分句法分析方法非常依赖于词性标注,但是仅仅词性构造规则又使得句法分析结果不够准确,不能处理一些歧义问题,因而多数性能好的句法分析器又引入了中心词的信息。总之,目前的成分句法分析器都需要有准确的词性标记和合适的中心词的标记的信息。
语言学家构造出能覆盖比较全面的句法规则是非常困难的,而句法语料库的构建则相对来说容易一些,只是需要花一些人力和时间,现在的基于统计的句法分析器的实现都离不开语料库的构建。因为CFG并不限定规则右端的符号的具体个数,所以目前的汉语语料库都不限定是二分结构的,而且因为训练基于CFG的句法分析器需要词性,因而汉语语料库都标注了词性信息,有些还增加了中心词信息。这样在文本中表示句法树就比较复杂,目前的句法语料库表示一个句子的句法树都是用左右的括号对作为分割符号的,因为句法树是一个层次结构,成分之间存在着嵌套关系,因此括号对之间会存在许多的嵌套,原始句子中的词还要根据树中的位置分散在不同层次的括号对内部,将这种格式的句法树存储在一行文本中,人肉眼看是非常难以看出句法树的,即使有些语料库采用的每个词存储在一行的方式,句法树的结构对人来说也还是难以直观的看出来,而且这种方式也不是很方便计算机读取分析,占用的存储空间也比较大。
比如对于例句“我们班有许多外国学生”,图1是它的句法树结构。该例句的句法树结构如图1所示。
传统的通过括号表示的句法树,为“[我们[班][有[许多[外国学生]]]]”。这种表示看起来不太直观,而且表示层次信息的括号和原始的词互相交织在一起,计算机的处理也不太方便。如果加上词性和中心词等信息这种表示看起来就更复杂了。
发明内容
本发明主为解决现有问题的不足之处而提供一种汉语二分结构的句法分析方法。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种汉语二分结构的句法分析方法,该方法的步骤包括:将指定句库中每一语句标注为满二叉树结构的句法树,生成汉语二分结构句法语料库;其中,每一语句的句法树的表示方式是哈夫曼编码;选取所述汉语二分结构句法语料库中部分句法树作为训练集,将所述训练集中的每一语句的句法树的每一个子树作为训练序列标注器的一个样本,将训练集句法树语料转换成序列标注器的训练语料,使用转换后的训练集合进行训练,得到序列标注器;通过递归地调用所述序列标注器,对输入的汉语经过分词后的语句进行分析,得到对应语句的满二叉树结构的句法树。
其中,对每一语句的句法树进行哈夫曼编码的步骤包括:将每一句法树的根节点的编码标记为1;对于句法树中的非根中间节点,假定其父节点的编码为h,按照如下方式确定其对应的哈夫曼的编码:A.如果该节点是其父节点的左孩子,则其编码为父节点的哈夫曼编码乘以2,即是h*2;B.如果该节点是其父节点的有孩子,则其编码为父节点的哈夫曼编码乘以2,然后再加1,即是h*2+1。
其中,将训练集句法树语料转换成序列标注器的训练语料的方法步骤包括:提取训练集中的所有句法树的所有子树,去掉只有两个词的子树;将剩下的子树处理成,有左右两个子成分的序列,作为实际使用的序列标注训练集;将序列标注训练集合转换成边界标记形式,用以训练序列标注模型,并根据结果进行模型参数的选择以及训练好的序列标注器;其中,所述边界标记形式标记于相应句法树的子树的词上,或者标记于词的间隔上。
其中,递归地调用所述序列标注器,对输入的经过分词后的语句进行分析,得到对应语句的满二叉树结构的句法树的步骤中,采用逐层分割的贪心算法,从语句的词序列开始,递归地使用序列标注器,不断对词序列进行二分,直到划分到词。
区别于现有技术,本发明的汉语二分结构的句法分析方法从汉语成分的内部结构出发构建句法树,将句子成分的内部限定为二分结构,更加适合汉语的句法特点;使用简洁高效的哈夫曼编码来表示和描述,易将原始的句子和句法树的表示相分离,节省存储空间,也便于计算机处理;递归使用序列标注器进行汉语的句法分析,减少了句法分析对于其它资源的依赖,也降低了使用自动词性标注工具所带来的错误积累;对词的间隔标记的RNN模型采用了hinge-loss损失函数,提高了句法分析的准确率和算法运行效率。
附图说明
图1是现有技术中句法树的结构示意图。
图2是本发明提供的一种汉语二分结构的句法分析方法的流程示意图。
图3是本发明提供的一种汉语二分结构的句法分析方法的句法树的哈夫曼编码方式示意图。
图4是本发明提供的一种汉语二分结构的句法分析方法的训练语料转序列标注用训练集合的流程流程图。
图5是本发明提供的一种汉语二分结构的句法分析方法的汉语二分结构的句法分析预测算法流程示意图。
具体实施方式
下面结合具体实施方式对本发明的技术方案作进一步更详细的描述。显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
参阅图2,图2是本发明提供的一种汉语二分结构的句法分析方法的流程示意图。该方法的步骤包括:
S110:将指定句库中每一语句标注为满二叉树结构的句法树,生成训练集的汉语二分结构句法语料库。
汉语二分结构句法中,把每个句法成分都看成是由左右两个子成分构成,将一个给定的汉语句子描述成一棵满二叉树(fullbinary tree)。事实上,汉语的大部分词由多个字组成,而且除了极少数外来词,绝大多数多字词内部是有结构关系的,从朱德熙先生的观点来看,这种内部关系和短语的内部结构是一致的。因此如果将字作为最终叶节点的话,这种二分结构甚至可以将汉语的分词一并纳入到一个句子的二分结构中。
汉语的二分结构中的句法成分,包括词、短语或句子,内部结构是有一致性的,可以分成6种内部结构[朱德熙1982][陆俭明2005],包括偏正结构,述宾结构,述补结构,主谓结构,联合结构和连谓结构。除了联合和连谓结构可能出现三个或三个以上的并列的成分,其它4种都是自然的二分结构。对于由三个或三个以上的成分,构成的联合和连谓结构,按照从左到右的顺序将其依次进行二分,这样所有的汉语语法成分都能转换成二分形式的表示。
在上述分析的基础上,标注了汉语二分结构句法语料库(语料库)。该语料库采基于成分句法的形式,一个句子标注成一个成分句法树的形式,但是将句法树的形式进行了限制,每棵标注的句法树是满二叉树,即树中任何一个非叶子节点的句法成分,都有左右两个子树(子成分)组成,另外在每个成分上还可以标注其内部结构的类型(目前的语料库中尚未标注,今后将会下一个版本的语料库中标注这种信息)。因为是满二叉树的形式,在进行手工句子标注时,以及进行自动句法分析的时候可以更加简洁、高效。
一个句子的二分结构句法形式是一个满二叉树,可以采用哈夫曼编码进行标记,这种表示方式可以以一种非递归的线性的形式,描述出递归的二分的层次结构的句法树的全部信息。这样的表示要比括号对的表示形式更加简洁直观,方便标注人员阅读和标记,也便于存储。因此在语料库中对词的间隔使用了哈夫曼编码进行标记(haff-labels)。给定一个句子有n个词,对其n-1个间隔(或称为句法成分的切分位置)进行标记,将一个二叉的句法树的结构,表示成n-1个数字。具体的标记方法如下。
(1)句法树的根节点的编码标记为1。
(2)对于句法树中的非根中间节点,假定其父节点的编码为h,按照如下方式确定其对应的哈夫曼的编码:
A.如果该节点是其父节点的左孩子,则其编码为父节点的哈夫曼编码乘以2,即是h*2。
B.如果该节点是其父节点的有孩子,则其编码为父节点的哈夫曼编码乘以2,然后再加1,即是h*2+1。
例如,对于例句“班有许多外国学生”,对应的句法树形式如下图3所示。图3中,矩形表示句法树的叶子节点(词),圆形句法树的非叶子节点(短语),圆形中间的数字表示该间隔位置对应的哈夫曼编码(图中显示的是其二进制形式)。图中通过实线连接的叶子和非叶子节点构成了一棵二分结构的成分句法树(该句法树是一棵满二叉树)。图中用虚线链接的两个圆形节点,是为了更清楚的显示,非叶子节点和它对应的词间隔的位置而增加的。在通过文本保存二分结构句法树时,用分号‘;’将句子和它的对应的哈夫曼编码十进制序列分割,并放在一行中,编码之间也用空格分隔,这样就把一个句子和它的二分结构的句法树的描述放在一行中,表示成一个线性形式。最终的线性表示示例如下:
班有许多外国学生;213715。
S120:选取所述汉语二分结构句法语料库中部分句法树作为训练集,将所述训练集中的每一语句的句法树的每一个子树作为训练序列标注器的一个样本,将训练集句法树语料转换成序列标注器的训练语料,使用转换后的训练集合进行训练,得到序列标注器。
成分句法分析是一种基于统计的分析方法,采用自顶向下的分析方法,将句法分析过程看成一个序列逐层向下分割为两个子序列的递归过程。也就是把句法分析过程看成了一个递归地进行序列分割的过程,每次都将长的序列分割成两个短的序列,然后再分别的对两个短的序列进行递归的分割,直到达到每个词。这样句法分析就转换为一个序列标注问题,从而可以把序列标注模型应用到句法分析的层次模型上。
如果对句子的所有可能句法树都计算其概率或得分,然后选择概率或得分最大句法树作为最终分析结果,这样做计算量是非常巨大的,而且目前很少有比较高效的动态规划算法对其进行求解。退而求其次,自然可以考虑逐层分割的贪心算法,在句法分析的时候,从整个句子的词序列开始,递归地使用序列标注器,不断对词序列进行二分,直到划分到词。在每一次二分的时候,只考虑保留当前把一个词序列划分为左右两个子成分的最大概率或最大得分的结果,即只考虑当前最优,而不考虑最终得到的树的整体最优。
句法语料库的训练语料是一个句子的二叉树,包含了层次的信息,树结构是无法直接用来训练序列标注器的,因此将训练集合中的每个句子的每一个子树,都抽取出来作为训练序列标注器的一个样本,并且只学习其第一层的标注结果,而不考虑其子树的下一级。把每个子树看作整个序列,把组成它的左右两个子树看成是序列标注后的左右两个子成分。如果子树只由两个词构成,这时只能产生一种序列分析结果,如果在训练集中加入这些两个词的子树,会对序列标注器产生干扰,在事先的实验中发现,训练序列标注器去掉这些子树会轻微提高句法分析的性能,所以在最终的训练集合中把两个词的子树都删除了。例如,前面图2中的句子,“班有许多外国学生”,经过抽取子树,去除两个词的子树之后,生成的训练序列标注器的样例有:班|有许多外国学生,有|许多外国学生,许多|外国学生。
具体的将语料库训练语料转换成序列标注器的训练语料的方法如下。经过下述处理,就可以使用转换后的训练集合来训练一个序列标注器。
a)将训练数据句子集合中的所有句子的所有子树提取出来。
b)去掉只有两个词的子树。
c)将剩下的子树处理成,有左右两个子成分的序列(即只保存每个子树的第一层结构,而不考虑其它层),作为实际使用的序列标注训练集。
d)将序列标注训练集合,转换成某一种边界标记(可以在词上,也可以在词的间隔上)形式。
e)用上一步处理后的训练样例来训练序列标注模型,并根据结果进行模型参数的选择以及训练好的序列标注器。
语料库训练语料转序列标注用训练集合的流程图如图4所示。
S130:通过递归地调用所述序列标注器,对输入的经过分词后的语句进行分析,得到对应语句的满二叉树结构的句法树。
当得到训练好的序列标注器之后,递归使用该标注器,就可以对一个输入的测试句子进行预测,生成它的二分结构的成分句法树。下面是汉语二分结构的句法分析预测算法。
先对其中使用的变量与数据结构做一介绍。序列标注器为M,M接受一个长度大于2的词序列为参数,输出为左右两个子序列left_list和right_list,以及分割的词间隔位置的索引cur_index。输入的句子用sen表示,在程序运行过程中句中词的索引值不变,词的间隔位置的索引值对应于间隔左部的词的索引,index(cur_list[i])返回当前序列cur_list的第i个词在原始句子中对应的索引。序列栈list_stack表示存储待处理的词序列的栈,栈中的每个元素是一个词的序列;编码栈code_stack存储当前处理的词序列二分后,二分的中间节点(某个词间隔位置)对应的哈夫曼编码;cur_list表示当前正在处理的序列;当前编码变量cur_code表示当前正在处理的序列,二分时应该对应的哈夫曼编码;int_labels存储每个词间隔位置对应的编码(当词个数为n时,int_labels的元素个数为n-1),当算法结束时,int_labels保存了句子中每个词的间隔位置对应的哈夫曼编码,该编码序列即表示了一棵二分的成分句法树。预测算法的具体步骤为:
a.初始化词序列栈list_stack为空,初始化编码栈code_stack为空,初始化句子间隔标记数组int_labels的元素全部为0,初始当前序列变量cur_list为null,初始当前编码变量cur_code为1;
b.将输入句子sen作为整个词序列压入list_stack,将cur_code压入code_stack;
c.判断list_stack是否为空,若为空转g(程序出口);否则从list_stack弹出一个元素并赋给当前序列变量cur_list,同时从code_stack弹出一个元素赋值给cur_code;
d.判断cur_list的词的个数是否小于三,如果小于三转到e,否则转到f;
e.判断cur_list的词的个数是否小于二,如果小于二则转到c(处理下一个词序列),否则将cur_index=index(cur_list[0]),将int_labels[cur_index]置为cur_code,然后转到c;
f.对cur_list调用M,将返回的右部子序列right_list和左部子序列left_list,按照先右后左的顺序压入list_stack;同时将(cur_code<<2)+1和cur_code<<2按照先后顺序压入code_stack中;并将M返回的左右两个子序列之间的间隔的索引cur_index对应的int_labels中的元素int_labels[cur_index]设置为cur_code。然后转到c;
g.结束。最终标注结果存储在int_labels数组中。
算法流程图如图5所示。
句法分析需要递归地调用一个序列标注器。传统的组块分析中,都是通过将标记打在构成短语的词上,这是一种间接的标记方式,因为一个短语的左边界是位于构成短语的首词和首词的前面那个词之间的间隔的位置,而短语的尾部的词以及紧邻短语后面那个词之间的间隔的地方则是短语的右边界。所以短语的识别不仅由构成短语的词决定,更是由短语首尾词以及与它们相邻的短语前后的词共同决定的。这种现象在分词和句法分析中都很常见,举例如下,方括号内部是句子中的一个成分。
a.中国的[铁路建设]发展得很快。
b.[中国铁路]建设得很快。
在这组例子中,同样的词或字的序列“铁路建设”,在不同的句子中,由于他们的前后紧邻的词不同,因而出现了不同的分词或组块的划分方式。a中的“的铁路”以及“建设发展”,不如“铁路建设”之间的关联度高,所以“铁路建设”组合在一起;b中的“铁路建设”,不如“中国铁路”以及“建设得”之间的关联度高,因而“铁路建设”分开了。认为传统的把标记打在词上,那么每次进行标记时考虑的重点是当前词(即使开窗口也只能提供有限的信息,并且关注点仍然是当前词的标记),而如果将标记打到两个词的间隔上,那么的关注点就转移到了词和词之间的关联程度上了,这样通过两两词或短语(或者字)之间的关联紧密程度,应该能更好的进行句法分析(或者分词)。这就是说不论在分词还是在短语或组块分析中,词或短语的形成不仅仅要关注词或者字本身,更应该把关注点放在词或者字的相邻的词和字上,也就是词或者字之间的间隔位置上。
基于此种考虑,针对二分结构的句法形式,提出了直接对间隔进行标记的方法,并且把当前能作为边界的间隔标记为1,不能作为边界的间隔标记为-1。由于采用贪心策略进行二分结构的句法分析,每一次分析都是把一个成分切分成左右两个子成分,即只能有一个间隔被标记为1,其它的间隔位置都是-1。
还是以前面的句子“班有许多外国学生”为例,来说明的词间隔标记策略和步骤如下表1。每行的序号表示的是第几次调用序列标注器,对词序列进行切分。
Figure BDA0001595066860000111
表1间隔标记示例表
假设给定的句子sen是由n个词的构成的一个序列,sen=”w1w2...wn”,那么就有n-1个间隔的序列intervals=“s1s2…sn-1”。对于每个间隔si,计算得分scorei。在训练阶段,采用一个hinge-loss的损失函数,使得真实切分的间隔的得分远大于其它间隔的得分。在测试阶段,则将得分最大的间隔作为当前这次切分的位置。
采用的仍然是RNN的结构,具体描述如下。该RNN在输入层和隐层都有对应的两个独立的子网络,分别对应正向(来自于间隔左边的词)和反向(来自于间隔右边的词)。对于当前的间隔,取其左右两边的两个词都作为RNN输入的当前词。当前间隔左边的词作为正向RNN的输入的词,来自于当前间隔右边的词作为反向RNN的输入的词。对于这两个词也可以采用对称的窗口机制,然后采用查表操作,最终形成两个向量,分别作为正向RNN和反向RNN的输入。RNN的隐层和输入层相对应,也分别有正向和反向的隐层,正向隐层和反向隐层的两个输出向量,在同一个输出层进行了合并。由于输出是一个得分,需要使得那个真实切分的间隔的得分大于其它的间隔的得分,所以在最后一层输出层没有使用softmax层,而是对前向和反向两个隐层的输出分别和它们对应的权重向量进行内积运算,然后进行相加作为最终该间隔上的得分。对于当前的间隔,网络结构如下图4所示。
输入:是一个已经分词后的中文句子,sen=”w1w2...wn”,wi对应句子中的从左向右看的第i个词。
输入层:采用了和[Collobert 2011]相同的方式对词进行处理。词库中的每个词都表示成一个向量的(word-embedding),对当前词也采用了开窗口的方式。假设每个词对应的word-embedding维数大小为d,窗口(对称)大小为s,对当前词经过取窗口,然后查word-embedding表的操作,可以得到一个大小为d*s的输入向量x。输入层和普通的RNN相似,只是对每个间隔,有两个输入向量(分别由间隔左右两边的词得到),所以该模型下有两个输入层,一个是从左向右依次接收输入的词(称为正向输入层),另一个是从右向左依次接收输入的词(称为反向输入层)。
隐层:和两个输入层对应,也有两个隐层,接收间隔左边词作为输入,和正向输入层对应的隐层称为正向隐层记作
Figure BDA0001595066860000121
接收间隔右边的词作为输入,和反向输入层对应的隐层称为反向隐层记作
Figure BDA0001595066860000122
假设当前时刻t的输入向量为xt,正向输入层连接到隐层的权重矩阵为Whxf,正向隐层连接到隐层的权重矩阵是Whhf,正向隐层的偏置向量为bhf;反向输入层连接到隐层的权重矩阵为Whxb,反向隐层连接到隐层的权重矩阵是Whhb,反向隐层的偏置向量为bhb。隐层的激活函数为σ,使用的是sigmoid激活函数,两个隐层在t时刻隐层的计算公式如下(1)式和(2)式。
Figure BDA0001595066860000123
Figure BDA0001595066860000124
输出层:两个隐层的输出在同一个输出层进行合并,因为输出层最终的输出是一个得分score所以该模型下输出层只有一个输出单元。Wof和Wob分别表示前向隐层与输出层之间的权重矩阵,反向隐层与输出层之间的权重矩阵;bo表示输出层的偏置向量。在t时刻输出层输出的scoret计算公式如下。
Figure BDA0001595066860000131
损失函数:对序列进行一次切分时,只有一个词间隔可以是实际的切分点,因此需要使得这个间隔点的得分,大于其他词的间隔点的得分。假设有n个间隔位置,每个间隔位置的真实切分标记为yi(-1表示不在此处切分,1表示在此处切分),则对序列的一次切分的损失函数为(4)式。
Figure BDA0001595066860000132
训练时采用的是随机梯度下降算法。使用整个词序列的损失进行反向传播,更新词向量和网络权重。测试时,对一个词序列,把得分最大的间隔作为切分的位置。
区别于现有技术,本发明的汉语二分结构的句法分析方法从汉语成分的内部结构出发构建句法树,将句子成分的内部限定为二分结构,更加适合汉语的句法特点;使用简洁高效的哈夫曼编码来表示和描述,易将原始的句子和句法树的表示相分离,节省存储空间,也便于计算机处理;递归使用序列标注器进行汉语的句法分析,减少了句法分析对于其它资源的依赖,也降低了使用自动词性标注工具所带来的错误积累;对词的间隔标记的RNN模型中使用了hinge-loss损失函数,提高了句法分析的准确率和算法的运行效率。
以上仅为本发明的实施方式,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

Claims (3)

1.一种汉语二分结构的句法分析方法,其特征在于,包括:
将指定句库中每一语句标注为满二叉树结构的句法树,生成汉语二分结构句法语料库;其中,每一语句的句法树的表示方式是哈夫曼编码;
选取所述汉语二分结构句法语料库中部分句法树作为训练集,将所述训练集中的每一语句的句法树的每一个子树作为训练序列标注器的一个样本,将训练集句法树语料转换成序列标注器的训练语料,使用转换后的训练集合进行训练,得到序列标注器;
其中,将训练集句法树语料转换成序列标注器的训练语料的方法步骤包括:
提取训练集中的所有句法树的所有子树,去掉只有两个词的子树;
将剩下的子树处理成,有左右两个子成分的序列,作为实际使用的序列标注训练集;
将序列标注训练集转换成边界标记形式,用以训练序列标注模型,并根据结果进行模型参数的选择以及训练好的序列标注器;其中,所述边界标记形式标记于相应句法树的子树的词上,或者标记于词的间隔上;
采用逐层分割的贪心算法,从语句的词序列开始,递归地使用序列标注器,对输入的经过分词后的语句进行分析,不断对词序列进行二分,直到划分到词,得到对应语句的满二叉树结构的句法树。
2.根据权利要求1所述的汉语二分结构的句法分析方法,其特征在于,对每一语句的句法树进行哈夫曼编码的步骤包括:
将每一句法树的根节点的编码标记为1;
对于句法树中的非根中间节点,假定其父节点的编码为h,按照如下方式确定其对应的哈夫曼的编码:
A.如果该节点是其父节点的左孩子,则其编码为父节点的哈夫曼编码乘以2,即是h*2;
B.如果该节点是其父节点的右孩子,则其编码为父节点的哈夫曼编码乘以2,然后再加1,即是h*2+1。
3.根据权利要求1所述的汉语二分结构的句法分析方法,其特征在于,边界标记采用直接对词间间隔进行标记的方法,把可作为边界的间隔标记为1,不能作为边界的间隔标记为-1;同时采用贪心策略进行二分结构的句法分析,每一次分析都是把一个成分切分成左右两个子成分,其中一个间隔被标记为1,其它的间隔位置标记为-1。
CN201810203192.4A 2018-03-13 2018-03-13 一种汉语二分结构的句法分析方法 Active CN108491381B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810203192.4A CN108491381B (zh) 2018-03-13 2018-03-13 一种汉语二分结构的句法分析方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810203192.4A CN108491381B (zh) 2018-03-13 2018-03-13 一种汉语二分结构的句法分析方法

Publications (2)

Publication Number Publication Date
CN108491381A CN108491381A (zh) 2018-09-04
CN108491381B true CN108491381B (zh) 2021-05-14

Family

ID=63338745

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810203192.4A Active CN108491381B (zh) 2018-03-13 2018-03-13 一种汉语二分结构的句法分析方法

Country Status (1)

Country Link
CN (1) CN108491381B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109710928B (zh) * 2018-12-17 2022-08-19 新华三大数据技术有限公司 非结构化文本的实体关系抽取方法及装置
CN111488441B (zh) * 2020-04-08 2023-08-01 北京百度网讯科技有限公司 问题解析方法、装置、知识图谱问答系统和电子设备
CN112052664A (zh) * 2020-09-04 2020-12-08 恒睿(重庆)人工智能技术研究院有限公司 一种成分句法分析方法、装置、设备及介质
CN113221539B (zh) * 2021-07-08 2021-09-24 华东交通大学 一种集成句法信息的嵌套命名实体识别方法与系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218524A (ja) * 2012-04-09 2013-10-24 National Institute Of Information & Communication Technology 翻訳装置、およびプログラム
CN106202010A (zh) * 2016-07-12 2016-12-07 重庆兆光科技股份有限公司 基于深度神经网络构建法律文本语法树的方法和装置

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2013218524A (ja) * 2012-04-09 2013-10-24 National Institute Of Information & Communication Technology 翻訳装置、およびプログラム
CN106202010A (zh) * 2016-07-12 2016-12-07 重庆兆光科技股份有限公司 基于深度神经网络构建法律文本语法树的方法和装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
基于RNN的中文二分结构句法分析;谷波 等;《中文信息学报》;20190131;第33卷(第1期);第35-45页 *
自然语言处理中的深度学习:方法及应用;林奕欧等;《电子科技大学学报》;20171130;第46卷(第6期);第913-919页 *

Also Published As

Publication number Publication date
CN108491381A (zh) 2018-09-04

Similar Documents

Publication Publication Date Title
CN108491381B (zh) 一种汉语二分结构的句法分析方法
US7035789B2 (en) Supervised automatic text generation based on word classes for language modeling
Konstas et al. A global model for concept-to-text generation
US7603267B2 (en) Rules-based grammar for slots and statistical model for preterminals in natural language understanding system
US11210468B2 (en) System and method for comparing plurality of documents
CN107818085B (zh) 阅读机器人进行阅读理解的答案选择方法及系统
CN112765956B (zh) 基于多任务学习的依存句法分析方法及应用
CN111666764B (zh) 一种基于XLNet的自动摘要方法与装置
CN115795009A (zh) 基于生成式多语言模型的跨语言问答系统构建方法和装置
US20200311345A1 (en) System and method for language-independent contextual embedding
CN116661805B (zh) 代码表示的生成方法和装置、存储介质及电子设备
CN112185361B (zh) 一种语音识别模型训练方法、装置、电子设备及存储介质
CN111353314A (zh) 一种用于动漫生成的故事文本语义分析方法
CN108664464B (zh) 一种语义相关度的确定方法及确定装置
JP2012146263A (ja) 言語モデル学習装置、言語モデル学習方法、言語解析装置、及びプログラム
CN116861269A (zh) 工程领域的多源异构数据融合及分析方法
Zheng et al. Character-based parsing with convolutional neural network
CN112698831B (zh) 一种代码自动生成质量评估方法
CN115906818A (zh) 语法知识预测方法、装置、电子设备和存储介质
CN114896973A (zh) 一种文本处理方法、装置及电子设备
CN113468875A (zh) 一种面向SCADA系统自然语言交互接口语义分析的MNet方法
Espinal et al. A Format-sensitive BERT-based Approach to Resume Segmentation
CN117972025B (zh) 一种基于语义分析的海量文本检索匹配方法
CN111310459B (zh) 机器学习组件的训练方法及装置、中文分词方法及装置
Wachowiak Introduction to Text Analysis In R

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