- 签证留学 |
- 笔译 |
- 口译
- 求职 |
- 日/韩语 |
- 德语
直观上,只要你有了一个可供分析的语法,那么将它反过来使用,生成句子就是一件易如反掌的事。句子生成器的输入是语法成分及其作为逻辑形式的SEM特征,这样,就能借助语法将这个成分分解成一系列意义正确的词法成分。但是,并非所有的语法都可逆。事实上,由于使用了λ归约,语法1是不可逆的。要弄清原因,我们不妨分析一个例子。假设你想生成一个有如下意义的句子:
(<PAST SEES1> s1 (NAME j1 "Jill") <THE d1 (DOG1 d1)>)
语法1只有一个S规则,如果你想将规则1中的SEM值同这个逻辑形式合一,不要指望能成功。模式(?semvp ?semnp)可匹配任何由一元谓词和一个参数构造的命题,但这里所指的逻辑形式是一个拥有三个参数的命题。问题在于,这里用λ归约对原逻辑形式进行了转化,即:
((λ a (<PAST SEES1> s1 a <THE d1 (DOG1 d1)>)) (NAME j1 "Jill"))
λ归约有一个逆操作,称为λ提取,用来寻找匹配的结果。但这样也有问题,现在逻辑形式有三种可能的λ提取,即:
(λ e (<PAST SEES1> e (NAME j1 "Jill") <THE d1 (DOG1 d1)>))
(λ a (<PAST SEES1> s1 a <THE d1 (DOG1 d1)>))
(λ o (<PAST SEES1> s1 (NAME j1 "Jill") 0))
规则1中没有任何信息提示哪个才是正确的提取,但实际上只有第二种才能产生正确的句子。
另一方面,使用特征的方法是可逆的,比如语法2,因为该方法在特征中保留了判断构造逻辑形式所需的信息。对于这个问题,用例子很容易解释。
在很多方法中,句法分析和句法实现是相似的过程。两者均可视为构造一个句法树的过程。句法分析程序以词为起点,尝试寻找一个能表示这些词的树,由此得到这句话的逻辑形式。而句法生成器以逻辑形式作为起点,尝试寻找一个能表示该逻辑形式的树,由此得到实现该形式的词。两者的相似表明标准的句法分析算法对于句法实现也适用。举个例子,假设用标准的自顶向下算法,根据是否与期望的SEM结构匹配,从语法中挑选规则,句子中的词就自左向右地选择出来了。问题在于,这种方法的效率可能非常低。例如,假设用语法9.14来实现带SEM的S:
(<PAST SEES1> s1 (NAME j1 "Jill”) <THE d1 (DOG1 d1)>)
规则1基本上与之匹配,因为它的SEM特征有一个变量,它的值为?semvp。因为没有其他S规则,因此这条规则就被实例化。现在,让我们尝试用标准的自顶向下算法来生成这两个子成分,即:
(NP SEM ?semsubj)
(VP SUBJ ?semsubj
SEM (<PAST SEES1> s1 (NAME j1 "Jill") <THE d1 (DOG1 d1)>))
但是,NP的SEM不受此限。句法生成器要继续进行上面的过程,必须随机生成名词短语,并且利用每个名词短语来尝试实现VP,向前回溯直到找到合适的组合。遗憾的是,如果语法规模很大,该算法可能会陷入无限循环中。显然,这种策略不可行。