首页> 中国专利> 一种新的汉语口语解析方法及装置

一种新的汉语口语解析方法及装置

摘要

本发明涉及自然语言处理领域,是一种新的汉语口语解析装置。本发明设计一种基于统计和规则相结合方法的口语解析装置,利用统计方法从训练语料中自动获取语义规则,生成语义分类树,然后利用语义分类树对待解析的汉语句子中与句子浅层语义密切相关的词语进行解析,获得每个词语对应的一种或多种语义及其概率,最后利用统计解析模型对语义分类树的解析结果进行选择和组合,从而获得整个句子的领域行为。实验结果表明,该方法具有较高的准确率和鲁棒性,适合应用在限定领域的汉语口语浅层语义解析。

著录项

  • 公开/公告号CN1949211A

    专利类型发明专利

  • 公开/公告日2007-04-18

    原文格式PDF

  • 申请/专利权人 中国科学院自动化研究所;

    申请/专利号CN200510109335.8

  • 发明设计人 宗成庆;左云存;

    申请日2005-10-13

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

  • 代理机构11021 中科专利商标代理有限责任公司;

  • 代理人段成云

  • 地址 100080 北京市海淀区中关村东路95号

  • 入库时间 2023-12-17 18:33:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-10-08

    未缴年费专利权终止 IPC(主分类):G06F17/27 授权公告日:20080723 终止日期:20181013 申请日:20051013

    专利权的终止

  • 2008-07-23

    授权

    授权

  • 2007-06-13

    实质审查的生效

    实质审查的生效

  • 2007-04-18

    公开

    公开

说明书

技术领域

本发明属于自然语言处理领域,特别涉及口语翻译,人机对话和口语解析的方法和装置。

背景技术

随着世界经济和科技等方面的发展,不同国家的人们在旅游、贸易等多种场合的交流日益频繁,随之,语言上的障碍也变得日益突出。口语翻译以达到不同语言之间的自由通讯为目的,越来越受到人们的重视。另外,在日常的应用领域中,如电话咨询、自动寻呼、旅馆预定、电话订票、会议预约等等,服务人员的工作完全可以用人机对话系统来代替。人机对话系统信息存储量多,信息检索速度快,动态更新信息的能力强。因此,发展口语翻译技术和口语对话系统蕴含着巨大的社会和经济效益。

口语解析技术是口语翻译系统和人机对话系统中的关键技术之一。从上个世纪八十年代以来,以美国、德国、法国和日本为代表的发达国家,对口语解析技术做了大量的研究工作。美国麻省理工学院(MIT)曾于八十年代末期和九十年代初期,先后开发了用于地理信息咨询的VOYAGER系统、用于地理和气象信息库查询的GALAXY系统以及用于在线民航信息咨询的PEGACUS系统和机票预订系统ATIS,MIT为这些对话系统设计了专门的口语解析器TINA;在1993年,欧盟设立了LRE(LanguageResearch and Engineering)计划,日本文部省也同时设立了UGD(Understanding and Generation of Dialogue)计划,这些计划都是专门用于资助口语解析技术研究的。

目前常见的口语解析装置采用的方法总体分为基于规则的方法和基于统计的方法。基于规则的方法是传统的口语解析方法,一个共同的缺点是鲁棒性不够好,对于口语中的非规范语言现象不能够很好的处理。近年来,基于统计模型的口语解析方法得到了更多的应用,这种方法利用大规模语料库作为其知识的来源,能够自动获取知识,因此,能够在很大程度上减轻人的负担,并且其知识来源于真实的文本,所以往往具有比较好的鲁棒性和领域移植性。然而,统计的口语解析方法难以处理句子的结构关系和长距离的约束。本文设计的口语解析装置采用统计和规则相结合的方法,实验结果证明,这种方法具有较高的准确率,是一种有效的口语浅层语义解析方法。

口语解析装置在口语自动翻译和人机对话等系统中具有非常重要的作用。传统的口语解析装置采用基于规则的方法,难以处理口语的不规范现象,基于统计模型方法的口语解析装置不利于处理句子中长距离约束关系。

发明内容

本发明的目的在于提供一种新的汉语口语浅层语义解析方法及装置。

本文设计了一种基于统计和规则相结合方法的口语解析装置,利用统计方法从训练语料中自动获取语义规则,生成语义分类树,然后利用语义分类树对待解析的汉语句子中与句子浅层语义密切相关的词语进行解析,获得每个词语对应的一种或多种语义及其概率,最后利用统计解析模型对语义分类树的解析结果进行选择和组合,从而获得整个句子的领域行为。实验结果表明,该方法具有较高的准确率和鲁棒性,适合应用在限定领域的汉语口语浅层语义解析。

本发明以国际语音翻译先进研究联盟C-STAR(Consortium for SpeechTranslation Advanced Research international)提出的中间转化格式IF(Interchange Format)中的领域行为作为口语浅层语义表示,领域行为描述句子的说话意图和基本概念,口语浅层语义解析装置的功能就是获得汉语口语句子的领域行为。

本发明的特点是具有较高的鲁棒性,能够较好的处理口语中存在的非规范语言现象和句子中词语之间长距离的约束关系。另外,采用统计的方法自动从语料中获取规则,能够快速的实现解析系统在不同领域间的移植,使得这一技术能够很快的在不同领域实现产品化。图1是本发明的结构框图,口语浅层语义解析装置主要包括训练和解析两个部分,由预处理装置、人工标记装置、查找装置、语义分类树装置以及统计解析模型装置组成。其中,预处理装置连接于人工标记装置,人工标记装置连接于语义分类树装置和统计解析模型装置,查找装置连接于语义分类树装置。

技术方案

基于语义分类树的汉语口语解析分为训练和解析两部分,具体过程如下:

训练过程包括:

a)收集相关领域的口语语料;

b)对句子进行预处理;

c)标记句子的领域行为和关键词对应的语义以及关键词的语义相关词;

d)利用标记的语料构造语义分类树装置并获得统计解析模型装置的参数;

解析过程包括:

e)对句子进行预处理;

f)查找待解析句子中和领域行为密切相关的关键词语;

g)利用语义分类树获得每个关键词语的一种或多种语义以及各种语义的概率;

h)利用统计解析模型对步骤g)获得的结果进行选择和组合获得句子的浅层语义领域行为。

步骤d)中提到的语义不确定度表示方法。

步骤d)中提到的语义分类树中节点语义概率表示方法。

步骤d)中提到的语义分类树构造算法,

(1)建立一个堆栈T保存当前所有可分节点指针;

(2)训练语料中标记出来的A的所有相关词类加入question(A),含有待解析词A的所有句子作为根节点的语料集合K,根结点中记录K中A所有的语义及其概率,根结点表达式初始化为“<+>”,把根结点指针加入T;

(3)如果T为空,所有节点不能再分,生成完整的语义分类树,结束算法;如果T不为空,取出最上面的节点指针,分别用question(A)中的每一个词类替换节点表达式,生成4M*n(n为节点表达式中符号“+”的数目)个问题;

(4)根据公式(1)和(2)算出使得Δi最大的问题作为节点问题,如果节点为非叶子节点,执行步骤(5),否则,返回步骤(3);

(5)建立节点的左右子节点,节点语料集合中所有句子分为两部分,符合节点问题的句子作为左子节点的语料集合,不符合节点问题的句子作为右子节点的语料集合,分别记录左右子节点语料集合中待解析词的语义及概率信息,将左右子节点指针加入T;

(6)左子节点表达式设为左子树的父节点问题,右子节点表达式设为右子树的父节点表达式,返回步骤(3)。

步骤d)中提到的统计解析模型。

下面详细说明本发明技术方案中所涉及的各个细节问题。

1.预处理装置

预处理包括分词和词汇语义归类两部分,目的是获得句子对应的词类序列。

本发明是针对特定领域的口语解析,所遇到的词汇量是十分有限的,我们采用了正向最大匹配方法来进行分词,其正确率可以满足系统的需要。

词汇语义归类,就是把每个词汇归属到不同的语义类里面去,这类似于词性标注,不过此时标注的不是词性,而是词汇所属的语义类。语义的归类是按照词典进行。我们定义了一个语义类词典,该词典对特定领域内的词汇进行了语义分类。分类的原则是按照词汇在句子中的语义功能进行的,语义功能相同的词汇归为一类。比如“单人间”和“单人房”,它们的词义是相同的,其语义功能必然相同,所以这两个词汇属于一类。又比如“大”和“小”,它们的词义不同,但在句子中的语义功能基本是相同的,所以把它们归为一类。一个句子中的词汇经过语义归类后,就得到一个语义类序列。表1是旅馆预订领域的部分语义类。

          表1.语义类和语义类包含的词汇

  语义类语义类包含的词汇  N_C_COST费用  收费  经费  费  花费  N_C_BED床  床位  铺位  床铺  大床  N_O_COUNTRY_PERSON英国人  日本人  美国人  德国人  N_C_NAME姓名  名字  全名  大名  V_INCLUDE包括  带有  加上  加  V_RESERVE预订  订  预约  单订

2.标记装置

标记采用人工的方法,主要包括两部分工作:1)领域行为标记,就是把一个句子对应的领域行为标记出来。如句子“我想预订一个单人间”标记为“give-information+disposition+reservation+room”;2)与领域行为相关的关键词语义及其语义相关词标记。把和领域行为相关的词类对应的语义标记出来,同时,把句子中影响这个词类语义的词类也标记出来。例如,在句子“我预定一个单人间”中,经过预处理后,“单人间”由词类“ROOM_INFO”表示,而在这个句子中,“单人间”对应了领域行为中的“room”,我们用“room”对“ROOM_INFO”进行语义标记,同时,“预定”这个词是决定“ROOM_INFO”标记为“room”的重要因素,所以,把“预定”对应的词类“V_RESERVE”加到“ROOM_INFO”的语义相关词类集question(ROOM_INFO)中。

3.查找装置

查找装置的功能是把输入句子中和领域行为密切相关的词类查找出来,作为语义分类树的输入。

4.语义分类树装置

语义分类树是包含一系列语义规则的二叉树。图2是一个省略的语义分类树示例图,用来解析词类V_DAO的语义。图中“+”表示包括至少一个词语的间隔,“<”和“>”表示句子的开头和结尾,三角形表示叶子节点,虚线表示树的省略部分,图中在每个节点上省略了词类的语义及其概率信息。每一个非叶子节点包含一个问题,判断输入的句子是否和某个表达式相匹配,解析的时候,假设输入的句子为A,在根结点的匹配过程可以描述为:IF(A match<+V_DAO+>)THEN GOTO left-son;ELSE GOTOright-son.到达一个节点以后,继续进行匹配,直到到达叶子节点,得到解析的结果。

标记装置获得了所有和领域行为相关的词类以及它们各自的语义相关词类集,用来构造语义分类树装置,为每一个和领域行为相关的词类生成一棵语义分类树。假设待解析词为A,其语义相关词类集为question(A)。开始根结点表达式初始化为“<+>”,然后,用question(A)中的某个词类w去替换节点表达式中的“+”以生成节点问题。例如,我们用“w+”替换根结点表达式中的“+”,则生成根结点包含的问题<w+>。每一个词类可能的替换方式有四种:“w”,“w+”,“+w”,“+w+”。这样,当被替换的表达式包含N(N≥0)个符号“+”,而question(A)的成员数为M(M>0)的时候,存在4M×N种可能的替换方式,对应生成4M×N个可以选择的问题。这样,我们必须提供一个选择问题的方法,选择问题的方法直接影响树的规模,从而影响解析的效率和速度。在生成每一个节点的时候,要尽快地使得在这个节点的语义达到一个确定的状态,为此,我们采用i(T)(如公式1所示)来表示节点语义的不确定度。

>>i>>(>T>)>>=>>Σ>>j>∈>S>>>>Σ>>k>∈>S>,>k>!>=>j>>>P>>(>j>/>T>)>>×>P>>(>k>/>T>)>>->->->>(>1>)>>>

其中,S表示待解析词在节点的语义集合,P(j/T)表示在T节点词类语义为j的概率,如果节点T的语料集合中(具体解释见语义分类树生成算法)句子总数为n(n>0),其中待解析词类语义标记为j的句子数目为m(m>0),那么,P(j/T)=m/n。i(T)越大,说明在此节点的语义越不确定。对于每一个节点,最合适的问题是使得Δi(如公式2所示)最大的问题。

        Δi=i(T)-pl×i(L)-pr×i(R)                (2)

其中,pl和pr分别表示T节点到达其左右子节点的概率,分别可以用左右子节点的语料集合中句子数目和T节点语料集合中句子数目相比求得,它们是节点问题决定的。i(L)和i(R)分别表示左右子节点的语义不确定度。Δi越大,表明语义不确定度下降越多,语义趋向稳定的速度越快。当出现以下两种情况的时候,对于所有可选择问题Δi=0,此节点不能再分,为叶子节点。

(1)在节点只有一种语义,即i(T)为零;

(2)在节点有多种语义,但现有的相关词类集中的词类生成的所有问题都不能将它们分开。

当所有未分的节点都是叶子节点的时候,就生成了一棵完整的语义分类树。

假定待解析的词类为A,其语义相关词集question(A)的成员数为M。根据上述解释,对应的语义分类树的生成过程可以形式化地描述为如下算法:

(1)建立一个堆栈T保存当前所有可分节点指针。

(2)训练语料中标记出来的A的所有相关词类加入question(A),含有待解析词A的所有句子作为根节点的语料集合K,根结点中记录K中A所有的语义及其概率,根结点表达式初始化为“<+>”,把根结点指针加入T。

(3)如果T为空,所有节点不能再分,生成完整的语义分类树,结束算法;如果T不为空,取出最上面的节点指针,分别用question(A)中的每一个词类替换节点表达式,生成4M*n(n为节点表达式中符号“+”的数目)个问题。

(4)根据公式(1)和(2)算出使得Δi最大的问题作为节点问题,如果节点为非叶子节点,执行步骤(5),否则,返回步骤(3)。

(5)建立节点的左右子节点,节点语料集合中所有句子分为两部分,符合节点问题的句子作为左子节点的语料集合,不符合节点问题的句子作为右子节点的语料集合,分别记录左右子节点语料集合中待解析词的语义及概率信息,将左右子节点指针加入T。

(6)左子节点表达式设为左子树的父节点问题,右子节点表达式设为右子树的父节点表达式,返回步骤(3)。

为每一个和领域行为相关的词类生成一棵语义分类树以后,就可以用这些语义分类树对输入句子中的关键词类进行语义解析,解析的时候根据输入的句子是否和节点中的问题匹配来选择路径,尽管每一次解析不一定能够匹配到叶子节点,但我们可以把最后匹配的节点中的多个语义及其概率作为待解析词的结果作为统计解析模型的输入。

5.统计解析装置

通过语义分类树对句子中每一个与领域行为密切相关的词类进行解析以后,我们获得了每个词类的一个或多个语义及各种语义的概率,统计解析装置的功能是从这些语义结果生成整个句子的浅层语义领域行为。

N元模型是自然语言处理中最常用的一种数学模型。假设序列x1x2...xm是一个N(N≥1)阶马尔可夫链,那么某一元素xi出现的概率只和其前面N-1个元素相关,即

    p(xi|x1...xi-1)=p(xi|xi-n+1...xi-1)                                      (3)

如果一个句子的领域行为由s1,s2,...,sm这M个语义组成,理论上这个句子的领域行为最多有M!种可能,假定wi∈{s1,s2,...,sm},且wi≠wj,则序列W=w1w2...wm可以表示其中任意一种可能,假定一个句子的领域行为各部分也满足马尔可夫性,W出现的概率为:

p(W)=p(w1w2...wm)

    =p(w1)×p(w2|w1)×...×p(wi|wi-n+1...wi-1)×...×p(wm|wm-n+1...wm-1)  (4)

如果采用二元模型,则得:

p(W)=p(w1w2...wm)

    =p(w1)×p(w2|w1)×...×p(wi|wi-1)×...×p(wm|wm-1)                    (5)

假定count(wi-1wi)表示wi-1wi在训练语料的语义中出现的次数,则根据最大似然估计得:

>>p>>(>>w>i>>|>>w>>i>->1>>>)>>=>>>count>>(>>w>>i>->1>>>>w>i>>)>>>>count>>(>>w>>i>->1>>>)>>>>->->->>(>6>)>>>

我们可以根据公式(5)计算出M!种可能情况各自出现的概率,算出概率最大的情况作为句子的领域行为W′,即

> >W>′>>=>>>arg>max>>>>w>1>>>w>2>>.>.>.>>w>m>>>>p>>(>>w>1>>>w>2>>.>.>.>>w>m>>)>>>

>>=>>>arg>max>>>>w>1>>>w>2>>.>.>.>>w>m>>>>p>>(>>w>1>>)>>×>p>>(>>w>2>>|>>w>1>>)>>×>.>.>.>×>p>>(>>w>i>>|>>w>>i>->1>>>)>>×>.>.>.>×>p>>(>>w>m>>|>>w>>m>->1>>>)>>->->->>(>7>)>>>

上面考虑的是在s1,s2,...,sm确定的情况,但是,经过语义分类树解析以后,句子中每一个与领域行为相关的词类可能对应生成多个语义,假定一个句子中待解析词的个数为N,每一个词类经过语义分类树解析得到的语义数目分别为K1,K2,...KN,领域行为可能的结果有K1×K2×...×KN×N!种,假定p(si,ki|ci)(0<ki≤Ki)为在当前句子环境中词类ci到语义si,ki的概率(由语义分类树解析获得),W=w1w2...wn表示一个可能的领域行为,其中>>>w>i>>∈>{>>s>>1>,>>k>1>>>>,>>s>>2>,>>k>2>>>>,>.>.>.>,>>s>>n>,>>k>n>>>>}>,>>且wi≠wj,我们把词类到语义标记的转换概率考虑进去,句子的领域行为W′=w1w2...wn可以采用以下公式计算:

> >W>′>>=>>>>arg>max>>>>k>1>>,>>k>2>>,>.>.>.>,>>k>n>>,>>>>>w>1>>,>>w>2>>.>.>.>>w>n>>>>>p>>(>>s>>1>,>>k>1>>>>,>>s>>2>,>>k>2>>>>,>.>.>.>,>>s>>n>,>>k>n>>>>|>>c>1>>,>>c>2>>,>.>.>.>>c>n>>)>>p>>(>>w>1>>>w>2>>.>.>.>>w>n>>)>>>>

>>=>>>>arg>max>>>>k>1>>,>>k>2>>,>.>.>.>,>>k>n>>,>>>>>w>1>>,>>w>2>>.>.>.>>w>n>>>>p>>(>>s>>1>,>>k>1>>>>|>>c>1>>)>>×>.>.>.>×>p>>(>>s>>n>,>>k>n>>>>|>>c>n>>)>>×>p>>(>>w>1>>)>>×>p>>(>>w>2>>|>>w>1>>)>>.>.>.>p>>(>>w>n>>|>>w>>n>->1>>>)>>->->->>(>8>)>>>

利用公式(8)获得的w1w2...wn即为句子的领域行为。公式(8)描述的意义如下:在获取一个句子的领域行为表示的时候,首先为每一个关键词语选择一个语义,由公式的前部分表示,然后,对多个关键词语的选择的语义进行顺序的调整,由公式的后部分表示。从中可以看出,我们在获取句子领域行为的时候,主要考虑了两个方面的因素,一方面是在当前句子环境中和领域行为密切相关的词语的语义概率信息,由语义分类树解析获得,另一方面是各种语义之间组合的可能性,由二元模型表示,其具体参数从标记的领域行为中学习获得。这样,既保证了在最后结果中单个词语的语义具有较高的概率,也使获得的领域行为符合现实意义。

附图说明

图1是本发明的口语解析装置结构图。

图2是本发明的语义分类树示例图。

具体实施方式

为了详细说明该发明的具体实施方式,我们以旅馆预定领域汉语口语浅层语义解析系统为例,加以说明。

训练过程:

我们收集了旅馆预定领域内一定数量的语料,然后对这些语料进行分词和词汇语义归类,在此基础之上,对语料进行手工标注,获得每个句子对应的领域行为表示,句子中和领域行为密切相关的关键词类和其对应的语义(语义由领域行为中的单个部分表示),以及关键词的语义相关词类;然后,利用标记的语料构造语义分类树,并获得二元模型的参数,得到统计解析模型的参数。

解析过程:

对于一个需要解析的句子,首先进行分词,进行词汇语义归类,然后找出句子中和领域行为密切相关的词类,利用语义分类树装置分别对各个词类进行解析,获得其对应的语义及其概率,最后,利用统计解析模型对语义分类树装置获得的结果进行进一步的选择和组合,获得句子对应的浅层领域行为。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号