论文部分内容阅读
口语对话系统(Spoken Dialogue System)的研究具有很强的理论意义和实际价值。口语理解(Spoken Language Understanding)是实现口语对话系统的关键技术之一。目前,口语理解主要面临两方面的挑战:稳健性(robustness),因为语音识别难免有错误,而且口语本身也往往是病态和不合语法的。可移植性(portability),当前对话系统中口语理解模块的开发往往需要大量手工工作(例如语义语法的编写),这构成了口语对话系统开发的主要瓶颈之一。因此,要缩短口语理解模块的开发周期、减少开发成本以及增强可移植性,关键是如何减少对手工工作的依赖,从而使整个开发过程自动化。本文提出了一种新的可移植的稳健口语理解方法。该方法基本上是数据驱动(data-driven)的,只需要简单标记的数据,这样保证了良好的可移植性。它能对口语进行深层理解,同时也能保持稳健性。论文的主要工作和创新点包括:本文提出了一个基于两阶段分类的口语理解框架。首先,第一阶段的分类器用来识别用户输入语句的主题,即主题分类(Topic Classi-fication)。接下来,识别的主题可用于帮助第二阶段的分类器抽取相应的语义槽/值对,即语义槽分类(Semantic Slot Classfication)。这两种分类器是可以自动学习的,而且只需要简单标记的训练数据。该框架既能保证对输入语句的深层理解,也能保持稳健性。利用一个稳健的基于图算法的局部分析器来对用户输入语句进行预处理。该局部分析器具有跳跃词和规则符的能力,这样从底层就保证了系统的稳健性。同时,为了避免跳跃能力带来的副作用,引入了内置的机器学习系统来进行剪枝和消歧。预处理使得数据标记形式更简单,能给主题分类提供深层的特征,还能减少语义槽分类器的数目。对于主题分类,考察了可用于主题分类的各种特征并且比较了它们的分类能力,并且利用多分类器相结合的方法来提高主题分类的精度。对于语义槽分类,把它建模为分类问题:首先利用文字上下文进行初始语义槽分类,然后检查语义槽的一致性,如有必要,再利用语义槽上下文进行重分类以纠正错误。本文比较了两种语义槽分类算法,即决策表和Winnow算法。为了进一步地减轻手工标记数据的工作,研究了上述两种分类器的弱监督训练方法:(1)采用了结合主动学习(active learning)和半监督学习(semi-supervised learning)来训练主题分类器的方法;(2)提出了一种实际的bootstrapping方法来训练语义槽分类器。这两种手段使得两阶段分类模型的训练只需要少量标记数据,而能利用较多的未标记数据来提高性能。最后,分别在两个不同领域和语种的语料库上对本文所提出的方法进行了实验验证。实验结果表明,本文方法在性能上优于已有的基于规则的方法,而跟其他新的数据驱动方法相当,但是能大大减少开发成本。