谷歌:将语言翻译转化为向量空间中的数学问题
此文原载于麻省理工科技评论网站。
翻译作者:浪荡游侠,哆嗒数学网翻译组成员
微信、手机QQ搜索关注 哆嗒数学网 每获得更多数学趣文
“语言翻译?简单,找到一个线性变换就行了。”——谷歌工程师
计算机科学正在颠覆着语言翻译。每个用过BabelFish或者谷歌翻译的人都知道它们能提供有用的翻译,尽管有时很蹩脚……
机器翻译的基本原理是:计算机对用两种语言表述的材料做词语比较,如果两个词有着相同的统计性质,我们便认为它们是等价的。其中一个很头疼的问题是初始的翻译依赖于语言学家所翻译的材料,而搞定这些材料是很费时费力的。
不过最近Tomas Mikolov所在的谷歌团队发明了一套不依赖于大量人工翻译的方法。它的机理是用数据挖掘为语言建模,然后比较两种语言模型之间的差别。他们说:“这种方法没有对语言做太多的假设。它的适用范围非常广,我们甚至可以用它来完善字典。”
Mikolov表示,他们假设每个语言形容的东西都是差不多的。比如每个语言都有一个对动物的总称,例如英文里“animal”是猫、狗、牛等动物的总称,还有他们在句中的用法也是差不多的,比如“猫是一种比狗小的动物 (Cat is an animal that is smaller than dog)”。数字也是一样,下图就是对数字在句中的用法所建立的模型(左:英语,右:西班牙语)。你看它们在英语和西班牙语里都是差不多的。
这个观察很重要。我们的新方法就是基于用词语之间的关系来表示整套语言系统。我们将所有可能的词语关系所构成的集合称作“语言空间”。你可以把它想象成一系列从一个词语指向另一个词语的向量。最近语言学家发现我们可以用数学的方法去研究这些向量,比如“国王-男性+女性”所得到的向量就和“女王”所表示的向量差不多。研究表明不同语言所对应的“语言空间”的结构其实是差不多的。翻译本质上就是一个“语言空间”到另一个“语言空间”的变换。
现在我们已经把语言翻译变成了一个数学问题。谷歌团队所要解决的就是把这个具体变换找出来。他们所采用的方法是先用少量语言学家所翻译的材料找到一个大致的映射。一旦这个大致的映射被勾勒出来,将它扩展到更大的语言空间上就非常简单了。Mikolov和他的同事们说:“这个方法很简单,但它非常有效:我们把英语与西班牙语之间的翻译精度提升到了90%”。值得一提的是这个方法还可以用来去改善字典,甚至去为字典纠错。比如谷歌团队就用这个方法在“英语-捷克语”字典中找到了很多错误。
最后Mikolov指出,这个方法仅仅对语言做了一些最基本的假设,所以它可以被用来鉴别暗语、方言等没什么关联的语言。事实上,尽管英语与西班牙语同属印欧语系,但是这个方法用在其它不同源的语言上效果也一样好,比如英语和越南语。Mikovol团队说:“这个方法的诞生是未来多语言交流的重要一步,但这仅仅是个开始。显然还有更多东西需要探索。”
微信、手机QQ搜索关注 哆嗒数学网 每获得更多数学趣文
评论已关闭