分类目录归档:机器翻译

AI Challenger 2018 进行时

Deep Learning Specialization on Coursera

之前写过一篇《AI Challenger 2017 奇遇记》,记录了去年参加 AI Challenger 英中机器文本翻译比赛和英中机器同声传译比赛的过程,得到了一些反馈,特别是一些同学私下留言希望共享语料做科研用,但是限于去年比赛AI Challenger官方的约定,无法私下分享。不过好消息是,AI Challenger 2018 新赛季已经于8月29号启动,总奖金高达300万人民币,单个赛道冠军奖金最高到40万人民币。新赛季英中机器翻译文本大赛继续,提供了一批新的语料,中英双语句对规模大致到了1千3百万句对的水平,真的很赞。

我之前没有参加这类数据竞赛的经验,去年因为做 AIpatent专利机器翻译 产品的缘故,参加了 AI Challenger 2017 两个与机器翻译相关的赛道,并且侥幸进了英中机器同声传译比赛的 Top 5,过程中最大的收获其实是 follow 了一轮最新的神经网络机器翻译模型和试用了一些相关的NMT开源工具,另外也跟踪了机器翻译相关的论文,了解了当前机器翻译的进展情况,这些对于我的工作还是有相当帮助的。

10年前读研的时候,没有MOOC,没有Kaggle,也没有这么多开源的深度学习平台和工具,有时候不得不感慨,对于搞数据挖掘的同学来说,这是最好的时代。对于还在校学习的同学,如果实验室的任务不重,强烈建议参加类似 AI Challenger, Kaggle 这样的比赛,这可能是除了实习之外,又一个很好的积累实战经验的方法之一。在 NLPJob ,我们已经发现有一些招聘方加了一条加分项,例如:有Kaggle比赛获奖或者其他竞赛获奖的优先。而类似的,我们也发现很多同学的简历中参加Kaggle, 天池大数据等竞赛的经历逐渐成了标配。面向校招,在校同学缺乏实战经验,如果又没有一些很好的实验室项目或者实习经历作为筹码,那么参加这类比赛不失为一个很好的简历补充方式。

以下选自 AI Challenger 2018 的相关官方介绍,其中五大主赛道有三个与自然语言处理相关,可见NLP是多么的难。

继续阅读

专利文本数据挖掘之AIpatent

Deep Learning Specialization on Coursera

这两年,我花了很多时间在专利文本数据挖掘上,这是一件很好玩的事情。目前我们的产品陆续上线了,感兴趣的朋友可以关注:

AIpatent专利翻译引擎http://t.aipatent.com

AIpatent专利科技词典http://d.aipatent.com/

AIpatent专利情报信息http://x.aipatent.com/

接下来,还有好玩的AIpatent专利检索产品,敬请期待。

AI Challenger 2017 奇遇记

Deep Learning Specialization on Coursera

本文记录一下去年下半年参加的AI Challenger比赛的过程,有那么一点意思,之所以说是奇遇,看完文章就明白了。

去年8月,由创新工场、搜狗、今日头条联合举办的“AI challenger全球AI挑战赛”首届比赛正式开赛。比赛共设6个赛道,包括英中机器同声传译、英中机器文本翻译、场景分类、图像中文描述、人体骨骼关键点预测以及虚拟股票趋势预测,一时汇集了众多关注的目光:

“AI Challenger 全球AI挑战赛”是面向全球人工智能(AI)人才的开放数据集和编程竞赛平台,致力于打造大型、全面的科研数据集与世界级竞赛平台,从科研角度出发,满足学术界对高质量数据集的需求,推进人工智能在科研与商业领域的结合,促进世界范围内人工智能研发人员共同探索前沿领域的技术突破及应用创新。在2017年的首届大赛中,AI Challenger发布了千万量级的机器翻译数据集、百万量级的计算机视觉数据集,一系列兼具学术前沿性和产业应用价值的竞赛以及超过200万人民币的奖金,吸引了来自全球65个国家的8892支团队参赛,成为目前国内规模最大的科研数据集平台、以及最大的非商业化竞赛平台。 AI Challenger以服务、培养AI高端人才为使命,打造良性可持续的AI科研新生态。

不过AI Challenger 最吸引我的不是每项比赛数十万元的奖金(这个掂量一下也拿不到),而是英中机器翻译提供的高达1千万的中英双语句对语料,这个量级,在开放的中英语料里仅次于联合国平行语料库,相当的有诱惑力:

简介
英中机器文本翻译作为此次比赛的任务之一,目标是评测各个团队机器翻译的能力。本次机器翻译语言方向为英文到中文。测试文本为口语领域数据。参赛队伍需要根据评测方提供的数据训练机器翻译系统,可以自由的选择机器翻译技术。例如,基于规则的翻译技术、统计机器翻译及神经网络机器翻译等。参赛队伍可以使用系统融合技术,但是系统融合系统不参与排名。需要指出,神经网络机器翻译常见的Ensemble方法,本次评测不认定为系统融合技术。

数据说明
我们将所有数据分割成为训练集、验证集和测试集合。我们提供了超过1000万的英中对照的句子对作为数据集合。其中,训练集合占据绝大部分,验证集合8000对,测试集A 8000条,测试集B 8000条。训练数据主要来源于英语学习网站和电影字幕,领域为口语领域。所有双语句对经过人工检查,数据集从规模、相关度、质量上都有保障。一个英中对照的句子对,包含一句英文和一句中文文本,中文句子由英文句子人工翻译而成。中英文句子分别保存到两个文件中,两个文件中的中英文句子以行号形成一一对应的关系。验证集和测试集最终是以标准的XML格式发布给参赛方。

训练条件
本次评测只允许参赛方使用使用评测方指定的数据训练机器翻译系统,并对其排名。参赛方需遵守以下88集团赠送38彩金训练方式的说明。参赛方可以使用基本的自然语言处理工具,例如中文分词和命名实体识别。

大概十年前我读研期间做得是统计机器翻译,那个时候能接触到的中英句对最多到过2、3百万,用得最多的工具是知名的开源统计机器翻译工具Moses,也在这里写了不少相关的文章。后来工作先后从事过机器翻译、广告文本挖掘相关的工作,与机器翻译渐行渐远。这一两年,我花了很多时间在专利数据挖掘上,深知专利数据翻译的重要性,也了解到机器翻译对于专利翻译有天然的吸引力。加之这几年来深度学习如火如荼,神经网络机器翻译横空出世,Google, 微软,Facebook等公司88集团赠送38彩金机器翻译的PR一浪高过一浪,大有“取代”人翻译的感觉,这些都都给了我很大的触动,但是一直没有机会走进神经网络机器翻译。刚好这个时候自己又在家里重新组了一台1080TI深度学习主机,加上AI Challenger提供的机器翻译数据机会,我把这次参赛的目标定为:

  • 了解目前神经网络机器翻译NMT的发展趋势
  • 学习并调研相关的NMT开源工具
  • 将NMT应用在中英日三语之间的专利翻译产品上

相对于统计机器翻译,神经网络机器翻译的开源工具更加丰富,这也和最近几年深度学习开源平台遍地开花有关,每个深度学习平台基本上都附有一两个典型的神经网络机器翻译工具和例子。不过需要说明的是,以下这些88集团赠送38彩金NMT工具的记录大多数是去年9月到12月期间的调研,很多神经网络机器翻译工具还在不断的迭代和演进中,下面的一些描述可能都有了变化。

虽然之前也或多或少的碰到过一些NMT工具,但是这一次我的神经网络机器翻译开源工具之旅是从OpenNMT开启的,这个开源NMT工具由哈佛NLP组推出,诞生于2016年年末,不过主版本基于Torch, 默认语言是Lua,对于喜爱Python的我来说还不算太方便。所以首先尝试了OpenNMT的Pytorch版本: OpenNMT-py,用AI Challenger官方平台提供中英翻译句对中的500万句对迅速跑了一个OpenNMT-py的默认模型:

Step 2: Train the model
python train.py -data data/demo -save_model demo-model
The main train command is quite simple. Minimally it takes a data file and a save file. This will run the default model, which consists of a 2-layer LSTM with 500 hidden units on both the encoder/decoder.

然后走了一遍AI Challenger的比赛流程,第一次提交记录如下:

2017.09.26 第一次提交:训练数据500万, opennmt-py, default,线下验证集结果:0.2325,线上提交测试集结果:0.22670

走完了比赛流程,接下来我要认真的审视这次英中机器翻译比赛了,在第二轮训练模型开始前,我首先对数据做了标准化的预处理:

  1. 数据shuf之后选择了8000句对作为开发集,8000句对作为测试集,剩下的980多万句对作为训练集;
  2. 英文数据按照统计机器翻译工具Moses 的预处理流程进行了tokenize和truecase;中文数据直接用Jieba中文分词工具进行分词;

这一次我将目光瞄准了Google的NMT系统:GNMT, Google的Research Blog是一个好地方: Building Your Own Neural Machine Translation System in TensorFlow,我从这篇文章入手,然后学习使用Tensorflow的NMT开源工具: Tensorflow-NMT,第一次使用subword bpe处理数据,训练了一个4层的gnmt英中模型,记录如下:

2017.10.05 第二次提交:训练集988万句对, tf-nmt, gnmt-4-layer,bpe16000, 线下验证集结果0.2739,线上提交测试集结果:0.26830

这次的结果不错,BLEU值较第一次提交有4个点的提升,我继续尝试使用bpe处理,一周后,做了第三次提交:

2017.10.12 第三次提交:训练集988万句对,tf-nmt, gnmt-4-layer,bpe32000, 线下验证集结果0.2759,线上提交测试集结果:0.27180

依然有一些提高,不过幅度不大。这一次,为了调研各种NMT开源工具,我又把目光锁定到OpenNMT,事实上,到目前为止,接触到的几个神经网络机器翻译开源工具中,和统计机器翻译开源工具Moses最像的就是OpenNMT,有自己独立的官网,文档相当详细,论坛活跃度很高,并且有不同的分支版本,包括主版本 OpenNMT-lua, Pytorch版本 OpenNMT-py, TensorFlow版本 OpenNMT-tf 。所以为了这次实验我在深度学习主机中安装了Torch和OpenNMT-lua版本,接下来半个月做了两次OpenNMT训练英中神经网络翻译模型的尝试,不过在验证集的结果和上面的差不多或者略低,没有实质性提高,所以我放弃了这两次提交。

也在这个阶段,从不同途径了解到Google新推的Transformer模型很牛,依然从Google Research Blog入手:Transformer: A Novel Neural Network Architecture for Language Understanding ,学习这篇神文:《Attention Is All You Need》 和尝试相关的Transformer开源工具 TensorFlow-Tensor2Tensor。一图胜千言,谷歌AI博客上给得这个图片让人无比期待,不过实际操作中还是踩了很多坑:

还是和之前学习使用开源工具的方法类似,我第一次的目标主要是走通tensor2tensor,所以跑了一个 wmt32k base_single 的英中transformer模型,不过结果一般,记录如下:

2017.11.03 第六次实验:t2t transformer wmt32k base_single, 线下验证集BLEU: 0.2605,未提交

之后我又换为wmt32k big_single的设置,再次训练英中transformer模型,这一次,终于在线下验证集的BLEU值上,达到了之前GNMT最好的结果,所以我做了第四次线上提交,不过测试集A的结果还略低一些,记录如下:

2017.11.06 第七次实验:t2t transformer wmt32k big_single,线下验证集结果 0.2759, 线上测试集得分:0.26950

不过这些结果和博客以及论文里宣称的结果相差很大,我开始去检查差异点,包括tensor2tensor的issue以及论文,其实论文里88集团赠送38彩金实验的部分交代的很清楚:

On the WMT 2014 English-to-German translation task, the big transformer model (Transformer (big) in Table 2) outperforms the best previously reported models (including ensembles) by more than 2.0 BLEU, establishing a new state-of-the-art BLEU score of 28.4. The configuration of this model is listed in the bottom line of Table 3. Training took 3.5 days on 8 P100 GPUs. Even our base model surpasses all previously published models and ensembles, at a fraction of the training cost of any of the competitive models.

On the WMT 2014 English-to-French translation task, our big model achieves a BLEU score of 41.0, outperforming all of the previously published single models, at less than 1/4 the training cost of the previous state-of-the-art model. The Transformer (big) model trained for English-to-French used dropout rate Pdrop = 0.1, instead of 0.3.

For the base models, we used a single model obtained by averaging the last 5 checkpoints, which were written at 10-minute intervals. For the big models, we averaged the last 20 checkpoints. We used beam search with a beam size of 4 and length penalty α = 0.6 . These hyperparameters were chosen after experimentation on the development set. We set the maximum output length during inference to input length + 50, but terminate early when possible.

总结起来有2个地方可以改进:第一,是对checkpoints进行average, 这个效果立竿见影:

2017.11.07 第八次实验:t2t transformer wmt32k big_single average model, 线下验证集得分 0.2810 , 提交测试集得分:0.27330

第二,要有高性能的深度学习服务器。谷歌实验中最好的结果是在8块 P100 GPU的机器上训练了3.5天,对我的单机1080TI深度学习主机来说,一方面训练时对参数做了取舍,另一方面用时间换空间,尝试增加训练步数,直接将训练步数增加到100万次,结果还是不错的:

2017.11.15 第九次实验:t2t transformer wmt32k big_single 1000k 10beam,线下验证集得分0.2911,线上提交测试集得分0.28560

然后继续average checkpoints:
2017.11.16 第十次提交: t2t transformer wmt32k big_single 1000k average 10beam, 线下验证集得分0.2930,线上提交测试集得分0.28780

这两个方法确实能有效提高BLEU值,所以我继续沿用这个策略,按着训练时间推算了一下,估计这台机器在12月初比赛正式结束前大概可以训练一个250万次的模型,当然,这个给自己预留了最后提交比赛结果的时间。不过在11月27日,我在英中机器翻译比赛测试集A结束提交前提交了一个训练了140万次,并做了模型average的提交,算是这个赛道Test A关闭前的最后一次提交:

2017.11.27 第十一次提交 t2t transformer wmt32k big_single 1400k.beam10.a0.9.average, 验证集 0.2938 测试集 0.28950

12月1日凌晨测试集B正式放出,这个是最终排名的重要依据,只有2次提交机会,并且结果不会实时更新,只有等到12月3号之后才会放出最终排名。我的英中2500k Transformer模型大概在12月2号训练完毕,我做了Test B的第一次提交:

2017.12.2 average b10 a0.9: 0.2972(验证集)

之后,我逐一检查了保留的20个checkpoint在验证集上的得分,最终选择了高于平均值的11个checkpoint的average又做了第二次提交,虽然验证集只高了0.0001, 但是在这样的比赛中,“蚊子肉也是肉啊”:

2017.12.3 average select 11 b10 a0.9: 0.2973(验证集)

这就是我在英中机器文本翻译比赛中的整个历程,在Test A的最终排名大概在二十几名,但是最后一次模型的结果应该还能提高,所以预期是前20,剩下的就是等待TEST B的最终排名结果了。做到这个份上,其实我还挺满意的,不过故事如果真的到此就结束了,那算不上奇遇,有意思的事情才刚开始。

AI Challenger 2017有两个赛道和机器翻译有关,一个是英中机器文本翻译比赛(最高奖金30万),另外一个是英中机器同声传译比赛(最高奖金40万),一开始报名的时候,直观上觉得后者比较复杂,一方面奖金部分说明了问题,另外赛题描述部分也让人觉得涉及到语音处理,比较复杂:

简介
随着最近深度学习在语音、自然语言处理里面的应用,语音识别的错误率在不断降低,机器翻译的效果也在不断提高。语音处理和机器翻译的进步也推动机器同声传译的进步。如果竞赛任务同时考虑语音识别、机器翻译和语音合成这些项目,参赛队伍遇到的难度会很大。所以本次评测重点也在语音识别后的文本处理和机器翻译任务。翻译语言方向为英文到中文。

语音识别后处理模块:语音识别后的文本与书面语有很多不同。识别后文本具有(1)包含有识别错误;(2)识别结果没有标点符号;(3)源端为比较长的句子,例如对40~50s的语音标注后的文本,没有断句;(4)口语化文本,夹杂语气词等特点。由于本次比赛没有提供错误和正确对照的文本用于训练纠错模块。本次比赛提供的测试集合的源端文本是人工对语音标注后的文本,不包含识别错误。针对其它的特点,参赛队伍可以这几个方面考虑优化,但不限于以下几个方面:

1. 针对无标点的情况,参赛方可以利用提供的英文单语数据训练自动标点模块。用自动标点模块对测试集合文本进行添加标点。自动标点也属于序列标注任务,选手可以使用统计模型或是神经网络的模型进行建模。

2. 针对断句:源端文本都是比较长的文本,不利于机器翻译,参赛者可以设定断句策略。例如,参赛者可以依据标点来进行断句,将每个小的分句送入机器翻译系统。

3. 针对口语化:参赛队伍可以制定一些去除口语词的规则来处理测试集合。

机器翻译模块:将识别后处理的文本翻译成目标语言。参赛队伍需要根据评测方提供的数据训练机器翻译系统,可以自由的选择机器翻译技术。例如,基于规则的翻译技术、基于实例的翻译技术、统计机器翻译及神经网络机器翻译等。参赛队伍可以使用系统融合技术,但是系统融合系统不参与排名。

数据说明
机器翻译训练集。我们提供了1000万左右英中对照的句子对作为训练集合。训练数据领域为口语领域。所有双语句对经过人工检查,数据集从规模、相关度、质量上都有保障。一个英中对照的句子对,包含一句英文和一句中文文本,中文句子由英文句子人工翻译而成。

自动标点训练数据。选手可以利用提供的1000万文本训练自动标点系统。

验证集和测试集。我们会分别选取多个英语演讲的题材的音频,总时长在3~6小时之间,然后按照内容切分成30s~50s不等长度的音频数据,人工标注出音频对应的英文文本。人工标注的文本不翻译识别错误、无标点、含有语气词等。人工标注的好的英文文本会由专业译员翻译成中文文本,就形成了英中对照的句子对。抽取的英中对照的句子对会被分割为验证集和测试集。验证集和测试集最终是以标准的XML格式提供给选手。

我在一开始的时候考虑到这个比赛同样提供上千万句对的语料,所以当时顺手报名了这个同声传译比赛,但是直到最后一刻,我还没有仔细看过或者准备过这个任务。不过12月2号当我第一次完成英中机器翻译比赛的测试集B提交后,以完成作业的心态了解了一下这个英中机器同传比赛的题意以及数据集,发现这里提供的训练集和英中机器翻译比赛的数据是一致的,也就是说机器翻译模块可以复用之前训练的英中Transformer模型,而真正需要解决的,是标点符号自动标注模块以及断句模块。

感谢Google、Github和开源世界,在测试了几个自动标点标注模块后,我把目光锁定在 punctuator2(A bidirectional recurrent neural network model with attention mechanism for restoring missing punctuation in unsegmented text), 一个带attention机制的双向RNN无标点文本标点符号还原工具,通过它很快的构建了英文文本自动标点标注模块,并且用在了英中机器同声传译比赛的验证集和测试集上,验证集结果不算太差,所以对应英中机器翻译的模型,我也做了两次测试集B的提交,但是至于结果如何,我根本无法判断,因为在测试集A上,我没有提交过一次,所以无法判断测试集和验证集的正相关性。但是完成了 AI Challenger 的相关“作业“,我基本上心满意足了,至于结果如何,Who Care?

大约一个周之后测试集B上的结果揭晓,我在英中机器翻译文本比赛上进了前20,英中同声传译比赛上进了前10,不过前者的参数队伍有150多支,后者不足30支,特别是测试集B的提交队伍不到15支,有点诡异。原本以为这就结束了,不过到了12月中旬的某个周末,我微信突然收到了AI Challenger小助手的催收信息,大意是需要提交什么代码验证,问我为什么一直没有提交?我一脸错愕,她让我赶紧查看邮件,原来早在一个周之前的12月9号,AI Challenger发了一封邮件,主题是这样的:“AI Challenger 2017 TOP10 选手通知”

亲爱的AI Challenger,

恭喜你,过五关斩六将进入了TOP10,进入前十的机率是0.56%,每一位都是千里挑一的人才。非常不容易也非常优秀!

为了保证竞赛公平公正性,您还需要在12月10日中午12点前按如下格式提交您的代码至大赛核验邮箱aichallenger@chuangxin.com

邮件格式:
主题:AI ChallengerTOP10代码提交-队伍名称-赛道
正文:
队伍名称
全体队员信息:姓名-AI Challenger昵称-电话-邮箱-所在机构-专业&年级

附件:(文件名称)
1- 代码

非常感谢您的合作。

原来测试集B上的前10名同学需要提交代码复核,我原来以为只有前5名需要去北京现场答辩的同学要做这个,没想到前10名都需要做,赶紧和AI Challenger小助手沟通了一下,因为自己几乎都是通过开源工具完成的比赛,就简单的提交了一份说明文档过去了。正是在参加AI Challenger比赛的同一时期,我们的专利机器翻译产品也马不停蹄的开展了,出于对两个赛道前几名队伍BLEU值的仰望,我准备去北京旁听一下现场答辩,所以当天还和AI Challenger小助手沟通了一下现场观摩的问题,小助手说,前十名可以直接来,所以我觉得进入前十名还是不错的。

没想到第二天一早又收到Challenger小助手的微信留言,大意是:你不用自己买票来观摩比赛了,因为前面有几支队伍因种种原因放弃现场答辩,你自动递补为第5名,需要来北京参加12月21日的现场决赛答辩和颁奖礼,我们给你买机票和定酒店。吃不吃惊?意不意外?我当时的第一反应这真是2017年本人遇到最奇特的一件事情。。。然后很快收到了一封决赛邀请函:

亲爱的AI Challenger,

恭喜你,过五关斩六将走到了决赛,进入决赛的机率是0.28%,每一位都是千里挑一的人才。非常不容易也非常优秀!

“AI Challenger 全球AI挑战赛”面向人工智能领域科研人才,致力于打造大型、全面的科研数据集与世界级竞赛平台。由创新工场、搜狗、今日头条联合创建,旨在从科研角度出发,满足学术界对高质量数据集的需求,推进人工智能在科研与商业领域的结合,促进世界范围内人工智能研发人员共同探索前沿领域的技术突破及应用创新。

2017年是AI Challenger的诞生年,我们公布了百万量级的计算机视觉数据集、千万量级的机器翻译数据集,并主办多条细分赛道的AI竞赛。本次英中机器同传竞赛主要任务为集中优化语音识别后处理和机器翻译模块,旨在解决机器同声传译中的技术问题。

......

恭喜所有的入围选手!所有的入围者将在12月21日到中国北京进行现场答辩,本次大赛将以最终榜单排名结合答辩表现,加权计算总成绩,决出最终的大奖。

在答辩之前,我们需要Top5团队于12月18日下午17点前提交包括:
1-答辩PPT、
2-队员情况(个人姓名、个人高清半身照片、个人学校-年级-专业/公司-部门-职务、是否有指导老师-如有,请附上老师150字内简介)
3-团队出席名单(涉及报销事宜)
4-代码(供审查,如有作弊情况将按大赛规则处理)
5-150字内个人简介-选手手册素材(建议为三段话,第一段话是背景介绍,包括你的学校、实验室、师从老师等信息;第二段话可以介绍你的技术优势,包括Paper、竞赛履历、实习履历、项目经历;第三段话支持自由发挥,个人主页、你的爱好,让我们发现一个独一无二的你)
......

虽然去北京参加现场决赛也只是陪太子读书,不过最终还是决定去参加现场答辩,当然这里还有一关需要验证,前10名只需要提交代码或者代码描述即可,前5名参加决赛的同学还要复现整个流程,我很快被小助手拉入一个小群,里面有来自搜狗的工程师同学,他们给我提供了一台深度学习机器,让我复现整个过程以及最终核验比赛结果。当然,留给我的时间比较紧张,12月21号要去北京参加现场答辩,当时已经是12月18号了,所以Challenger小助手特地给我将时间留到了最后一刻。准备PPT和复现整个流程同时进行(复现并不是等于重新训练一遍,譬如机器翻译模型可以直接上传之前训练好的),终于赶在最后时刻完工。不过我自己答辩现场的感觉匆匆忙忙,效果也一般,但是学习了一圈其他获奖队伍的思路,很有收获:Transformer是主流获奖模型,但是很多功夫在细节,包括数据预处理阶段的筛选,数据 & 模型后处理的比拼,当然,牛逼的深度学习机器也是不可或缺的。

附上当时现场答辩PPT上写得几点思考,抛砖引玉,欢迎大家一起探讨机器翻译特别是神经网络机器翻译的现状和未来:

  • NMT开源工具的生态问题,这个过程中我们尝试了OpenNMT, OpenNMT-py, OpenNMT-tf, Tensorflow-nmt, Tensor2Tensor等工具, 总体感觉OpenNMT的生态最完备,很像SMT时代的Moses
  • NMT的工程化和产品化问题,从学术产品到工程产品,还有很多细节要打磨
  • 面向垂直领域的机器翻译:专利机器翻译是一个多领域的机器翻译问题
  • 由衷感谢这些从idea到开源工具都无私奉献的研究者和从业者们,我们只是站在了你们的肩膀上

当然,参加完AI Challenger比赛之后我们并没有停止对于神经网络机器翻译应用的探索,也有了一些新的体会。这半年来我们一直在打磨AIpatent机器翻译引擎,目标是面向中英专利翻译、中日专利翻译、日英专利翻译提供专业的专利翻译引擎,欢迎有这方面需求的同学试用我们的引擎,目前还在不断迭代中。

注:原创文章,转载请注明出处及保留链接“我爱自然语言处理”:

本文链接地址:AI Challenger 2017 奇遇记 /?p=10218

“翻译技术沙龙”第十三次活动详情与小结

Deep Learning Specialization on Coursera

本次活动在外研社大厦的第四会议室举行,共有近40人参加,其中包括来自北京大学、北京戏曲艺术学院、中科院、河北大学等大学的高校教师和研究员,来自北京大学、北京语言大学、中科院等高校的研究生、博士生,来自北京语智云帆、Transoo、上智瑞达等技术开发公司的代表,来自赛门铁克、太科石油等公司的企业代表,来自外研社的场地赞助方代表,还有其他众多语言服务行业的从业者和爱好者。

本次活动分为两个阶段:自由发言阶段和自由讨论阶段。

活动正式开始前,外研社的李鸿飞先生代表外研社向在座的与会人员致辞,欢迎大家到外研社参加此次活动。

自由发言阶段由北京语智云帆公司的总经理魏勇鹏主持,与会人员围绕典型译后编辑、机器翻译产品介绍及使用体验;译后编辑工作模式的效用分析;译后编辑工作模式的流程及注意事项;译后编辑所需的技术及工具支持;译后编辑所需的培训工作等五个议题进行自由发言。

典型译后编辑、机器翻译产品介绍及使用体验:

语智云帆公司的曲丽君女士为在场的与会人员分享了她使用谷歌译者工具包(GTT,Google Translator Toolkit)的使用体验,她提到GTT具有所见即所得的编辑器,除基本的编辑功能外,其对原文格式的保留较好,译员还可以在翻译过程中添加评论;GTT内嵌开放的评分系统,用户可以对译文进行打分;GTT可直接翻译维基百科等网站的网页;GTT支持上传和下载术语库、翻译记忆库;GTT具备多人协作和在线聊天功能。

随后,来自北京大学的杨德林同学补充了几点他对GTT的看法,他认为目前GTT支持的文件类型太少,文件大小有限制,无法导出双语对照文件等。

Transso公司的仝立铭先生和北京大学王华树老师就在线CAT工具如何进行服务器之间的共享,如何提高服务响应速度,CAT工具如何遵循统一的xliff标准发表了自己的观点。

译国译民公司的张琼心女士分享了他们在实际翻译工作中的工作流程,他们会首先对稿件进行译前处理,随后使用CAT工具进行翻译,翻译完成后进行译后编辑(她主要提到的是人工翻译后的译后编辑工作)。

Transoo公司的仝立铭先生随后介绍了他们正在开发的CAT工具的相关情况。

译后编辑工作模式的效用分析:

某著名跨国IT企业代表介绍了其使用Systran等系统进行机器翻译的经验,她提出在实际工作中,公司会为下级服务提供商给出机器翻译的结果,服务提供商会在机器翻译的基础上进行译后编辑。

随后,太科石油的吕经理提出了他们对CAT工具的基本需求,并指出他们目前遇到的最大问题是如何提高校对效率和质量的问题。

来自河北大学的张成智老师讲述了他使用谷歌翻译的感受,他认为谷歌翻译的结果会给他提供一些翻译的思路,帮助他组织语言,谷歌翻译会提示许多词汇的翻译结果,谷歌翻译能够节省翻译的时间。北京大学的杨德林同学补充道,谷歌翻译质量的高低同文件类型领域密切相关。

语智云帆公司的魏勇鹏介绍了一款名为PET的工具,该工具可用于对不同的机器翻译结果进行评测,功能包括记录译后编辑时间、键盘敲击记录、定制评分等。

译后编辑工作模式的流程及注意事项:

语智云帆公司的韩林涛介绍了一篇来自TAUS的文章:“MACHINE TRANSLATION POSTEDITING GUIDELINES”,该指南主要是帮助客户和服务提供商设定清晰的使用译后编辑器的期望。

来自中科院计算所的骆卫华先生和魏勇鹏补充了他们认为的译后编辑的基本要求。

译后编辑所需的技术及工具支持:

骆卫华先生介绍了客户对机器翻译结果的看法,他指出许多客户只是想利用机器翻译,而并不关心机器翻译如何工作;客户对机器翻译有不少负面评价,比如译文不可用,修改译文耗费时间等;他提出对机器翻译的需求需要进行仔细鉴定;最后他介绍了目前机器翻译的两种基本方法,基于规则的方法和基于统计的方法。

来自中科院的博士生刘汇丹补充了基于规则的机器翻译方法的相关问题,提出可以进行多引擎结合导出最佳译文。

魏勇鹏随后介绍他正在从事的技术开发工作,他首先讲解了领域语料库的加工方法,提出目前亟需建立专业知识库,建立实体之间的关系,确定相关标准;他提出需要将用户行为与机器翻译结果结合起来。

Transoo公司的唐义会先生提出了机器翻译后的内容再次被翻译的问题。

译后编辑所需的培训工作:

来自北京大学的高志军老师首先介绍北京大学语言信息工程系目前正在进行的相关培训工作,随后指出了统计方法和规则方法之中遇到的问题。

来自北京大学的王华树老师随后介绍了译后编辑的范畴问题,如什么是译后编辑,广义的和狭义的译后编辑分别是什么;他还介绍了译前译中译后编辑环境相关问题,如翻译编辑器的界面如何设计、界面的灵活性如何处理、术语和记忆库的选择问题、第三方亚美游AMG88的利用问题、如何更好得提高翻译效率等。

自由讨论阶段由北京大学的王华树老师主持。

中科院软件所的代表向与会人员介绍了他们正在研发的汉藏计算机辅助翻译系统。该系统主要结合政府相关的语料,具备基本的翻译编辑功能,支持句段的合并和拆分、术语添加、译文修改等,拥有定制化的输入法和词典。

随后,王华树老师通过一组精彩的幻灯片向与会人员介绍了目前主流的计算机辅助翻译工具的界面和特色。同时,他还根据自己的经验分析了未来一段时间计算机辅助翻译工具的发展趋势,如去格式化、可视化、语境化、网络协作式、开源、语音翻译、机器翻译和翻译记忆整合、工具多功能整合,以及云翻译等。

自由讨论阶段以及中途休息时间,与会的人员还根据今天讨论的话题和自身的工作经验进行了非常热烈的讨论。

最后,参与本次活动的部分人员在外研社大厦门前合影留念,本次活动正式结束。

请大家在新浪微博上多多关注@中文翻译技术沙龙、@一本词典。

支持五个SMT模型的NiuTrans 完整版 ver1.0.0 测试版正式发布

Deep Learning Specialization on Coursera

以下是来自东北大学自然语言处理实验室朱靖波老师发给CWMT群的邮件:支持五个SMT模型的NiuTrans 完整版 ver1.0.0 测试版正式发布。感谢东北大学对于机器翻译开源事业的贡献!

各位同行朋友们,大家好!

经过一年的努力,今天NiuTrans ver1.0.0 测试版终于正式发布。在上个版本的基础上,新增了三个句法模型: tree-to-string, string-to-tree and tree-to-tree. 这样目前完整版已经支持了SMT目前主流的五个模型,供同行们SMT研究之用。同时也发布了新的较完整的NiuTrans英文版Manual,供大家使用NiuTrans时参考使用。

访问入口显示在东北大学自然语言处理实验室网站(http://www.nlplab.com)亚美游左上角。另外同时我们开通了NiuTrans新浪微博(http://weibo.com/niutrans),将实时报道NiuTrans的研发进展情况,也便于大家与我们NiuTrans研发团队的互动交流。

NiuTrans将在ACL2012进行演示,为此我们赶在ACL前夕和NiuTrans开源一周年之际发布标准版。但在研发期间我们发现句法模型的实现难度比较高,因此将目前版本称为测试版。希望大家顺便帮助测试一下,使用过程中如发现问题的话,即时告诉我们。最近我们将不断深入测试和改进NiuTrans句法模型,并将及时发布,希望大家注意关注。在此,我代表NiuTrans开发组非常感谢大家的关注,欢迎大家给我们提建议和批评指正,也可以直接e-mail to niutrans at mail.neu.edu.cn,NiuTrans研发团队会及时回答大家的问题。

祝大家身体健康,快乐开心。

Best regards,

Jingbo Zhu (朱靖波)
Natural Language Processing Laboratory
Northeastern University

Moses的一些新变化

Deep Learning Specialization on Coursera

  看了一下Moses,发现有了一些新变化,特别是Moses整个开源项目几个月之前从Sourceforge上迁移到github上,可见github近来的人气有多旺。另外Moses的编译方式有了很大的改变,之前是Make方式编译,现在改为了bjam;之前依赖的boost库是可选的,现在boost库是必选的,不安装boost库Moses基本上是无法编译成功的。

  具体到操作上,如果是在ubuntu上,可以通过"sudo apt-get install libboost-all-dev"的方式快速的安装boost库,然后check out源代码:
git clone git://github.com/moses-smt/mosesdecoder.git

  Check out下Moses代码之后,如果不考虑整套统计机器翻译平台的搭建,仅仅测试Moses,直接用bjam编译moses就可以了:
cd ~/mosesdecoder
./bjam -j2
-j后的数字代表多核并行编译;

如果一切顺利并允许几个无关紧要的错误的话,编译完成之后会在dist下面生成一个bin和一个lib目录,前者存放可执行的二进制程序,例如moses, moses_chart,后者存放相关的lib库,例如:libmose.a

Step to Step的编译方法可以参考Moses的官方文档:
http://www.statmt.org/moses_steps.html
这个文档的一个问题是没有提示boost的安装,不安装boost,用bjam编译后会遇到很多boost某个库找不到的错误,并且不会生成Moses的二进制文件及Lib库。

另一个重要新闻是Moese的目前的开发由欧盟下的MosesCore项目支持,查了一下这个项目,貌似是今年才立项的,从名字上看,与Moses紧密相关,并且致力于开源统计机器翻译系统在学术界和工业界的推广:

MosesCore is an EU funded Coordination Action, which aims to encourage the development and usage of open source machine translation.

MosesCore draws together academic and commercial partners sharing a common interest in open source machine translation, and will:

Provide coordination and stewardship of the development of open source software for machine translation, notably the Moses statistical MT toolkit. This will result in at least three major releases of Moses, one in each year of the project.

Outreach to the research community through academic workshops, evaluation campaigns and the machine translation marathons.

Outreach to current and potential users of MT by providing a well maintained web presence, an active newsletter, and three annual outreach events for knowledge sharing and tutorial.

Improve interaction between academic and industrial MT stakeholders through both the outreach events and tutorials, and the marathons.

中文翻译技术沙龙第十次活动报名

Deep Learning Specialization on Coursera

时间:2011年10月15日(周六)下午14:00-17:00
地点:五道口清华科技园
费用:无

题目1: 开源输入法SunPinyin解读
主讲人:NUANCE公司何楠

题目2: 第13届国际机器翻译峰会(13th MT Summit)和第7届全国机器翻译研讨会(CWMT2011)的分享会
主讲人:部分参会人员,具体名单待定

报名截止日期:10月13日(周四)

报名者请使用以下格式,回复到邮箱cmt.salon@gmail.com

姓名:
手机:
基本情况介绍:

中文翻译技术沙龙的豆瓣小组是 http://www.douban.com/group/304684/。

中文翻译技术沙龙的QQ群:
NLP:172478666
CAT:172478453

NiuTrans: 一套开源的统计机器翻译平台

Deep Learning Specialization on Coursera

  晚上在CWMT(China Workshop on Machine Translation)的邮件组里看到东北大学自然语言处理实验室朱靖波老师的邮件,题为“NiuTrans: 一套开源的统计机器翻译平台”,仔细读了一下,觉得这句话很有分量:“内部测试结果显示性能和速度稳定优于Moses”,如果读者感兴趣,可以去NiuTrans的主页去申请下载,做个测试,NiuTrans的主页见:http://www.nlplab.com/NiuPlan/NiuTrans.html。前不久“哈工大语言技术平台(LTP)源代码正式对外共享”,而今东北大学也开源了NiuTrans这套统计机器翻译平台,这些对于致力于中文信息处理的NLPer来说都是好消息。以下内容全文转载自朱靖波老师的邮件:

各位老师,大家好!

我们实验室经过多个月的努力,NiuPlan的第一个NiuTrans系列系统-基于短语的统计机器翻译系统终于打包成功,Alpha版源代码正式对外免费发布,目前访问入口显示在我们实验室网站(http://www.nlplab.com)亚美游左上角。网页上提供了详细的使用说明和高级参数设置方法,并且还提供了部分样本数据用于学习如何使用NiuTrans. 内部测试结果显示性能和速度稳定优于Moses.系统代码的下载方式非常简单,在注册页输入姓名和电子邮件,即可得到动态下载的链接。建议提供正确的电子邮件,这样以后可以随时得到NiuPlan的最新发布和更新信息。

计划一年之内,我们实验室将不断推出NiuPlan不同系列的开源系统,包括Hierarchical phrase-based model,Syntax-based model (string-to-tree/tree-to-string/tree-to-tree)和基于统计的句法分析系统开源平台等。

NiuPlan最终将推出四个系列的开源平台系统:NiuTrans, NiuParser, NiuMining, and NiuKnowledge(暂定名字)系列系统.欢迎同行们免费下载使用,并能够将宝贵建议及时反馈给我们,我们承诺将尽力尽快完善NiuPlan各系列开源系统,在此感谢各位的使用和对现有Bug的容忍。所有系统可以从我们实验室网站上获取.祝好!

Best regards,

Dr. Jingbo Zhu (朱靖波)
Professor(PhD Supervisor), Director
Natural Language Processing Laboratory
Northeastern University
Shenyang, Liaoning, P.R.China
Phone: 0086-24-83672481 (O)(Fax)
Email: zhujingbo at mail.neu.edu.cn
Homepage: http://www.nlplab.com/members/zhujingbo.html

继续阅读

中文机器翻译沙龙第五次活动小结

Deep Learning Specialization on Coursera

本次沙龙活动于3月27在清华科技园的泰为公司会议室举行。共有二十四人参加,包括来自泰为、百度、金山、高德、老虎宝典、索爱、Novell、ifeng等公司的人士,以及来自清华、中科院计算所、自动化所、北师大等高校的研究生。另外还有来自东北师大的研究生参加,这是首次有外地的沙龙参与者。

首先由国家知识产权局的王进先生介绍了他在机器翻译领域的研究成果----原型系统和句法分析。王进先生首先介绍了范畴语法,然后基于范畴语法的扩展建立了原型系统。他提出“突破句法范畴,定义语义范畴体系”以及“突破语言结构,定义范畴跳转规则”。然后给出了句法分析的例子,并演示了其构建的翻译系统。王进先生随后就大家感兴趣的问题与大家进行了交流。非常遗憾的是,限于时间关系,未能与王先生展开深入讨论。

然后来自中国科技技术信息研究所的宋培彦博士介绍了HNC(概念层次网络)的理论。我国中文信息处理的三大流派之一的HNC理论,是由中科院声学所的黄曾阳先生所提出的。“虽然世界上有6000多种语言,但概念空间基本稳定,而且互通,这是翻译的基础。” “HNC是对大脑的语言功能进行模拟。”HNC又具体到概念基元空间(HNC1):词汇及语义网络;句类空间(HNC2):句子;语境单元空间(HNC3):句群;语境空间(HNC4):篇章。HNC正在进行的天翼计划——机器翻译,“先理解,后翻译”,不要统计意义上的“硬译”,不要语法形式上的符号转换,直面理解。这些无疑对目前机器翻译的研究具有参考意义。宋博士的介绍深入浅出,使得大多数未接触过HNC的沙龙成员对其有了大概的认知。随后宋博士介绍了其在回指模糊消解方面所做的研究。随后大家就HNC目前的研究和发展状况进行了讨论,宋博士提出了HNC应该走向“通俗化”、“实例化”、“国际化”。

ME for Machine Translation

Deep Learning Specialization on Coursera

利用周末时间细读了Och和Ney在02年ACL上发表的一篇88集团赠送38彩金Machine Translation的文章,做个笔记。

Discriminative training and maximum entropy models for statistical macine translation

1. ME 模型是在噪声信道模型的基础上改进而来的。

2. Source-Channel Model 被称为“Fundamental Equation of Statistical MT”,即,机器翻译的基本方程式。

3. 噪声信道模型存在的几个问题:

(1)噪声信道模型中,当翻译模型和语言模型只有在语料上的实际值等于理论值的时候,翻译结果才能达到最优;如果有一种更好的能将LM和TM进行结合的方法,那么翻译效果会有很大的提升。

(2)噪声信道模型不能通过直接扩展可对MT产生帮助性作用的特征和信息来扩展统计MT 系统。

(3)噪声信道模型的翻译模型具有可对称性特点。p(f|e)与p(e|f)在模型中可产生相当的作用,都可以与语言模型一起在信道模型中产生作用。虽然在噪声信道理论框架中难以对这种现象进行分析解释,不过产生的翻译效果却极具有可比性。在实际的统计翻译中,可以通过比较其作用好坏,按需选择来使用。

ME Translation Model

由于噪声信道模型能够融入的信息较为有限,Och 等人提出了采用ME 来进行统计翻译的方法,这主要是由于ME 具有可将多种信息进行有效结合从而为翻译提供支撑的特点。ME 方法是对噪声信道模型的改进。在该理论中,可以将N个信息同时考虑在MT 的过程之中,每一个信息被视为一个特征(或者叫做特征函数function),每个特征对应一个参数a,翻译概率的计算就跟这些特征函数和参数有关。(详细计算公式见论文第3页)

实际上,噪声信道模型的MT方法是包含在ME 方法框架之内的,当特征1:

h1(e,f) = log p (e)

特征2:

h2(e,f) = log p (f|e)

并取参数a1=a2=1的时候,ME 表现出来的框架其实就是噪声信道。

Alignment Model and Maximum Approximation

另外,在翻译的过程中还有一个很重要的因子------对齐。不管是噪声信道还是ME,在翻译过程中都需要计算源语言到目标语言的对齐,这个贯彻翻译概率计算过程的始末。

Och等在当年的系统中采用的是Alignment Templates的方法。即,只有源语言短语、目标语言短语的短语表,i.e.,短语表。

Training (a参数的训练)

文中采用的是GIS 算法(Darroch and Ratcliff,1972)。