Commit 2ec567fe by 曹润柘

update chapter 1 and 3

parent 8b250298
...@@ -485,9 +485,9 @@ His house is on the south bank of the river. ...@@ -485,9 +485,9 @@ His house is on the south bank of the river.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{0.5em} \vspace{0.5em}
\begin{itemize} \begin{itemize}
\item NiuTrans:NiuTrans是由东北大学自然语言处理实验室自主研发的SMT系统,该系统可支持基于短语的模型、基于层次结构的模型以及基于句法树结构的模型。由于使用C++语言开发,所以该系统运行时间快,所占存储空间少且易于上手。系统中内嵌有$n$-gram语言模型,故无需使用其他的系统即可对语言进行建模。\url{http://www.niutrans.com/} \item NiuTrans:NiuTrans\cite{Tong2012NiuTrans}是由东北大学自然语言处理实验室自主研发的SMT系统,该系统可支持基于短语的模型、基于层次结构的模型以及基于句法树结构的模型。由于使用C++语言开发,所以该系统运行时间快,所占存储空间少且易于上手。系统中内嵌有$n$-gram语言模型,故无需使用其他的系统即可对语言进行建模。\url{http://www.niutrans.com/}
\vspace{0.5em} \vspace{0.5em}
\item Moses:Moses(主要)是由爱丁堡大学的SMT 组开发的,具有开拓性的SMT系统,最新的Moses系统支持很多的功能。例如,它既支持基于短语的模型,也支持基于句法的模型。Moses 提供因子翻译模型(factored translation model),该模型可以在不同的层次中使用不同的信息。此外,它允许将混淆网络和字格(word lattices)作为输入,可缓解系统的1-best输出中的错误。Moses还提供了很多有用的脚本和工具来支持其他的功能。\url{http://www.statmt.org/moses/} \item Moses:Moses\cite{Koehn2007Moses}(主要)是由爱丁堡大学的SMT 组开发的,具有开拓性的SMT系统,最新的Moses系统支持很多的功能。例如,它既支持基于短语的模型,也支持基于句法的模型。Moses 提供因子翻译模型(factored translation model),该模型可以在不同的层次中使用不同的信息。此外,它允许将混淆网络和字格(word lattices)作为输入,可缓解系统的1-best输出中的错误。Moses还提供了很多有用的脚本和工具来支持其他的功能。\url{http://www.statmt.org/moses/}
\vspace{0.5em} \vspace{0.5em}
\item Joshua:Joshua是另一种先进的开源SMT系统,是由约翰霍普金斯大学的语言和语音处理中心开发。由于Joshua是由Java语言开发,所以它在不同的平台上运行或开发时具有良好的可扩展性和可移植性。此外,Java 的使用提供了一种简单的方法(相对C/C++语言)来实验新的方法策略,以得到更好的效果。\url{http://joshua.sourceforge.net/Joshua/Welcome.html} \item Joshua:Joshua是另一种先进的开源SMT系统,是由约翰霍普金斯大学的语言和语音处理中心开发。由于Joshua是由Java语言开发,所以它在不同的平台上运行或开发时具有良好的可扩展性和可移植性。此外,Java 的使用提供了一种简单的方法(相对C/C++语言)来实验新的方法策略,以得到更好的效果。\url{http://joshua.sourceforge.net/Joshua/Welcome.html}
\vspace{0.5em} \vspace{0.5em}
...@@ -495,7 +495,7 @@ His house is on the south bank of the river. ...@@ -495,7 +495,7 @@ His house is on the south bank of the river.
\vspace{0.5em} \vspace{0.5em}
\item SAMT:SAMT是由卡内基梅隆大学MT小组开发的语法增强的SMT系统(syn\\tax-augmented SMT system)。SAMT在解码的时候使用目标树来生成翻译规则,而不严格遵守目标语言的语法。SAMT的一个亮点是它提供了简单但高效的方式来利用在SMT中句法信息,并且在一些任务中这样做有很好的结果,其效果甚至超过了基于层次短语的系统。由于SAMT在hadoop中实现,它可受益于跨计算机群的大数据集的分布式处理。\url{http://www.cs.cmu.edu/zollmann/samt/} \item SAMT:SAMT是由卡内基梅隆大学MT小组开发的语法增强的SMT系统(syn\\tax-augmented SMT system)。SAMT在解码的时候使用目标树来生成翻译规则,而不严格遵守目标语言的语法。SAMT的一个亮点是它提供了简单但高效的方式来利用在SMT中句法信息,并且在一些任务中这样做有很好的结果,其效果甚至超过了基于层次短语的系统。由于SAMT在hadoop中实现,它可受益于跨计算机群的大数据集的分布式处理。\url{http://www.cs.cmu.edu/zollmann/samt/}
\vspace{0.5em} \vspace{0.5em}
\item cdec:cdec是一个强大的解码器,是由Chris Dyer 和他的合作者们一起开发。cdec的主要的功能是它使用了翻译模型的一个统一的内部表示,并为实验结构预测问题的各种模型和算法提供了框架。所以,cdec也可以在SMT中被用来做一个对齐器或者一个更通用的学习框架。此外,cdec由于使用高效的C++语言编写,所以非常快。\url{http://cdec-decoder.org/index.php?title=MainPage} \item cdec:cdec\cite{Dyer2010cdec}是一个强大的解码器,是由Chris Dyer 和他的合作者们一起开发。cdec的主要的功能是它使用了翻译模型的一个统一的内部表示,并为实验结构预测问题的各种模型和算法提供了框架。所以,cdec也可以在SMT中被用来做一个对齐器或者一个更通用的学习框架。此外,cdec由于使用高效的C++语言编写,所以非常快。\url{http://cdec-decoder.org/index.php?title=MainPage}
\vspace{0.5em} \vspace{0.5em}
\item Phrasal:Phrasal是由斯坦福自然语言处理小组开发的系统。除了传统的基于短语的模型,Phrasal还支持了基于非层次短语的模型,这种模型将基于短语的翻译延伸到短语中断翻译(phrasal discontinues translation)。通过这种方式,它可以在未见的数据集上得到更好的泛化甚至可以处理在层次结构模型中丢失的信息。\url{http://nlp.stanford.edu/phrasal/} \item Phrasal:Phrasal是由斯坦福自然语言处理小组开发的系统。除了传统的基于短语的模型,Phrasal还支持了基于非层次短语的模型,这种模型将基于短语的翻译延伸到短语中断翻译(phrasal discontinues translation)。通过这种方式,它可以在未见的数据集上得到更好的泛化甚至可以处理在层次结构模型中丢失的信息。\url{http://nlp.stanford.edu/phrasal/}
\vspace{0.5em} \vspace{0.5em}
...@@ -513,37 +513,37 @@ His house is on the south bank of the river. ...@@ -513,37 +513,37 @@ His house is on the south bank of the river.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\vspace{0.5em} \vspace{0.5em}
\begin{itemize} \begin{itemize}
\item GroundHog:GroundHog是基于Theano框架,由蒙特利尔大学LISA 实验室使用Python语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂的循环神经网络模型。它提供了像DT-RNN,DOT-RNN,有门控机制的隐层单元以及LSTM 等循环层。使用GroundHog 可以构造多种网络模型(如NMT或LM 等)。Bahdanau等人在此框架上又编写了GroundHog神经机器翻译系统。该系统被当作很多论文的基线系统,在学术界得到了广泛的认可。\url{https://github.com/lisa-groundhog/GroundHog} \item GroundHog:GroundHog\cite{bahdanau2015neural}是基于Theano框架,由蒙特利尔大学LISA 实验室使用Python语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂的循环神经网络模型。它提供了像DT-RNN,DOT-RNN,有门控机制的隐层单元以及LSTM 等循环层。使用GroundHog 可以构造多种网络模型(如NMT或LM 等)。Bahdanau等人在此框架上又编写了GroundHog神经机器翻译系统。该系统被当作很多论文的基线系统,在学术界得到了广泛的认可。\url{https://github.com/lisa-groundhog/GroundHog}
\vspace{0.5em} \vspace{0.5em}
\item Nematus:Nematus是英国爱丁堡大学开发的,基于Theano框架的NMT 系统,该系统使用GRU作为隐层单元,支持多层(Encoder 端和Decoder 端的层数可不相同)。Nematus编码端有正向和反向的编码方式,可以同时提取源语句子中的上下文信息。该系统的一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。Nematus是一个功能相对完善、翻译效果好,且相对容易入手的一套系统。\url{https://github.com/EdinburghNLP/nematus} \item Nematus:Nematus\cite{SennrichNematus}是英国爱丁堡大学开发的,基于Theano框架的NMT 系统,该系统使用GRU作为隐层单元,支持多层(Encoder 端和Decoder 端的层数可不相同)。Nematus编码端有正向和反向的编码方式,可以同时提取源语句子中的上下文信息。该系统的一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。Nematus是一个功能相对完善、翻译效果好,且相对容易入手的一套系统。\url{https://github.com/EdinburghNLP/nematus}
\vspace{0.5em} \vspace{0.5em}
\item Zoph:Zoph是由Information Sciences Institute 的Barret Zoph 等人使用C++语言开发的系统。Zoph在多个GPU 上既可以训练序列模型(例如语言模型),也可以训练序列到序列的模型(例如神经机器翻译模型),且可通过参数调整网络的层数。当训练NMT系统时,Zoph也支持了多源输入,即在输入源语句子时可同时输入其一种译文。该系统由于使用C++语言,所以有运行速度快的特点。\url{https://github.com/isi-nlp/Zoph\_RNN} \item Zoph:Zoph是由Information Sciences Institute 的Barret Zoph 等人使用C++语言开发的系统。Zoph在多个GPU 上既可以训练序列模型(例如语言模型),也可以训练序列到序列的模型(例如神经机器翻译模型),且可通过参数调整网络的层数。当训练NMT系统时,Zoph也支持了多源输入,即在输入源语句子时可同时输入其一种译文。该系统由于使用C++语言,所以有运行速度快的特点。\url{https://github.com/isi-nlp/Zoph\_RNN}
\vspace{0.5em} \vspace{0.5em}
\item Fairseq:Fairseq是由facebook的AI研究小组开发的,基于Torch框架的用以解决序列到序列问题的工具包,其中包括基于卷积神经网络的机器翻译模型,基于循环神经网络的机器翻译模型,以及Transformer模型等。\\ https://github.com/facebookresearch/fairseq \item Fairseq:Fairseq\cite{Ottfairseq}是由facebook的AI研究小组开发的,基于Torch框架的用以解决序列到序列问题的工具包,其中包括基于卷积神经网络的机器翻译模型,基于循环神经网络的机器翻译模型,以及Transformer模型等。\\ https://github.com/facebookresearch/fairseq
\vspace{0.5em} \vspace{0.5em}
\item Tensor2Tensor:Tensor2Tensor是由谷歌推出的,基于TensorFlow框架的Transfor\\ -mer系统。该系统与之前的使用循环神经网络或卷积神经网络结构不同,而是使用self-attention机制以及最简单的前馈神经网络构成的。得益于Transformer的网络结构,可使得系统可以在多个GPU上并行运行,大大加快了训练的速度。该系统由于没有循环等复杂的运算,故训练和解码都比循环神经网络快。此外,目前该系统的翻译效果比循环神经网络结构的神经机器翻译系统更好一点。\url{https://github.com/tensorflow/tensor2tensor} \item Tensor2Tensor:Tensor2Tensor\cite{VaswaniTensor2Tensor}是由谷歌推出的,基于TensorFlow框架的Tran\\-sformer系统。该系统与之前的使用循环神经网络或卷积神经网络结构不同,而是使用self-attention机制以及最简单的前馈神经网络构成的。得益于Transformer的网络结构,可使得系统可以在多个GPU上并行运行,大大加快了训练的速度。该系统由于没有循环等复杂的运算,故训练和解码都比循环神经网络快。此外,目前该系统的翻译效果比循环神经网络结构的神经机器翻译系统更好一点。\url{https://github.com/tensorflow/tensor2tensor}
\vspace{0.5em} \vspace{0.5em}
\item OpenNMT:OpenNMT系统是由Harvard NLP(哈佛大学自然语言处理研究组)开源的,基于Torch框架的神经机器翻译系统。OpenNMT系统的早期版本使用Lua 语言编写,现在也扩展到了TensorFlow和PyTorch,设计简单易用,易于扩展,同时保持效率和翻译精度。其接口简单通用,只需源/目标文件。可以在GPU 上快速高性能训练,且优化了内存。此外,OpenNMT可扩展到其他序列生成任务,例如文本摘要和多模态翻译等。\url{https://github.com/OpenNMT/OpenNMT} \item OpenNMT:OpenNMT\cite{KleinOpenNMT}系统是由Harvard NLP(哈佛大学自然语言处理研究组)开源的,基于Torch框架的神经机器翻译系统。OpenNMT系统的早期版本使用Lua 语言编写,现在也扩展到了TensorFlow和PyTorch,设计简单易用,易于扩展,同时保持效率和翻译精度。其接口简单通用,只需源/目标文件。可以在GPU 上快速高性能训练,且优化了内存。此外,OpenNMT可扩展到其他序列生成任务,例如文本摘要和多模态翻译等。\url{https://github.com/OpenNMT/OpenNMT}
\vspace{0.5em} \vspace{0.5em}
\item 斯坦福NMT开源代码库:斯坦福大学自然语言处理组(Stanford NLP)发布了一片文章,总结了该研究组在神经机器翻译上的研究信息,同时他们实现了当前最佳结果的代码库。斯坦福NMT开源代码库包括了3种NMT系统,分别为基于字词混合的hybrid NMT,基于注意力机制的attention-based NMT以及通过剪枝方式压缩模型的pruning NMT。\url{https://nlp.stanford.edu/projects/nmt/} \item 斯坦福NMT开源代码库:斯坦福大学自然语言处理组(Stanford NLP)发布了一片文章,总结了该研究组在神经机器翻译上的研究信息,同时他们实现了当前最佳结果的代码库。斯坦福NMT开源代码库包括了3种NMT系统\cite{luong2016achieving}\cite{luong2015effective}\cite{see2016compression},分别为基于字词混合的hybrid NMT,基于注意力机制的attenti\\-onbased NMT以及通过剪枝方式压缩模型的pruning NMT。\\ \url{https://nlp.stanford.edu/projects/nmt/}
\vspace{0.5em} \vspace{0.5em}
\item THUMT:清华大学NLP团队实现的Transformer等模型、支持多GPU训练和解码、分布式训练。主要基于Tensorflow和Theano实现,其中Theano版本包含了RNNsearch模型,训练方式包括MLE(Maximum Likelihood Estimate), MRT(minimum risk training), SST(semi-supervised training)。优化器包括:SGD, Adadelta, Adam,当前Theano版本已不再更新。官方推荐使用Tensorflow版本,其实现了Seq2Seq, RNNsearch, Transformer三种基本模型,支持MLE训练方式以及Adam优化器。\url{https://github.com/THUNLP-MT/THUMT} \item THUMT:清华大学NLP团队实现的Transformer等模型\cite{ZhangTHUMT}、支持多GPU训练和解码、分布式训练。主要基于Tensorflow和Theano实现,其中Theano版本包含了RNNsearch模型,训练方式包括MLE(Maximum Likelihood Estimate), MRT(minimum risk training), SST(semi-supervised training)。优化器包括:SGD, Adadelta, Adam,当前Theano版本已不再更新。官方推荐使用Tensorflow版本,其实现了Seq2Seq, RNNsearch, Transformer三种基本模型,支持MLE训练方式以及Adam优化器。\url{https://github.com/THUNLP-MT/THUMT}
\vspace{0.5em} \vspace{0.5em}
\item NiuTrans.NMT:由东北大学NLP团队基于NiuTensor工具集实现,支持前馈网络,循环神经网络,Transformer等结构,支持语言模型,序列标注,机器翻译等任务。支持机器翻译GPU与CPU训练及解码。其小巧易用,为NLP开发人员提供快速二次开发基础。\url{https://github.com/NiuTrans/NiuTensor} \item NiuTrans.NMT:由东北大学NLP团队基于NiuTensor工具集实现\cite{肖桐2011CWMT2011},支持前馈网络,循环神经网络,Transformer等结构,支持语言模型,序列标注,机器翻译等任务。支持机器翻译GPU与CPU训练及解码。其小巧易用,为NLP开发人员提供快速二次开发基础。\url{https://github.com/NiuTrans/NiuTensor}
\vspace{0.5em} \vspace{0.5em}
\item MARIANNMT:主要由微软翻译团队搭建,使用纯C++实现的用于GPU/CPU训练和解码的引擎,支持多GPU训练和批量解码,最小限度依赖第三方库,静态编译一次之后,复制其二进制文件就能在其他平台使用。\url{https://marian-nmt.github.io/} \item MARIANNMT:主要由微软翻译团队搭建\cite{JunczysMarian},使用纯C++实现的用于GPU/CPU\\训练和解码的引擎,支持多GPU训练和批量解码,最小限度依赖第三方库,静态编译一次之后,复制其二进制文件就能在其他平台使用。\url{https://marian-nmt.github.io/}
\vspace{0.5em} \vspace{0.5em}
\item Sockeye:由Awslabs开发得神经机器翻译框架。其中支持RNN Search,Transfor\\ -mer,CNN等翻译模型,同时还有提供了从图片翻译到文字的模块。提供了WMT 德英新闻翻译,领域适应任务,多语言零资源翻译任务的教程。\url{https://awslabs.github.io/sockeye/} \item Sockeye:由Awslabs开发得神经机器翻译框架\cite{hieber2017sockeye}。其中支持RNN Search,Trans\\ -former,CNN等翻译模型,同时还有提供了从图片翻译到文字的模块。提供了WMT 德英新闻翻译,领域适应任务,多语言零资源翻译任务的教程。\url{https://awslabs.github.io/sockeye/}
\vspace{0.5em} \vspace{0.5em}
\item CytonMT:由NICT开发的一种用C++实现的高效神经机器翻译开源工具包。主要支持Transformer模型,支持了SGD和Adam优化器,一些常用的训练方法以及解码方法。\url{https://github.com/arthurxlw/cytonMt} \item CytonMT:由NICT开发的一种用C++实现的高效神经机器翻译开源工具包\cite{WangCytonMT}。主要支持Transformer模型,支持了SGD和Adam优化器,一些常用的训练方法以及解码方法。\url{https://github.com/arthurxlw/cytonMt}
\vspace{0.5em} \vspace{0.5em}
\item OpenSeq2Seq:由NVIDIA团队开发的基于tensorflow的模块化架构,用于序列到序列的模型,允许从可用组件中组装新模型,支持混合精度训练,利用NVIDIA Volta / Turing GPU中的Tensor核心,基于Horovod的快速分布式训练,支持多gpu,多节点多模式。\url{https://nvidia.github.io/OpenSeq2Seq/html/index.html} \item OpenSeq2Seq:由NVIDIA团队开发的\cite{KuchaievMixed}基于tensorflow的模块化架构,用于序列到序列的模型,允许从可用组件中组装新模型,支持混合精度训练,利用NVIDIA Volta / Turing GPU中的Tensor核心,基于Horovod的快速分布式训练,支持多gpu,多节点多模式。\url{https://nvidia.github.io/OpenSeq2Seq/html/index.html}
\vspace{0.5em} \vspace{0.5em}
\item Nmtpytorch:由勒芒大学语言实验室发布的基于序列到序列框架的神经网络翻译模型,Nmtpytorch的核心部分依赖于Numpy,Pytorch和tqdm。其允许训练各种端到端神经体系结构,包括但不限于神经机器翻译,图像字幕和自动语音识别系统。\url{https://github.com/lium-lst/nmtpytorch} \item Nmtpytorch:由勒芒大学语言实验室发布的基于序列到序列框架的神经网络翻译模型,Nmtpytorch的核心部分依赖于Numpy,Pytorch和tqdm。其允许训练各种端到端神经体系结构,包括但不限于神经机器翻译,图像字幕和自动语音识别系统。\url{https://github.com/lium-lst/nmtpytorch}
\vspace{0.5em} \vspace{0.5em}
\item DL4MT:由Cho Lab at NYU CS and CDS团队构建的多编码器、多解码器或多路NMT模型。该项目主要使用Theano 构建计算图,吸取了其他NMT系统搭建的经验,构建了调度器来管理调度多个数据流从而训练多个计算图,从而加快训练速度。同时该团队还提供了对应的学习材料,进一步讲解整个项目的细节。\url{https://github.com/nyu-dl/dl4mt-multi} \item DL4MT:由Cho Lab at NYU CS and CDS团队构建的多编码器、多解码器或多路NMT模型。该项目主要使用Theano 构建计算图,吸取了其他NMT系统搭建的经验,构建了调度器来管理调度多个数据流从而训练多个计算图,从而加快训练速度。同时该团队还提供了对应的学习材料,进一步讲解整个项目的细节。\url{https://github.com/nyu-dl/dl4mt-multi}
\vspace{0.5em} \vspace{0.5em}
\item ModerNMT:由modernmt团队搭建的基于Fairseq Tranformer模型的上下文感知、增量和分布式通用的神经机器翻译技术,易于使用和扩展。它通过将所有可用的项目/客户数据和翻译记忆库集中在一个文件夹中进行训练,通过提供要翻译的句子和可选的一些上下文文本来查询。\url{https://github.com/ModernMT/MMT} \item ModerNMT:由modernmt团队搭建的基于Fairseq Tranformer模型的上下文感知、增量和分布式通用的神经机器翻译技术\cite{Germann2016Modern},易于使用和扩展。它通过将所有可用的项目/客户数据和翻译记忆库集中在一个文件夹中进行训练,通过提供要翻译的句子和可选的一些上下文文本来查询。\url{https://github.com/ModernMT/MMT}
\end{itemize} \end{itemize}
\vspace{0.5em} \vspace{0.5em}
...@@ -576,15 +576,15 @@ His house is on the south bank of the river. ...@@ -576,15 +576,15 @@ His house is on the south bank of the river.
\section{推荐学习材料}\index{Chapter1.8} \section{推荐学习材料}\index{Chapter1.8}
\parinterval 首先,推荐一本书《Statistical Machine Translation》,其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展,并解释了如何为任意两种语言搭建机器翻译系统。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。这本书还报道了当时的最新研究,提出了主要的挑战,并使新手以及经验丰富的研究员能够为这一令人兴奋的领域做出新的贡献。该书内容全面,被很多高校和机器翻译的研究者使用。 \parinterval 首先,推荐一本书《Statistical Machine Translation》\cite{SPhilipp},其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展,并解释了如何为任意两种语言搭建机器翻译系统。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。这本书还报道了当时的最新研究,提出了主要的挑战,并使新手以及经验丰富的研究员能够为这一令人兴奋的领域做出新的贡献。该书内容全面,被很多高校和机器翻译的研究者使用。
\parinterval 《Foundations of Statistical Natural Language Processing》中文译名《自然语言处理基础》,作者是自然语言处理领域的权威Chris Manning教授和Hinrich Sch$\ddot{\textrm{u}}$tze教授。该书对统计自然语言处理方法进行了全面介绍。书中讲解了必要的语言学和概率论基础知识,介绍了机器翻译评价、语言建模、判别式训练以及整合语言学信息等基础方法。其中包含了构建NLP工具所需的基本理论和算法,提供了对数学和语言学基础内容广泛而严格的覆盖,以及统计方法的详细讨论。 \parinterval 《Foundations of Statistical Natural Language Processing》\cite{SIDDHARTHANChristopher}中文译名《自然语言处理基础》,作者是自然语言处理领域的权威Chris Manning教授和Hinrich Sch$\ddot{\textrm{u}}$tze教授。该书对统计自然语言处理方法进行了全面介绍。书中讲解了必要的语言学和概率论基础知识,介绍了机器翻译评价、语言建模、判别式训练以及整合语言学信息等基础方法。其中包含了构建NLP工具所需的基本理论和算法,提供了对数学和语言学基础内容广泛而严格的覆盖,以及统计方法的详细讨论。
\parinterval 《统计自然语言处理》由中国科学院自动化所宗成庆教授所著,其中全面介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详细阐述。可供从事自然语言处理、机器翻译等研究的相关人员参考。 \parinterval 《统计自然语言处理》\cite{宗成庆2013统计自然语言处理}由中国科学院自动化所宗成庆教授所著,其中全面介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详细阐述。可供从事自然语言处理、机器翻译等研究的相关人员参考。
\parinterval Ian Goodfellow、Yoshua Bengio,Aaron Courville三位机器学习领域的学者所写的《深度学习》也是值得一读的参考书。其讲解了有关深度学习常用的方法,其中很多都会在深度学习模型设计和使用中用到。同时在《深度学习》应用一章中也简单讲解了神经机器翻译的任务定义和发展过程。 \parinterval Ian Goodfellow、Yoshua Bengio,Aaron Courville三位机器学习领域的学者所写的《深度学习》\cite{HeatonIan}也是值得一读的参考书。其讲解了有关深度学习常用的方法,其中很多都会在深度学习模型设计和使用中用到。同时在《深度学习》应用一章中也简单讲解了神经机器翻译的任务定义和发展过程。
\parinterval 《机器学习》由南京大学教授周志华教授所著,作为机器学习领域入门教材,该书尽可能地涵盖了机器学习基础知识的各个方面,试图尽可能少地使用数学知识介绍机器学习方法与思想。在机器翻译中使用的很多机器学习概念和方法可以从该书中进行学习。 \parinterval 《机器学习》\cite{周志华2018《机器学习》}由南京大学教授周志华教授所著,作为机器学习领域入门教材,该书尽可能地涵盖了机器学习基础知识的各个方面,试图尽可能少地使用数学知识介绍机器学习方法与思想。在机器翻译中使用的很多机器学习概念和方法可以从该书中进行学习。
\parinterval TensorFlow官网提供了一个有关神经机器翻译的教程,介绍了从数据处理开始如何利用TensorFlow工具从零搭建一个神经机器翻译系统以及如何解码,其地址为\url{https://www.tensorflow.org/tutorials/text/nmt\_with\_attention}。此外谷歌和Facebook也分别提供了基于序列到序列机器翻译模型的高级教程。谷歌的版本是基于TensorFlow实现,网址为:\url{https://github.com/tensorflow/nmt},Facebook的教程主要是基于PyTorch实现--\url{https://pytorch.org/tutorials/intermediate/seq2seq\_translation\_tutorial.html}。网站上也包含一些综述论文详细的介绍了神经机器翻译的发展历程,问题定义以及目前遇到的问题。 \parinterval TensorFlow官网提供了一个有关神经机器翻译的教程,介绍了从数据处理开始如何利用TensorFlow工具从零搭建一个神经机器翻译系统以及如何解码,其地址为\url{https://www.tensorflow.org/tutorials/text/nmt\_with\_attention}。此外谷歌和Facebook也分别提供了基于序列到序列机器翻译模型的高级教程。谷歌的版本是基于TensorFlow实现,网址为:\url{https://github.com/tensorflow/nmt},Facebook的教程主要是基于PyTorch实现--\url{https://pytorch.org/tutorials/intermediate/seq2seq\_translation\_tutorial.html}。网站上也包含一些综述论文详细的介绍了神经机器翻译的发展历程,问题定义以及目前遇到的问题。
......
...@@ -1162,7 +1162,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new} ...@@ -1162,7 +1162,7 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 一般来说,HMM包含下面三个问题{\color{red} 参考文献 !!!引用- 《Foundations of Statistical Natural Language Processing》} \parinterval 一般来说,HMM包含下面三个问题\cite{manning1999foundations}
\begin{itemize} \begin{itemize}
\item 估计。即给定模型(硬币种类和转移概率),根据可见状态链(抛硬币的结果),计算在该模型下得到这个结果的概率,这个问题的解决需要用到前后向算法。 \item 估计。即给定模型(硬币种类和转移概率),根据可见状态链(抛硬币的结果),计算在该模型下得到这个结果的概率,这个问题的解决需要用到前后向算法。
...@@ -1225,12 +1225,10 @@ p_0+p_1 & = & 1 \label{eqC3.62-new} ...@@ -1225,12 +1225,10 @@ p_0+p_1 & = & 1 \label{eqC3.62-new}
\parinterval 本质上说,IBM模型的词对齐的不``完整''问题是IBM模型本身的缺陷。解决这个问题有很多思路,第一种方法就是,反向训练后,合并源语言单词,然后再正向训练。这里用汉英翻译为例来解释这个方法。首先反向训练,就是把英语当作待翻译语言,而把汉语当作目标语言进行训练(参数估计)。这样可以得到一个词对齐结果(参数估计的中间结果)。在这个词对齐结果里面,一个汉语单词可对应多个英语单词。之后,扫描每个英语句子,如果有多个英语单词对应同一个汉语单词,就把这些英语单词合并成一个英语单词。处理完之后,再把汉语当作源语言言把英语当作目标语言进行训练。这样就可以把一个汉语词对应到合并的英语单词上。虽然从模型上看,还是一个汉语单词对应一个英语``单词'',但实质上已经把这个汉语单词对应到多个英语单词上了。训练完之后,再利用这些参数进行翻译(解码)时,就能把一个中文单词翻译成多个英文单词了。但是反向训练后再训练也存在一些问题。首先,合并英语单词会使数据变得更稀疏,使训练不充分。其次,由于IBM模型的词对齐结果并不是高精度的,利用它的词对齐结果来合并一些英文单词可能造成严重的错误,比如:把本来很独立的几个单词合在了一起。因此,此方法也并不完美。具体使用时还要考虑实际需要和问题的严重程度来决定是否使用这个方法。 \parinterval 本质上说,IBM模型的词对齐的不``完整''问题是IBM模型本身的缺陷。解决这个问题有很多思路,第一种方法就是,反向训练后,合并源语言单词,然后再正向训练。这里用汉英翻译为例来解释这个方法。首先反向训练,就是把英语当作待翻译语言,而把汉语当作目标语言进行训练(参数估计)。这样可以得到一个词对齐结果(参数估计的中间结果)。在这个词对齐结果里面,一个汉语单词可对应多个英语单词。之后,扫描每个英语句子,如果有多个英语单词对应同一个汉语单词,就把这些英语单词合并成一个英语单词。处理完之后,再把汉语当作源语言言把英语当作目标语言进行训练。这样就可以把一个汉语词对应到合并的英语单词上。虽然从模型上看,还是一个汉语单词对应一个英语``单词'',但实质上已经把这个汉语单词对应到多个英语单词上了。训练完之后,再利用这些参数进行翻译(解码)时,就能把一个中文单词翻译成多个英文单词了。但是反向训练后再训练也存在一些问题。首先,合并英语单词会使数据变得更稀疏,使训练不充分。其次,由于IBM模型的词对齐结果并不是高精度的,利用它的词对齐结果来合并一些英文单词可能造成严重的错误,比如:把本来很独立的几个单词合在了一起。因此,此方法也并不完美。具体使用时还要考虑实际需要和问题的严重程度来决定是否使用这个方法。
\parinterval 另一种方法是双向对齐之后进行词对齐\textbf{对称化}(Symmetrization)。这个方法可以帮助我们在IBM词对齐的基础上获得对称的词对齐结果。思路很简单,用正向(汉语为源语言,英语为目标语言)和反向(汉语为目标语言,英语为源语言)同时训练。这样可以得到两个词对齐结果。然后利用一些启发性方法用这两个词对齐生成对称的结果(比如,取``并集''、``交集''等),这样就可以得到包含1对多和多对多的词对齐结果。比如,在基于短语的统计机器翻译中已经很成功地使用了这种词对齐信息进行短语的获取。直到今天,对称化仍然是很多自然语言处理系统中的一个关键步骤。\\ \\ \\ \parinterval 另一种方法是双向对齐之后进行词对齐\textbf{对称化}(Symmetrization)。这个方法可以帮助我们在IBM词对齐的基础上获得对称的词对齐结果。思路很简单,用正向(汉语为源语言,英语为目标语言)和反向(汉语为目标语言,英语为源语言)同时训练。这样可以得到两个词对齐结果。然后利用一些启发性方法用这两个词对齐生成对称的结果(比如,取``并集''、``交集''等),这样就可以得到包含1对多和多对多的词对齐结果。比如,在基于短语的统计机器翻译中已经很成功地使用了这种词对齐信息进行短语的获取。直到今天,对称化仍然是很多自然语言处理系统中的一个关键步骤。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsection{Deficiency}\index{Chapter3.6.2} \subsection{Deficiency}\index{Chapter3.6.2}
\parinterval Deficiency问题是指翻译模型会把一部分概率分配给一些根本不存在的源语言字符串。如果用$\textrm{P}(\textrm{well}|\mathbf{t})$表示$\textrm{P}(\mathbf{s}| \mathbf{t})$在所有的正确的(可以理解为语法上正确的)$\mathbf{s}$上的和,即 \parinterval Deficiency问题是指翻译模型会把一部分概率分配给一些根本不存在的源语言字符串。如果用$\textrm{P}(\textrm{well}|\mathbf{t})$表示$\textrm{P}(\mathbf{s}| \mathbf{t})$在所有的正确的(可以理解为语法上正确的)$\mathbf{s}$上的和,即
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(\textrm{well}|\mathbf{t})=\sum_{s\textrm{\;is\;well\;formed}}{\textrm{P}(\mathbf{s}| \mathbf{t})} \textrm{P}(\textrm{well}|\mathbf{t})=\sum_{s\textrm{\;is\;well\;formed}}{\textrm{P}(\mathbf{s}| \mathbf{t})}
......
...@@ -361,3 +361,153 @@ year={2015} ...@@ -361,3 +361,153 @@ year={2015}
year={1996}, year={1996},
organization={Association for Computational Linguistics} organization={Association for Computational Linguistics}
} }
@book{manning1999foundations,
title={Foundations of statistical natural language processing},
author={Manning, Christopher D and Manning, Christopher D and Sch{\"u}tze, Hinrich},
year={1999},
publisher={MIT press}
}
@article{SPhilipp,
title={Philipp Koehn, Statistical machine translation},
author={Sánchez-Martínez, Felipe and Juan Antonio Pérez-Ortiz},
volume={24},
number={3-4},
pages={273-278},
}
@article{SIDDHARTHANChristopher,
title={Christopher D. Manning and Hinrich Schutze. Foundations of Statistical Natural Language Processing. MIT Press, 2000. ISBN 0-262-13360-1. 620 pp.},
author={SIDDHARTHAN and ADVAITH},
journal={Natural Language Engineering},
volume={8},
number={01},
}
@book{宗成庆2013统计自然语言处理,
title={统计自然语言处理},
author={宗成庆},
year={2013},
}
@article{HeatonIan,
title={Ian Goodfellow, Yoshua Bengio, and Aaron Courville: Deep learning},
author={Heaton and Jeff},
journal={Genetic Programming \& Evolvable Machines},
pages={s10710-017-9314-z},
}
@article{周志华2018《机器学习》,
title={《机器学习》},
author={周志华},
journal={航空港},
number={2},
pages={94-94},
year={2018},
}
@inproceedings{Tong2012NiuTrans,
title={NiuTrans: an open source toolkit for phrase-based and syntax-based machine translation},
author={Tong, Xiao and Zhu, Jingbo and Hao, Zhang and Qiang, Li},
booktitle={Proceedings of the ACL 2012 System Demonstrations},
year={2012},
}
@article{Koehn2007Moses,
title={Moses: Open Source Toolkit for Statistical Machine Translation},
author={Koehn, Philipp and Hoang, Hieu and Birch, Alexandra and Callisonburch, Chris and Federico, Marcello and Bertoldi, Nicola and Cowan, Brooke and Shen, Wade and Moran, Christine and Zens, Richard},
volume={9},
number={1},
pages={177--180},
year={2007},
}
@inproceedings{Dyer2010cdec,
title={cdec: A Decoder, Alignment, and Learning Framework for Finite-State and Context-Free Translation Models},
author={Dyer, Chris and Lopez, Adam and Ganitkevitch, Juri and Weese, Jonathan and Resnik, Philip},
booktitle={ACL 2010, Proceedings of the 48th Annual Meeting of the Association for Computational Linguistics, July 11-16, 2010, Uppsala, Sweden, System Demonstrations},
year={2010},
}
@article{SennrichNematus,
title={Nematus: a Toolkit for Neural Machine Translation},
author={Sennrich, Rico and Firat, Orhan and Cho, Kyunghyun and Birch, Alexandra and Haddow, Barry and Hitschler, Julian and Junczys-Dowmunt, Marcin and Läubli, Samuel and Barone, Antonio Valerio Miceli and Mokry, Jozef},
}
@article{Ottfairseq,
title={fairseq: A Fast, Extensible Toolkit for Sequence Modeling},
author={Ott, Myle and Edunov, Sergey and Baevski, Alexei and Fan, Angela and Gross, Sam and Ng, Nathan and Grangier, David and Auli, Michael},
}
@article{VaswaniTensor2Tensor,
title={Tensor2Tensor for Neural Machine Translation},
author={Vaswani, Ashish and Bengio, Samy and Brevdo, Eugene and Chollet, Francois and Gomez, Aidan N. and Gouws, Stephan and Jones, Llion and Kaiser, Łukasz and Kalchbrenner, Nal and Parmar, Niki},
}
@article{KleinOpenNMT,
title={OpenNMT: Open-Source Toolkit for Neural Machine Translation},
author={Klein, Guillaume and Kim, Yoon and Deng, Yuntian and Senellart, Jean and Rush, Alexander M.},
}
@article{ZhangTHUMT,
title={THUMT: An Open Source Toolkit for Neural Machine Translation},
author={Zhang, Jiacheng and Ding, Yanzhuo and Shen, Shiqi and Cheng, Yong and Sun, Maosong and Luan, Huanbo and Liu, Yang},
}
@article{WangCytonMT,
title={CytonMT: an Efficient Neural Machine Translation Open-source Toolkit Implemented in C++},
author={Wang, Xiaolin and Utiyama, Masao and Sumita, Eiichiro},
}
@article{Germann2016Modern,
title={Modern MT: A New Open-Source Machine Translation Platform for the Translation Industry},
author={Germann, Ulrich and Barbu, E and Bentivoglio, M and Bogoychev, Nikolay and Buck, C and Caroselli, D and Carvalho, L and Cattelan, A and Cattoni, R and Cettolo, M},
year={2016},
abstract={Modern MT (www.modernmt.eu) is a three-year Horizon 2020 innovation action(2015–2017) to develop new open-source machine translation technology for use in translation production environments, both fully automatic and as a back-end in interactive post-editing scenarios. Led by Translated srl, the project consortium also includes the Fondazione Bruno Kessler (FBK), the University of Edinburgh, and TAUS B.V. Modern MT has received funding from the European Union’s Horizon 2020 research and innovation programme under Grant Agreement No. 645487 (call ICT-17-2014).},
}
@article{JunczysMarian,
title={Marian: Fast Neural Machine Translation in C++},
author={Junczys-Dowmunt, Marcin and Grundkiewicz, Roman and Dwojak, Tomasz and Hoang, Hieu and Heafield, Kenneth and Neckermann, Tom and Seide, Frank and Germann, Ulrich and Aji, Alham Fikri and Bogoychev, Nikolay},
}
@article{hieber2017sockeye,
title={Sockeye: A Toolkit for Neural Machine Translation.},
author={Hieber, Felix and Domhan, Tobias and Denkowski, Michael and Vilar, David and Sokolov, Artem and Clifton, Ann and Post, Matt},
journal={arXiv: Computation and Language},
year={2017}}
@article{KuchaievMixed,
title={Mixed-Precision Training for NLP and Speech Recognition with OpenSeq2Seq},
author={Kuchaiev, Oleksii and Ginsburg, Boris and Gitman, Igor and Lavrukhin, Vitaly and Li, Jason and Nguyen, Huyen and Case, Carl and Micikevicius, Paulius},
}
@inproceedings{肖桐2011CWMT2011,
title={CWMT2011东北大学参评系统NiuTrans介绍(英文)},
author={肖桐 and 张浩 and 李强 and 路琦 and 朱靖波 and 任飞亮 and 王会珍},
booktitle={机器翻译研究进展——第七届全国机器翻译研讨会论文集},
year={2011},
}
@article{luong2016achieving,
title={Achieving Open Vocabulary Neural Machine Translation with Hybrid Word-Character Models},
author={Luong, Minhthang and Manning, Christopher D},
journal={arXiv: Computation and Language},
year={2016}}
@article{luong2015effective,
title={Effective Approaches to Attention-based Neural Machine Translation},
author={Luong, Minhthang and Pham, Hieu and Manning, Christopher D},
journal={arXiv: Computation and Language},
year={2015}}
@article{see2016compression,
title={Compression of Neural Machine Translation Models via Pruning},
author={See, Abigail and Luong, Minhthang and Manning, Christopher D},
journal={arXiv: Artificial Intelligence},
year={2016}}
@article{bahdanau2015neural,
title={Neural Machine Translation by Jointly Learning to Align and Translate},
author={Bahdanau, Dzmitry and Cho, Kyunghyun and Bengio, Yoshua},
year={2015}}
\ No newline at end of file
...@@ -55,7 +55,7 @@ ...@@ -55,7 +55,7 @@
\IfFileExists{C:/WINDOWS/win.ini} \IfFileExists{C:/WINDOWS/win.ini}
{\newcommand{\mycfont}{song}} {\newcommand{\mycfont}{song}}
{\newcommand{\mycfont}{gbsn}} %{\newcommand{\mycfont}{gbsn}}
\begin{CJK}{UTF8}{\mycfont} \begin{CJK}{UTF8}{\mycfont}
\end{CJK} \end{CJK}
...@@ -103,9 +103,9 @@ ...@@ -103,9 +103,9 @@
% CHAPTERS % CHAPTERS
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\include{Chapter1/chapter1} \include{Chapter1/chapter1}
%\include{Chapter2/chapter2} \include{Chapter2/chapter2}
%\include{Chapter3/chapter3} \include{Chapter3/chapter3}
%\include{Chapter6/chapter6}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
......
...@@ -553,8 +553,10 @@ addtohook={% ...@@ -553,8 +553,10 @@ addtohook={%
\usepackage{appendix} \usepackage{appendix}
\usepackage{pgfplots} \usepackage{pgfplots}
\usepackage{tikz} \usepackage{tikz}
%----------------------------------------------------------------------------------------
% Chapter 6
%----------------------------------------------------------------------------------------
\usepackage{multirow}
\usepackage{tcolorbox}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论