晚上无意间看到“新浪与微软签中文对联生成器许可协议”这条消息:
“新浪科技讯 1月8日下午消息,新浪与微软共同宣布,双方签署了一项有关“中文对联生成器”技术的专利许可协议,此项专利授权将增强新浪在中国市场提供创新性移动增值服务的能力。根据这项许可协议,微软的专利技术将用于新浪的全新移动电话对联服务,手机用户可以将自己编写的上联以短信形式发送至新浪的服务器,服务器上运行的微软中文对联生成引擎将自动构造下联以及横批,并以彩信或短信的形式发送给用户。这项服务将于2009年1月6日起投入运作,迎接新春佳节(2009 年1月26号),届时人们将发送数十亿短消息互致新年问候。”
很早就知道了微软对联这回事,记得当时有人拿自动生成的“搞笑对联”开刷,也没太在意,只是揣摩这项技术只不过是微软亚洲研究院搞出来的“学术产品”,也因此今晚被触动,触动的原因是这项技术被微软成功从“学术产品”转化成“商业产品”。感叹微软厉害的同时,我想仔细了解一下这对联背后的秘密,因为凭着一点机器翻译的直觉和对微软自然语言计算组的一点了解,我怀疑这对联和统计机器翻译关系极大:如果把上联和下联分别作为两种语言,其实质不过就是一个机器翻译的问题,单从统计机器翻译的角度来看,也就是一个解码的过程。
Google了一下“微软对联”,发现绝大多数都是介绍性的,不是我想要的信息。再次Google“微软对联 机器翻译”,第一个结果是周明老师在新浪博客上写的一篇“微软对联背后的故事”,这篇文章写得通俗有趣,不过对我来说,三个地方是最有价值的:
第一是周明老师描述自己早期设计这个系统时的思想:
“我设计了一个简单的模型,把对联的生成过程看作是一个翻译的过程。给定一个上联,根据字的对应和词的对应,生成很多候选字和候选词,得到一个从左到右相互关联的词图,然后根据一个动态规划算法,求一个最好的下联出来。一个好的下联其评价标准也很简单,第一就是它跟上联的对应程度,一般用词和词的对应概率来代表,第二就是生成对联的语言模型,就是衡量它像不像一个对联。”
这里指出了这个系统事实上就是借鉴机器翻译的思想,周明老师能如此敏锐的捕捉到机器翻译与对联这种看起来几乎不沾边的事物之间的关系,与他多年机器翻译领域的积累和开阔的眼界应该是分不开的!
第二是周明老师最后总结的“电脑对联成功决 ”,下面是简化版本:
“首先我认为,得益于沈向洋的匠心独运的选题;第二,我认为本项目的成功,得益于微软亚洲研究院的创新文化;第三,这个项目涉及到自然语言处理、网络挖掘、网络服务、界面设计。需要上述种种领域的人才通力配合。微软研究院各个方面的人才济济,而且大家配合默契。良好的组织管理和团队精神,保证了这个项目的有条不紊地顺利进行。”
这里指出了一个产品成功的必须具备三大基本要素:创新的想法(天时,提出的时机),良好的企业文化(地利)与默契的团队配合(人和)。微软研究院天时,地利,人和统统具备,于是微软对联成功了!
第三是这篇文章的附录8:2008年8月研究文章“基于统计机器翻译的中文对联生成系统“在世界计算语言学大会Coling 2008大会宣读(蒋龙,周明)。
这才是我真正想要的,因为微软对联的秘密不能说全部,但是绝大多数都在这里面。最快速度找来了这篇文章,仔细阅读了一遍,文章写得很不错,问题解释的非常清楚,这里我简单总结一下:
1、核心使用的是基于短语的统计机器框架,上联作为输入句子,下联由机器翻系统生成;输出结果是n-best,也就是n个“最好的对联”(这里由统计机器翻译系统自动评判);
2、根据中文对联的一些规则(如两边文字必须相等,语言翻译不存在这个问题)设计一些过滤器,过滤掉一些不符合语言规则约束的“对联”;
3、对于剩下的这些对联结果,利用"Ranking SVM"进行重新排序,这些结果也就是我们在对联主页上看到的一条上联所生成的几十条下联。
不过文章似乎没有提横批生成的方法,略有遗憾。
我觉得对于一个熟悉统计机器翻译的工作者来说,这项技术的真正难点反而不是机器翻译本身的问题:这篇文章抛开“对联的语言规则”,其他所涉及的技术应该都是大家熟悉的,很容易借助开源项目实现;并且由于对联是中文的,机器翻译中经常用到重排序策略也不需要;再夸张一点,用于训练语言模型的“对联语料库”都是机器翻译中所用的二倍(上联和下联都可以用来训练语言模型),从统计机器翻译的角度看,很多机器翻译的关键技术在这里可以得到简化。
真正的难点是:基本的对联语料库我们没有。微软研究院的这个“对联语料库”的规模是67万对,所采用的技术是他们自己的web语料库自动获取技术。开玩笑的说,如果周明老师能给我这个语料库,我也能几天之内构建一个简单的“52nlp自动对联系统”。
事实上,技术不是微软对联的关键,真正关键的是“自动对联的创意”与“把这个创意和机器翻译联系起来的思想”,这里向沈向阳老师致敬,向周明老师致敬,向微软亚洲研究院致敬!
注:原创文章,转载请注明出处“我爱自然语言处理”:www.52nlp.cn
本文链接地址:
https://www.52nlp.cn/machine-translation-and-microsoft-couplet/
[...] 但是出于“学术好奇心(academic curiosity)”,他们还是尝试了一下,效果比预想的要好,于是,可以发paper了。 我也很好奇他们到底是怎么做的,于是找来了这篇EMNLP 2010的论文:“Poetic” Statistical Machine Translation: Rhyme and Meter。 唉,还是“统计机器翻译”,还记得《机器翻译与微软对联》吗?看来统计机器翻译这些年虽然没有办法取得一个大突破,但是仍然可以“剑走偏锋”的。 由于不太明白英文诗歌的“Rhyme and Meter”,我先Google了一下相关资料,找来一篇《英语诗歌的韵律(metre)英诗节奏(Rhythm)》,不过还是看得不太明白,所以也没有仔细的看EMNLP上的这篇论文,不过“Rhyme and Meter”是这篇文章的核心: The value of preserving meter and rhyme in poetic translation has been highly debated. Vladimir Nabokov famously claimed that, since it is impossible to preserve both the meaning and the form of the poem in translation, one must abandon the form altogether. Another authority (and for us computer scientists, perhaps the more familiar one), Douglas Hofstadter argues that preserving the form is very important to maintaining the feeling and the sound of a poem. It is in this spirit that we decided to experiment with translating not only poetic meaning, but form as well. [...]