2011年7月27日星期三

一个关于建立人类自然语言中间层的设想

也许大家已经注意到了,google 翻译 (也许是目前存在的最nb的在线翻译了)将A语言翻译到B语言的翻译方式是先将A语言翻译成英语,再从英语翻译到B语言。

这里就出现了一个问题,因为本身英语里面的多义词,翻译时候产生的多义词再次翻译时候就会出错。



举个例子 这是一个朋友的状态

あした試験がある.先生は難しいと言いました

用google 翻译 翻成中文

有一个测试的明天。这位老师说,硬

囧。

但我们仔细看看,如果用它先翻译到英文:

Have a test tomorrow. The teacher said that hard

这句话虽然稍有不通,但逻辑上已经很清楚了。

也就是说,是由于英语(这是作为中间过程存在的)词hard本身词义的二义性造成了翻译的问题。



于是,我在想何不创造一套专门用来做自然语言中间层的机器语言,这个语言可能对人没有可读性,但里面的词语都有严格的语法,并且绝没有二义性。这样,除了本身就利用了语言二义性的双关语之外,别的内容都可以实现相当可读性的翻译。

我设想的这样的语言(下面成为R语言)的词义将会是如下的表示方式:

假设在这个语言R 中,一个词元(这里用词元来专指R语言中的词汇)(310)的意思是红(是,一个人红了的这个红,而非红色的红)

在R词典里 这个词元将这样表示:
310:
CN: 红 火 有名
EN: hot famous

这样用多个词来定义。
翻译某词 Q(Q是A语言词,向B语言翻译)时,在词典中A语言所对应项里面找含有Q的词元,根据现有翻译技术和语义语境,定出Q在句子中想表达的含义,选出词元M.
再在词元M的B语言对应项里面取出根据B语言语法合适的词,放入句子组成合适的B语言的话。
完成翻译。

词典甚至可以变成这个形式:

310: 
CN: 红(0.3) 火(0.2) 有名(0.9) 
EN: hot(0.25) famous(0.95) 

括号里面的数字代表和词元意思相符的程度

这样,一个词元就是一个矢量 只要构建了一个足够的矢量 就可以完成很好的机器翻译。

所谓 矢量语义学?

没有评论:

发表评论