Commit 5c252b15 by 孟霞

合并分支 'mengxia' 到 'caorunzhe'

Mengxia-format

查看合并请求 !62
parents dce28c18 e4d0d0d8
% !Mode:: "TeX:UTF-8" % !Mode:: "TeX:UTF-8"
% !TEX encoding = UTF-8 Unicode % !TEX encoding = UTF-8 Unicode
\part{机器翻译基础}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% CHAPTER 1 % CONFIGURATIONS
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\part{机器翻译基础}
\renewcommand\figurename{}%将figure改为图 \renewcommand\figurename{}%将figure改为图
\renewcommand\tablename{}%将figure改为图 \renewcommand\tablename{}%将figure改为图
\chapterimage{fig-NEU-2.jpg} % Chapter heading image \chapterimage{fig-NEU-2.jpg} % Chapter heading image
%----------------------------------------------------------------------------------------
% CHAPTER 1
%----------------------------------------------------------------------------------------
\chapter{机器翻译简介} \chapter{机器翻译简介}
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\section{机器翻译的概念} \section{机器翻译的概念}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parinterval 从广义上来讲,``翻译''是指把一个事物转化为另一个事物的过程。这个概念多使用在对序列的转化上,比如,计算机程序的编译、自然语言文字翻译、蛋白质生物合成等。在程序编译中,高级语言编写的程序经过一系列的处理后转化为可执行的目标程序,这是一种从高级程序语言到低级程序语言的``翻译''。在人类语言的翻译中,一种语言文字通过人脑转化为另一种语言表达,这是一种自然语言的``翻译''。在蛋白质合成的第一步,RNA分子序列转化为特定的氨基酸序列,这是一种生物学遗传信息的``翻译''。甚至说给上联对出下联、给一幅图片写出图片的主题等都可以被看作是``翻译''的过程。 \parinterval 从广义上来讲,``翻译''是指把一个事物转化为另一个事物的过程。这个概念多使用在对序列的转化上,比如,计算机程序的编译、自然语言文字翻译、蛋白质生物合成等。在程序编译中,高级语言编写的程序经过一系列的处理后转化为可执行的目标程序,这是一种从高级程序语言到低级程序语言的``翻译''。在人类语言的翻译中,一种语言文字通过人脑转化为另一种语言表达,这是一种自然语言的``翻译''。在蛋白质合成的第一步,RNA分子序列转化为特定的氨基酸序列,这是一种生物学遗传信息的``翻译''。甚至说给上联对出下联、给一幅图片写出图片的主题等都可以被看作是``翻译''的过程。
\vspace{0.5em} \vspace{0.5em}
%---------------------------------------------- %----------------------------------------------
% 图1.1
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=0.2]{./Chapter1/Figures/figure-zh_en-example.png} \includegraphics[scale=0.2]{./Chapter1/Figures/figure-zh_en-example.png}
\caption{通过计算机将中文翻译为英文} \caption{通过计算机将中文翻译为英文}
\label{fig:zh_en-example} \label{fig:zh_en-example}
\end{figure} \end{figure}
%------------------------------------------- %----------------------------------------------
\parinterval 这里更加关注人类语言之间的翻译问题,即自然语言的翻译。如图\ref{fig:zh_en-example}所示,通过计算机可以将一段中文文字自动转化为英文文字,中文被称为{\small\bfnew{源语言}}\index{源语言}(Source Language)\index{Source Language},英文被称为{\small\bfnew{目标语言}}\index{目标语言}(Target Language)\index{Target Language} \parinterval 这里更加关注人类语言之间的翻译问题,即自然语言的翻译。如图\ref{fig:zh_en-example}所示,通过计算机可以将一段中文文字自动转化为英文文字,中文被称为{\small\bfnew{源语言}}\index{源语言}(Source Language)\index{Source Language},英文被称为{\small\bfnew{目标语言}}\index{目标语言}(Target Language)\index{Target Language}
...@@ -34,7 +43,6 @@ ...@@ -34,7 +43,6 @@
\parinterval 实现机器翻译往往需要多个学科知识的融合,如数学、语言学、计算机科学、心理学等等。而最终呈现给使用者的是一套软件系统\ \dash\ 机器翻译系统。通俗来讲,机器翻译系统就是一个可以在计算机上运行的软件工具,与人们使用的其他软件一样,只不过机器翻译系统是由``不可见的程序''组成,虽然这个系统非常复杂。但是呈现出来的展示形式却很简单,比如输入是待翻译的句子或文本,输出是译文句子或文本。 \parinterval 实现机器翻译往往需要多个学科知识的融合,如数学、语言学、计算机科学、心理学等等。而最终呈现给使用者的是一套软件系统\ \dash\ 机器翻译系统。通俗来讲,机器翻译系统就是一个可以在计算机上运行的软件工具,与人们使用的其他软件一样,只不过机器翻译系统是由``不可见的程序''组成,虽然这个系统非常复杂。但是呈现出来的展示形式却很简单,比如输入是待翻译的句子或文本,输出是译文句子或文本。
%---------------------------------------------- %----------------------------------------------
% 图1.2
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-Required-parts-of-MT} \input{./Chapter1/Figures/figure-Required-parts-of-MT}
...@@ -45,41 +53,47 @@ ...@@ -45,41 +53,47 @@
\parinterval 用机器进行翻译的想法可以追溯到电子计算机产生之前,发展过程中也经历了多个范式的变迁,现代机器翻译系统大多是基于数据驱动的方法\ \dash\ 从数据中自动学习翻译知识,并运用这些知识对新的文本进行翻译。如图\ref{fig:Required-parts-of-MT}所示,机器翻译系统通常由两部分组成: \parinterval 用机器进行翻译的想法可以追溯到电子计算机产生之前,发展过程中也经历了多个范式的变迁,现代机器翻译系统大多是基于数据驱动的方法\ \dash\ 从数据中自动学习翻译知识,并运用这些知识对新的文本进行翻译。如图\ref{fig:Required-parts-of-MT}所示,机器翻译系统通常由两部分组成:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{资源}}:如果把机器翻译系统比作一辆汽车,资源就好比是可以使汽车运行的``汽油'',它包括很多内容,如翻译规则、双(单)语数据、知识库等等翻译知识,且这些``知识''都是计算机可读的。值得一提的是,如果没有翻译资源的支持,任何的机器翻译系统都无法运行起来。 \item {\small\bfnew{资源}}:如果把机器翻译系统比作一辆汽车,资源就好比是可以使汽车运行的``汽油'',它包括很多内容,如翻译规则、双(单)语数据、知识库等等翻译知识,且这些``知识''都是计算机可读的。值得一提的是,如果没有翻译资源的支持,任何的机器翻译系统都无法运行起来。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{系统}}:机器翻译算法的程序实现被称作系统,也就是机器翻译研究人员开发的软件。无论是翻译规则、翻译模板还是统计模型中的参数都需要通过机器翻译系统进行读取和使用。 \item {\small\bfnew{系统}}:机器翻译算法的程序实现被称作系统,也就是机器翻译研究人员开发的软件。无论是翻译规则、翻译模板还是统计模型中的参数都需要通过机器翻译系统进行读取和使用。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 构建一个强大的机器翻译系统需要``资源''和``系统''两方面共同作用。在资源方面,随着语料库语言学的发展,已经有大量高质量的双语和单语数据(称为语料)被整理并且电子化,研发机器翻译系统所需要的语料基础已经具备。特别是像英语、汉语等世界主流语种,相关语料资源已经非常丰富,这也大大加速了相关研究的进展。当然,对于一些稀缺资源语种或者特殊的领域,语料库仍然匮乏,但是这些并不影响机器翻译领域整体的发展速度。在现有语料库的基础上,很多研究者可以把精力集中在``系统''上。但是,机器翻译并非易事,有以下几方面挑战: \parinterval 构建一个强大的机器翻译系统需要``资源''和``系统''两方面共同作用。在资源方面,随着语料库语言学的发展,已经有大量高质量的双语和单语数据(称为语料)被整理并且电子化,研发机器翻译系统所需要的语料基础已经具备。特别是像英语、汉语等世界主流语种,相关语料资源已经非常丰富,这也大大加速了相关研究的进展。当然,对于一些稀缺资源语种或者特殊的领域,语料库仍然匮乏,但是这些并不影响机器翻译领域整体的发展速度。在现有语料库的基础上,很多研究者可以把精力集中在``系统''上。但是,机器翻译并非易事,有以下几方面挑战:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{自然语言翻译问题的复杂性极高}}。语言是人类进化的最高成就之一,自然语言具有高度的概括性、灵活性、多样性,这些都很难用几个简单的模型和算法进行描述。因此,翻译问题的数学建模和计算机程序实现难度很大。虽然近几年Alpha Go等人工智能系统在围棋等领域取得了令人瞩目的成绩,但是,相比翻译来说,围棋等棋类任务仍然``简单'',比如,对于一个句子,其潜在的译文几乎是不可穷尽的,即使同一句话不同人的理解也不尽相同,甚至在翻译一个句子、一个单词的时候,要考虑整个篇章的上下文语境,这些问题都不是传统棋类任务所具备的。 \item {\small\bfnew{自然语言翻译问题的复杂性极高}}。语言是人类进化的最高成就之一,自然语言具有高度的概括性、灵活性、多样性,这些都很难用几个简单的模型和算法进行描述。因此,翻译问题的数学建模和计算机程序实现难度很大。虽然近几年Alpha Go等人工智能系统在围棋等领域取得了令人瞩目的成绩,但是,相比翻译来说,围棋等棋类任务仍然``简单'',比如,对于一个句子,其潜在的译文几乎是不可穷尽的,即使同一句话不同人的理解也不尽相同,甚至在翻译一个句子、一个单词的时候,要考虑整个篇章的上下文语境,这些问题都不是传统棋类任务所具备的。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{计算机的``理解''与人类的``理解''存在鸿沟}}。人类一直希望把自己翻译时所使用的知识描述出来,并用计算机程序进行实现,例如早期基于规则的机器翻译方法就源自这个思想。但是,经过实践发现,人和计算机在``理解''自然语言上存在着明显差异。首先,人类的语言能力是经过长时间多种外部环境因素共同作用形成的,这种能力很难直接准确表达。人类的语言知识本身就很难描述,更不用说让计算机来理解;其次,人和机器翻译系统理解语言的目的不一样。人理解和使用语言是为了进行生活和工作,而机器翻译系统更多的是为了对某些数学上定义的目标函数进行优化。也就是说,机器翻译系统关注的是翻译这个单一目标,而并不是像人一样进行复杂的活动;此外,人和计算机的运行方式有着本质区别。人类语言能力的生物学机理与机器翻译系统所使用的计算模型本质上是不同的,机器翻译系统使用的是其自身能够理解的``知识'',比如,统计学上的词语表示。这种``知识''并不需要人来理解,当然从系统开发的角度,计算机也并不需要理解人是如何思考的。 \item {\small\bfnew{计算机的``理解''与人类的``理解''存在鸿沟}}。人类一直希望把自己翻译时所使用的知识描述出来,并用计算机程序进行实现,例如早期基于规则的机器翻译方法就源自这个思想。但是,经过实践发现,人和计算机在``理解''自然语言上存在着明显差异。首先,人类的语言能力是经过长时间多种外部环境因素共同作用形成的,这种能力很难直接准确表达。人类的语言知识本身就很难描述,更不用说让计算机来理解;其次,人和机器翻译系统理解语言的目的不一样。人理解和使用语言是为了进行生活和工作,而机器翻译系统更多的是为了对某些数学上定义的目标函数进行优化。也就是说,机器翻译系统关注的是翻译这个单一目标,而并不是像人一样进行复杂的活动;此外,人和计算机的运行方式有着本质区别。人类语言能力的生物学机理与机器翻译系统所使用的计算模型本质上是不同的,机器翻译系统使用的是其自身能够理解的``知识'',比如,统计学上的词语表示。这种``知识''并不需要人来理解,当然从系统开发的角度,计算机也并不需要理解人是如何思考的。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{单一的方法无法解决多样的翻译问题}}。首先,语种的多样性会导致任意两种语言之间的翻译实际上都是不同的翻译任务。比如,世界上存在的语言多达几千种,如果选择任意两种语言进行互译就产生上百万种翻译方向。虽然已经有研究者尝试用同一个框架甚至同一个翻译系统进行全语种的翻译,但是这类系统离真正可用还有很远的距离;其次,不同的领域,不同的应用场景对翻译也有不同的需求。比如,文学作品的翻译和新闻的翻译就有不同、口译和笔译也有不同,类似的情况不胜枚举。机器翻译要适用于多样的需求,这些又进一步增加了计算机建模的难度;再次,对于机器翻译来说,充足的高质量数据是必要的,但是不同语种、不同领域、不同应用场景所拥有的数据量有明显差异,甚至很多语种几乎没有可用的数据,这时开发机器翻译系统的难度可想而知。值得注意的是,现在的机器翻译还无法像人类一样在学习少量样例的情况下进行举一反三,因此数据稀缺情况下的机器翻译也给研究者带来了很大的挑战。 \item {\small\bfnew{单一的方法无法解决多样的翻译问题}}。首先,语种的多样性会导致任意两种语言之间的翻译实际上都是不同的翻译任务。比如,世界上存在的语言多达几千种,如果选择任意两种语言进行互译就产生上百万种翻译方向。虽然已经有研究者尝试用同一个框架甚至同一个翻译系统进行全语种的翻译,但是这类系统离真正可用还有很远的距离;其次,不同的领域,不同的应用场景对翻译也有不同的需求。比如,文学作品的翻译和新闻的翻译就有不同、口译和笔译也有不同,类似的情况不胜枚举。机器翻译要适用于多样的需求,这些又进一步增加了计算机建模的难度;再次,对于机器翻译来说,充足的高质量数据是必要的,但是不同语种、不同领域、不同应用场景所拥有的数据量有明显差异,甚至很多语种几乎没有可用的数据,这时开发机器翻译系统的难度可想而知。值得注意的是,现在的机器翻译还无法像人类一样在学习少量样例的情况下进行举一反三,因此数据稀缺情况下的机器翻译也给研究者带来了很大的挑战。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 显然,实现机器翻译并不简单,甚至有人把机器翻译看作是实现人工智能的终极目标。幸运的是,今天的机器翻译无论从技术方法上还是从应用上都有了巨大的飞跃,很多问题在不断被求解。如果你看到过十年前机器翻译的结果,再对比今天的结果,一定会感叹翻译质量的今非昔比,很多译文已经非常准确且流畅。从当今机器翻译的前沿技术看,近三十年机器翻译的进步更多的得益于基于数据驱动方法和统计建模方法的使用。特别是近些年深度学习等基于表示学习的端到端方法使得机器翻译的水平达到了新高度。因此,本书将会对基于统计建模和深度学习方法的机器翻译模型、方法和系统实现进行全面介绍和分析,希望这些内容可以对相关内容的学习和科研工作提供参考。 \parinterval 显然,实现机器翻译并不简单,甚至有人把机器翻译看作是实现人工智能的终极目标。幸运的是,今天的机器翻译无论从技术方法上还是从应用上都有了巨大的飞跃,很多问题在不断被求解。如果你看到过十年前机器翻译的结果,再对比今天的结果,一定会感叹翻译质量的今非昔比,很多译文已经非常准确且流畅。从当今机器翻译的前沿技术看,近三十年机器翻译的进步更多的得益于基于数据驱动方法和统计建模方法的使用。特别是近些年深度学习等基于表示学习的端到端方法使得机器翻译的水平达到了新高度。因此,本书将会对基于统计建模和深度学习方法的机器翻译模型、方法和系统实现进行全面介绍和分析,希望这些内容可以对相关内容的学习和科研工作提供参考。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{机器翻译简史} \section{机器翻译简史}
\parinterval 虽然翻译这个概念在人类历史中已经存在了上千年,但机器翻译发展至今只有七十余年的历史。纵观机器翻译的发展,历程曲折又耐人寻味,可以说了解机器翻译的历史对我们深入理解相关技术方法会有很好的启发,甚至对我们了解整个自然语言处理领域的发展也有启示作用。 \parinterval 虽然翻译这个概念在人类历史中已经存在了上千年,但机器翻译发展至今只有七十余年的历史。纵观机器翻译的发展,历程曲折又耐人寻味,可以说了解机器翻译的历史对我们深入理解相关技术方法会有很好的启发,甚至对我们了解整个自然语言处理领域的发展也有启示作用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{人工翻译} \subsection{人工翻译}
\parinterval 人类形成语言文字的过程中逐渐形成了翻译的概念。一个著名的标志性证据是罗塞塔石碑(Rosetta Stone),如图\ref{fig:rosetta-stone}所示。这个石碑制作于公元前196年,据说是可供考证的最久远的记载平行文字的历史遗迹。石碑由上至下刻有同一段埃及国王诏书的三种语言版本,最上面是古埃及象形文,中间是埃及草书,最下面是古希腊文。可以明显看出石碑上中下雕刻的文字的纹理是不同的。尽管用不同的语言文字描述同一件事在今天看来很常见,但是这在生产力低下的两千年前是很罕见的。很多人认为罗塞塔石碑是标志翻译或人工翻译的一个起点。目前罗塞塔石碑保存于大英博物馆,并成为该馆最具代表性的镇馆之宝之一。 \parinterval 人类形成语言文字的过程中逐渐形成了翻译的概念。一个著名的标志性证据是罗塞塔石碑(Rosetta Stone),如图\ref{fig:rosetta-stone}所示。这个石碑制作于公元前196年,据说是可供考证的最久远的记载平行文字的历史遗迹。石碑由上至下刻有同一段埃及国王诏书的三种语言版本,最上面是古埃及象形文,中间是埃及草书,最下面是古希腊文。可以明显看出石碑上中下雕刻的文字的纹理是不同的。尽管用不同的语言文字描述同一件事在今天看来很常见,但是这在生产力低下的两千年前是很罕见的。很多人认为罗塞塔石碑是标志翻译或人工翻译的一个起点。目前罗塞塔石碑保存于大英博物馆,并成为该馆最具代表性的镇馆之宝之一。
%---------------------------------------------- %----------------------------------------------
% 图1.3
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=0.20]{./Chapter1/Figures/figure-rosetta-stone.jpg} \includegraphics[scale=0.20]{./Chapter1/Figures/figure-rosetta-stone.jpg}
...@@ -92,13 +106,15 @@ ...@@ -92,13 +106,15 @@
\parinterval 翻译在人类历史长河中起到了重要的作用。一方面,语言文字、文化和地理位置的差异性,使得翻译成为一个重要的需求;另一方面,翻译也加速了不同文明的融会贯通,促进了世界的发展。今天,翻译已经成为重要的行业之一,包括各个高校也都设立了翻译及相关专业,相关人才不断涌现。据《2019年中国语言服务行业发展报告》统计:全球语言服务产值预计将首次接近500亿美元;中国涉及语言服务的在营企业360,000余家,语言服务为主营业务的在营企业近万家,总产值超过300亿元,年增长3\%以上;全国开设外语类专业的高校数量多达上千所,其中设立有翻译硕士(MTI)和翻译本科(BTI)专业的院校分别有250余所和280余所,MTI累计招生数达6万余人\upcite{赵军峰2019深化改革}。当然,面对着巨大的需求,如何使用技术手段提高人工翻译效率,比如:机器辅助翻译,也是人工翻译和机器翻译领域需要共同探索的方向。 \parinterval 翻译在人类历史长河中起到了重要的作用。一方面,语言文字、文化和地理位置的差异性,使得翻译成为一个重要的需求;另一方面,翻译也加速了不同文明的融会贯通,促进了世界的发展。今天,翻译已经成为重要的行业之一,包括各个高校也都设立了翻译及相关专业,相关人才不断涌现。据《2019年中国语言服务行业发展报告》统计:全球语言服务产值预计将首次接近500亿美元;中国涉及语言服务的在营企业360,000余家,语言服务为主营业务的在营企业近万家,总产值超过300亿元,年增长3\%以上;全国开设外语类专业的高校数量多达上千所,其中设立有翻译硕士(MTI)和翻译本科(BTI)专业的院校分别有250余所和280余所,MTI累计招生数达6万余人\upcite{赵军峰2019深化改革}。当然,面对着巨大的需求,如何使用技术手段提高人工翻译效率,比如:机器辅助翻译,也是人工翻译和机器翻译领域需要共同探索的方向。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{机器翻译的萌芽} \subsection{机器翻译的萌芽}
\parinterval 人工翻译已经存在了上千年,而机器翻译又起源于什么时候呢?机器翻译的兴起与发展可以说充满了跌宕起伏,整个发展史可以分为萌芽期、受挫期、快速成长期和爆发期四个阶段。 \parinterval 人工翻译已经存在了上千年,而机器翻译又起源于什么时候呢?机器翻译的兴起与发展可以说充满了跌宕起伏,整个发展史可以分为萌芽期、受挫期、快速成长期和爆发期四个阶段。
%---------------------------------------------- %----------------------------------------------
% 图1.4
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=0.25]{./Chapter1/Figures/figure-eniac.jpg} \includegraphics[scale=0.25]{./Chapter1/Figures/figure-eniac.jpg}
...@@ -111,7 +127,10 @@ ...@@ -111,7 +127,10 @@
\parinterval 第二次世界大战使得数学和密码学相当发达,由于战争的需要,在那个时代消息传递变的更为隐秘,对文字进行加密和解密成为重要的军事需求。因此,有人提出是否能用密码学的技术或方法解决人类语言的翻译,比如把汉语看成英语的一个加密文本,汉语翻译成英语就类似于解密的过程。当然这只是最初的想法。第一次提出机器翻译这个概念是在1949年,当时W. Weaver撰写了一篇名为《翻译》的备忘录,正式开创了机器翻译(MachineTranslation)的概念,这个概念一直沿用至今。当然,在那个年代进行机器翻译研究还有很多条件不具备,包括使用加密解密技术进行自动翻译的很多尝试很快也被验证是不可行的。不过,这些早期的探索为后来机器翻译的发展提供了思想的火种。 \parinterval 第二次世界大战使得数学和密码学相当发达,由于战争的需要,在那个时代消息传递变的更为隐秘,对文字进行加密和解密成为重要的军事需求。因此,有人提出是否能用密码学的技术或方法解决人类语言的翻译,比如把汉语看成英语的一个加密文本,汉语翻译成英语就类似于解密的过程。当然这只是最初的想法。第一次提出机器翻译这个概念是在1949年,当时W. Weaver撰写了一篇名为《翻译》的备忘录,正式开创了机器翻译(MachineTranslation)的概念,这个概念一直沿用至今。当然,在那个年代进行机器翻译研究还有很多条件不具备,包括使用加密解密技术进行自动翻译的很多尝试很快也被验证是不可行的。不过,这些早期的探索为后来机器翻译的发展提供了思想的火种。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{机器翻译的受挫} \subsection{机器翻译的受挫}
\parinterval 随着电子计算机的发展,研究者开始尝试使用计算机来进行自动的翻译。但是事情并不总是一帆风顺,怀疑论者对机器翻译一直存有质疑,并很容易找出一些机器翻译无法解决的问题。自然地,人们也期望能够客观地评估一下机器翻译的可行性。当时美国基金资助组织委任自动语言处理咨询会承担了这项任务。 \parinterval 随着电子计算机的发展,研究者开始尝试使用计算机来进行自动的翻译。但是事情并不总是一帆风顺,怀疑论者对机器翻译一直存有质疑,并很容易找出一些机器翻译无法解决的问题。自然地,人们也期望能够客观地评估一下机器翻译的可行性。当时美国基金资助组织委任自动语言处理咨询会承担了这项任务。
...@@ -123,7 +142,6 @@ ...@@ -123,7 +142,6 @@
\parinterval 从历史上看,包括机器翻译在内很多人工智能领域在那个年代并不受``待见'',其主要原因在于当时的技术水平还比较低,而大家又对机器翻译等技术的期望过高。最后发现,当时的机器翻译水平无法满足实际需要,因此转而排斥它。但是,也正是这一盆冷水,让人们可以更加冷静的思考机器翻译的发展方向,为后来的爆发蓄力。 \parinterval 从历史上看,包括机器翻译在内很多人工智能领域在那个年代并不受``待见'',其主要原因在于当时的技术水平还比较低,而大家又对机器翻译等技术的期望过高。最后发现,当时的机器翻译水平无法满足实际需要,因此转而排斥它。但是,也正是这一盆冷水,让人们可以更加冷静的思考机器翻译的发展方向,为后来的爆发蓄力。
%---------------------------------------------- %----------------------------------------------
% 图1.5
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=0.65]{./Chapter1/Figures/figure-report.jpg} \includegraphics[scale=0.65]{./Chapter1/Figures/figure-report.jpg}
...@@ -132,33 +150,39 @@ ...@@ -132,33 +150,39 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{机器翻译的快速成长} \subsection{机器翻译的快速成长}
\parinterval 事物发展都是螺旋式上升的,机器翻译也是一样。上世纪70年代中后期,特别是80年代到90年代初,国家之间往来日益密切,而不同语言之间形成的交流障碍愈发严重,传统的人工作业方式已经远远不能满足需求。与此同时,语料库语言学的发展也为机器翻译提供了新的思路。其中,随着传统纸质文字资料不断电子化,计算机可读的语料越来越多,这使得人们可以用计算机对语言规律进行统计分析。另一方面,随着可用数据越来越多,用数学模型描述这些数据中的规律并进行推理逐渐成为可能。这也衍生出一类数学建模方法\ \dash\ {\small\bfnew{数据驱动}}\index{数据驱动}(Data-Driven)\index{Data-Driven}的方法。这类方法也成为了随后出现的统计机器翻译的基础。 \parinterval 事物发展都是螺旋式上升的,机器翻译也是一样。上世纪70年代中后期,特别是80年代到90年代初,国家之间往来日益密切,而不同语言之间形成的交流障碍愈发严重,传统的人工作业方式已经远远不能满足需求。与此同时,语料库语言学的发展也为机器翻译提供了新的思路。其中,随着传统纸质文字资料不断电子化,计算机可读的语料越来越多,这使得人们可以用计算机对语言规律进行统计分析。另一方面,随着可用数据越来越多,用数学模型描述这些数据中的规律并进行推理逐渐成为可能。这也衍生出一类数学建模方法\ \dash\ {\small\bfnew{数据驱动}}\index{数据驱动}(Data-Driven)\index{Data-Driven}的方法。这类方法也成为了随后出现的统计机器翻译的基础。
传统的机器翻译方法,都需要人来书写规则,虽然对少部分句子具有较高的翻译精度,但这类方法对翻译现象的覆盖度有限,而且对规则或者模板中的噪声非常敏感,系统健壮性差。而基于数据驱动的方法不依赖于人写的规则,机器翻译的建模、训练和推断都可以自动地从数据中学习。这使得整个机器翻译的范式发生了翻天覆地的变化,比如,基于实例的方法和统计机器翻译就是在此期间兴起的。此外,这样的方法使得机器翻译系统的开发代价大大地降低。从上世纪90年代到本世纪初,统计机器翻译发展迅猛,很快成为了当时机器翻译研究与应用的代表性方法。一个标志性的事件是谷歌推出了一个在线的免费自动翻译服务,也就是大家熟知的谷歌翻译。这使得机器翻译这种``高大上''的技术快速进入人们的生活,而不再是束之高阁的科研想法。随着机器翻译不断走向实用,机器翻译的应用也越来越多,这反过来进一步促进了机器翻译的研究进程。比如,在2005-2015年间,统计机器翻译这个主题几乎统治了ACL等自然语言处理相关方向顶级会议的论文,可见其在当时的影响力。 传统的机器翻译方法,都需要人来书写规则,虽然对少部分句子具有较高的翻译精度,但这类方法对翻译现象的覆盖度有限,而且对规则或者模板中的噪声非常敏感,系统健壮性差。而基于数据驱动的方法不依赖于人写的规则,机器翻译的建模、训练和推断都可以自动地从数据中学习。这使得整个机器翻译的范式发生了翻天覆地的变化,比如,基于实例的方法和统计机器翻译就是在此期间兴起的。此外,这样的方法使得机器翻译系统的开发代价大大地降低。从上世纪90年代到本世纪初,统计机器翻译发展迅猛,很快成为了当时机器翻译研究与应用的代表性方法。一个标志性的事件是谷歌推出了一个在线的免费自动翻译服务,也就是大家熟知的谷歌翻译。这使得机器翻译这种``高大上''的技术快速进入人们的生活,而不再是束之高阁的科研想法。随着机器翻译不断走向实用,机器翻译的应用也越来越多,这反过来进一步促进了机器翻译的研究进程。比如,在2005-2015年间,统计机器翻译这个主题几乎统治了ACL等自然语言处理相关方向顶级会议的论文,可见其在当时的影响力。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{机器翻译的爆发} \subsection{机器翻译的爆发}
\parinterval 2005年以后迎来了统计机器翻译发展的十年黄金时期,各种基于统计机器翻译模型层出不穷,经典的基于短语的模型和基于句法的模型也先后被提出。但是在2013年以后,机器学习的进步带来了机器翻译技术进一步提升。特别是基于神经网络的深度学习方法在机器视觉、语音识别中被成功应用,带来性能的飞跃式提升。很快,相关模型和方法也被用于机器翻译。对于机器翻译来说,深度学习的成功也是一种必然,原因如下: \parinterval 2005年以后迎来了统计机器翻译发展的十年黄金时期,各种基于统计机器翻译模型层出不穷,经典的基于短语的模型和基于句法的模型也先后被提出。但是在2013年以后,机器学习的进步带来了机器翻译技术进一步提升。特别是基于神经网络的深度学习方法在机器视觉、语音识别中被成功应用,带来性能的飞跃式提升。很快,相关模型和方法也被用于机器翻译。对于机器翻译来说,深度学习的成功也是一种必然,原因如下:
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 第一,端到端学习不依赖于过多的先验假设。在统计机器翻译时代,模型设计或多或少会对翻译的过程进行假设,称为隐藏结构假设。比如基于短语的模型假设:源语言和目标语言都会被切分成短语序列,这些短语之间存在某种对齐关系。这种假设既有优点也有缺点,一方面,假设可以有助于模型融入人类的先验知识,包括短语本身也借鉴了语言学相关的概念;另一方面,假设越多模型受到的限制也越多。如果假设是正确的,模型可以很好地描述问题。但如果假设错误,那么模型就可能产生偏差。深度学习不依赖于先验知识,也不需要手工设计特征,模型直接从输入和输出的映射上进行学习(端到端学习),这样也在一定程度上避免了隐藏结构假设造成的偏差。 \item 第一,端到端学习不依赖于过多的先验假设。在统计机器翻译时代,模型设计或多或少会对翻译的过程进行假设,称为隐藏结构假设。比如基于短语的模型假设:源语言和目标语言都会被切分成短语序列,这些短语之间存在某种对齐关系。这种假设既有优点也有缺点,一方面,假设可以有助于模型融入人类的先验知识,包括短语本身也借鉴了语言学相关的概念;另一方面,假设越多模型受到的限制也越多。如果假设是正确的,模型可以很好地描述问题。但如果假设错误,那么模型就可能产生偏差。深度学习不依赖于先验知识,也不需要手工设计特征,模型直接从输入和输出的映射上进行学习(端到端学习),这样也在一定程度上避免了隐藏结构假设造成的偏差。
\vspace{0.5em}
\item 第二,神经网络的连续空间模型有更强的表示能力。机器翻译中的一个基本问题是:如何表示一个句子?统计机器翻译把句子的生成过程看作是短语或者规则的推导,这本质上是一个离散空间上的符号系统。深度学习把传统的基于离散化的表示变成了连续空间的表示。比如,用实数空间的分布式表示代替了离散化的词语表示,而整个句子可以被描述为一个实数向量。这使得翻译问题可以在连续空间上描述,进而大大缓解了传统离散空间模型维度灾难等问题。更重要的是,连续空间模型可以用梯度下降等方法进行优化,具有很好的数学性质并且易于实现。 \item 第二,神经网络的连续空间模型有更强的表示能力。机器翻译中的一个基本问题是:如何表示一个句子?统计机器翻译把句子的生成过程看作是短语或者规则的推导,这本质上是一个离散空间上的符号系统。深度学习把传统的基于离散化的表示变成了连续空间的表示。比如,用实数空间的分布式表示代替了离散化的词语表示,而整个句子可以被描述为一个实数向量。这使得翻译问题可以在连续空间上描述,进而大大缓解了传统离散空间模型维度灾难等问题。更重要的是,连续空间模型可以用梯度下降等方法进行优化,具有很好的数学性质并且易于实现。
\vspace{0.5em}
\item 第三,深度网络学习算法的发展和GPU(Graphics Processing Unit)等并行计算设备为训练神经网络提供了可能。早期的基于神经网络的方法一直没有在机器翻译甚至自然语言处理领域得到大规模应用,其中一个重要的原因是这类方法需要大量的浮点运算,而且以前计算机的计算能力无法达到这个要求。随着GPU等并行计算设备的进步,训练大规模神经网络也变为了可能。现在已经可以在几亿、几十亿,甚至上百亿句对上训练机器翻译系统,系统研发的周期越来越短,进展日新月异。 \item 第三,深度网络学习算法的发展和GPU(Graphics Processing Unit)等并行计算设备为训练神经网络提供了可能。早期的基于神经网络的方法一直没有在机器翻译甚至自然语言处理领域得到大规模应用,其中一个重要的原因是这类方法需要大量的浮点运算,而且以前计算机的计算能力无法达到这个要求。随着GPU等并行计算设备的进步,训练大规模神经网络也变为了可能。现在已经可以在几亿、几十亿,甚至上百亿句对上训练机器翻译系统,系统研发的周期越来越短,进展日新月异。
\vspace{0.5em}
\end{itemize} \end{itemize}
\parinterval 今天,神经机器翻译已经成为新的范式,大有全面替代统计机器翻译之势。比如,从世界上著名的机器翻译比赛WMT和CCMT中就可以看出这个趋势。如图\ref{fig:wmt}所示,其中左图是WMT19全球机器翻译比赛的参赛队伍的截图,这些参赛队伍基本上都在使用深度学习完成机器翻译的建模。而在WMT19各个项目夺冠系统中(\ref{fig:wmt}右图),神经机器翻译也几乎一统天下。 \parinterval 今天,神经机器翻译已经成为新的范式,大有全面替代统计机器翻译之势。比如,从世界上著名的机器翻译比赛WMT和CCMT中就可以看出这个趋势。如图\ref{fig:wmt}所示,其中左图是WMT19全球机器翻译比赛的参赛队伍的截图,这些参赛队伍基本上都在使用深度学习完成机器翻译的建模。而在WMT19各个项目夺冠系统中(\ref{fig:wmt}右图),神经机器翻译也几乎一统天下。
\parinterval 值得一提的是,近些年神经机器翻译的快速发展也得益于产业界的关注。各大互联网企业和机器翻译技术研发机构都对神经机器翻译的模型和实践方法给予了很大贡献。比如,谷歌,微软、百度、搜狗、腾讯、阿里、有道、小牛翻译等企业凭借自身人才和基础设施方面的优势,先后推出了以神经机器翻译为内核的产品及服务,相关技术方法已经在大规模应用中得到验证,大大推动了机器翻译的产业化进程,而且这种趋势在不断加强,机器翻译的前景也更加宽广。 \parinterval 值得一提的是,近些年神经机器翻译的快速发展也得益于产业界的关注。各大互联网企业和机器翻译技术研发机构都对神经机器翻译的模型和实践方法给予了很大贡献。比如,谷歌,微软、百度、搜狗、腾讯、阿里、有道、小牛翻译等企业凭借自身人才和基础设施方面的优势,先后推出了以神经机器翻译为内核的产品及服务,相关技术方法已经在大规模应用中得到验证,大大推动了机器翻译的产业化进程,而且这种趋势在不断加强,机器翻译的前景也更加宽广。
%---------------------------------------------- %----------------------------------------------
% 图1.6
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=0.3]{./Chapter1/Figures/figure-wmt-participation.jpg} \includegraphics[scale=0.3]{./Chapter1/Figures/figure-wmt-participation.jpg}
...@@ -167,8 +191,12 @@ ...@@ -167,8 +191,12 @@
\caption{国际机器翻译大赛(左:WMT19参赛队伍;右:WMT19最终个项目最好分数结果)} \caption{国际机器翻译大赛(左:WMT19参赛队伍;右:WMT19最终个项目最好分数结果)}
\label{fig:wmt} \label{fig:wmt}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{机器翻译现状} \section{机器翻译现状}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
...@@ -177,7 +205,6 @@ ...@@ -177,7 +205,6 @@
\parinterval\ref{fig:results-zh-to-en news-field-translation}展示了机器翻译和人工翻译质量的一个对比结果。在汉语到英语的新闻翻译任务中,如果对译文进行人工评价,五分制机器翻译的译文得3.9 分,人工译文得4.7分(人的翻译也不是完美的)。可见,在这个任务中机器翻译表现不错,但是与人还有一定差距。如果换一种方式评价,把人的译文作为参考答案,用机器翻译的译文与其进行比对,会发现机器翻译的得分只有47分(百分制)。当然,这个结果并不是说机器翻译的译文质量很差,它更多的是表明机器翻译系统可以生成一些与人工翻译不同的译文,机器翻译也具有一定的创造性。这也类似于,很多围棋选手都想向AlphaGo学习,因为智能围棋系统也可以走出一些人类从未走过的妙招。 \parinterval\ref{fig:results-zh-to-en news-field-translation}展示了机器翻译和人工翻译质量的一个对比结果。在汉语到英语的新闻翻译任务中,如果对译文进行人工评价,五分制机器翻译的译文得3.9 分,人工译文得4.7分(人的翻译也不是完美的)。可见,在这个任务中机器翻译表现不错,但是与人还有一定差距。如果换一种方式评价,把人的译文作为参考答案,用机器翻译的译文与其进行比对,会发现机器翻译的得分只有47分(百分制)。当然,这个结果并不是说机器翻译的译文质量很差,它更多的是表明机器翻译系统可以生成一些与人工翻译不同的译文,机器翻译也具有一定的创造性。这也类似于,很多围棋选手都想向AlphaGo学习,因为智能围棋系统也可以走出一些人类从未走过的妙招。
%---------------------------------------------- %----------------------------------------------
% 图1.7
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-results-zh-to-en-news-field-translation} \input{./Chapter1/Figures/figure-results-zh-to-en-news-field-translation}
...@@ -189,8 +216,8 @@ ...@@ -189,8 +216,8 @@
\parinterval\ref{fig:comparison-mt-ht}展示了一个真实的汉语到英语翻译实例。对比发现,机器翻译与人工翻译还是存在差距的,特别是在翻译一些具有感情色彩的词语时,机器翻译的译文缺一些味道。那么,机器翻译一点用都没有吗?显然不是。实际上,如果考虑翻译速度与翻译代价,机器翻译的价值是无可比拟的。还是同一个例子,翻译一篇短文如果人工翻译需要30分钟甚至更长时间,那么机器翻译仅仅需要两秒,换种情况思考,如果有100万篇这样的文档,其人工翻译的成本根本无法想象,消耗的时间更是难以计算,而计算机集群仅仅需要一天,而且只有电力的消耗。 \parinterval\ref{fig:comparison-mt-ht}展示了一个真实的汉语到英语翻译实例。对比发现,机器翻译与人工翻译还是存在差距的,特别是在翻译一些具有感情色彩的词语时,机器翻译的译文缺一些味道。那么,机器翻译一点用都没有吗?显然不是。实际上,如果考虑翻译速度与翻译代价,机器翻译的价值是无可比拟的。还是同一个例子,翻译一篇短文如果人工翻译需要30分钟甚至更长时间,那么机器翻译仅仅需要两秒,换种情况思考,如果有100万篇这样的文档,其人工翻译的成本根本无法想象,消耗的时间更是难以计算,而计算机集群仅仅需要一天,而且只有电力的消耗。
%\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ %\\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\ \\
%---------------------------------------------- %----------------------------------------------
% 图1.9
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-Example-RBMT} \input{./Chapter1/Figures/figure-Example-RBMT}
...@@ -199,8 +226,8 @@ ...@@ -199,8 +226,8 @@
\label{fig:Example-RBMT} \label{fig:Example-RBMT}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%---------------------------------------------- %----------------------------------------------
% 图1.8
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-comparison-mt-ht} \input{./Chapter1/Figures/figure-comparison-mt-ht}
...@@ -210,11 +237,19 @@ ...@@ -210,11 +237,19 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{机器翻译方法} \section{机器翻译方法}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\parinterval 为了对机器翻译技术有一个整体的认识,这里对一些主要的机器翻译框架进行简要介绍。 \parinterval 为了对机器翻译技术有一个整体的认识,这里对一些主要的机器翻译框架进行简要介绍。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于规则的机器翻译} \subsection{基于规则的机器翻译}
\parinterval 早期的机器翻译研究都是以基于规则的方法为主,特别是在上世纪70年代,以基于规则方法为代表的专家系统是人工智能中最具代表性的研究领域。它的主要思想是以词典和人工书写的规则库作为翻译知识,用一系列规则的组合完成翻译。 \parinterval 早期的机器翻译研究都是以基于规则的方法为主,特别是在上世纪70年代,以基于规则方法为代表的专家系统是人工智能中最具代表性的研究领域。它的主要思想是以词典和人工书写的规则库作为翻译知识,用一系列规则的组合完成翻译。
...@@ -223,12 +258,15 @@ ...@@ -223,12 +258,15 @@
\parinterval 但是,基于规则的机器翻译也存在问题。首先,书写规则需要消耗大量人力,规则库的维护代价极高;其次,规则很难涵盖所有的语言现象;再有,自然语言存在大量的歧义现象,规则之间也会存在冲突,这也导致规则数量不可能无限制增长。 \parinterval 但是,基于规则的机器翻译也存在问题。首先,书写规则需要消耗大量人力,规则库的维护代价极高;其次,规则很难涵盖所有的语言现象;再有,自然语言存在大量的歧义现象,规则之间也会存在冲突,这也导致规则数量不可能无限制增长。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于实例的机器翻译} \subsection{基于实例的机器翻译}
\parinterval 基于规则的方法更多地被使用在受限翻译场景中,比如受限词汇集的翻译。针对基于规则的方法存在的问题,基于实例的机器翻译于上世纪80年代中期被提出\upcite{nagao1984framework}。该方法的基本思想是在双语句库中找到与待翻译句子相似的实例,之后对实例的译文进行修改,如替换、增加、删除等一系列操作,从而得到最终译文。这个过程可以类比人类学习并运用语言的过程:人会先学习一些翻译实例或者模板,当遇到新的句子时,会用以前的实例和模板作对比,之后得到新的句子的翻译结果。这也是一种举一反三的思想。 \parinterval 基于规则的方法更多地被使用在受限翻译场景中,比如受限词汇集的翻译。针对基于规则的方法存在的问题,基于实例的机器翻译于上世纪80年代中期被提出\upcite{nagao1984framework}。该方法的基本思想是在双语句库中找到与待翻译句子相似的实例,之后对实例的译文进行修改,如替换、增加、删除等一系列操作,从而得到最终译文。这个过程可以类比人类学习并运用语言的过程:人会先学习一些翻译实例或者模板,当遇到新的句子时,会用以前的实例和模板作对比,之后得到新的句子的翻译结果。这也是一种举一反三的思想。
%---------------------------------------------- %----------------------------------------------
% 图1.10
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-zh-sentences-into-en-sentences} \input{./Chapter1/Figures/figure-zh-sentences-into-en-sentences}
...@@ -241,12 +279,15 @@ ...@@ -241,12 +279,15 @@
\parinterval 当然,基于实例的机器翻译也并不完美。首先,这种方法对翻译实例的精确度要求非常高,一个实例的错误可能会导致一个句型都无法翻译正确;其次,实例维护较为困难,实例库的构建通常需要单词级对齐的标注,而保证词对齐的质量是非常困难的工作,这也大大增加了实例库维护的难度;再次,尽管可以通过实例或者模板进行翻译,但是其覆盖度仍然有限。在实际应用中,很多句子无法找到可以匹配的实例或者模板。 \parinterval 当然,基于实例的机器翻译也并不完美。首先,这种方法对翻译实例的精确度要求非常高,一个实例的错误可能会导致一个句型都无法翻译正确;其次,实例维护较为困难,实例库的构建通常需要单词级对齐的标注,而保证词对齐的质量是非常困难的工作,这也大大增加了实例库维护的难度;再次,尽管可以通过实例或者模板进行翻译,但是其覆盖度仍然有限。在实际应用中,很多句子无法找到可以匹配的实例或者模板。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{统计机器翻译} \subsection{统计机器翻译}
\parinterval 统计机器翻译兴起于上世纪90年代\upcite{brown1990statistical,koehn2003statistical}它利用统计模型从单/双语语料中自动学习翻译知识。具体来说,可以使用单语语料学习语言模型,使用双语平行语料学习翻译模型,并使用这些统计模型完成对翻译过程的建模。整个过程不需要人工编写规则,也不需要从实例中构建翻译模板。无论是词还是短语,甚至是句法结构,统计机器翻译系统都可以自动学习。人更多的是参与定义翻译所需的特征和基本翻译单元的形式,而翻译知识都保存在模型的参数中。 \parinterval 统计机器翻译兴起于上世纪90年代\upcite{brown1990statistical,koehn2003statistical}它利用统计模型从单/双语语料中自动学习翻译知识。具体来说,可以使用单语语料学习语言模型,使用双语平行语料学习翻译模型,并使用这些统计模型完成对翻译过程的建模。整个过程不需要人工编写规则,也不需要从实例中构建翻译模板。无论是词还是短语,甚至是句法结构,统计机器翻译系统都可以自动学习。人更多的是参与定义翻译所需的特征和基本翻译单元的形式,而翻译知识都保存在模型的参数中。
%---------------------------------------------- %----------------------------------------------
% 图1.11
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-Example-SMT} \input{./Chapter1/Figures/figure-Example-SMT}
...@@ -259,13 +300,15 @@ ...@@ -259,13 +300,15 @@
\parinterval 由于没有对翻译过程进行过多的限制,统计机器翻译有很灵活的译文生成方式,因此系统可以处理更加多样的句子。但是这种方法也带来了一些问题:首先,虽然并不需要人工定义翻译规则或模板,统计机器翻译系统仍然需要人工定义翻译特征。提升翻译品质往往需要大量的特征工程,导致人工特征设计的好坏会对系统产生决定性影响;其次,统计机器翻译的模块较多,系统研发比较复杂;再次,随着训练数据增多,统计机器翻译的模型(比如短语翻译表)会明显增大,在系统存储资源受限的情况下,妨碍系统的正常使用。 \parinterval 由于没有对翻译过程进行过多的限制,统计机器翻译有很灵活的译文生成方式,因此系统可以处理更加多样的句子。但是这种方法也带来了一些问题:首先,虽然并不需要人工定义翻译规则或模板,统计机器翻译系统仍然需要人工定义翻译特征。提升翻译品质往往需要大量的特征工程,导致人工特征设计的好坏会对系统产生决定性影响;其次,统计机器翻译的模块较多,系统研发比较复杂;再次,随着训练数据增多,统计机器翻译的模型(比如短语翻译表)会明显增大,在系统存储资源受限的情况下,妨碍系统的正常使用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{神经机器翻译} \subsection{神经机器翻译}
\parinterval 随着机器学习技术的发展,基于深度学习的神经机器翻译逐渐开始兴起。自2014年开始,它在短短几年内已经在大部分任务上取得了明显的优势\upcite{NIPS2014_5346,bahdanau2014neural}神经机器翻译中,词串被表示成实数向量,即分布式向量表示。这样,翻译过程并不是在离散化的单词和短语上进行,而是在实数向量空间上计算,因此它对词序列表示的方式产生了本质的改变。通常,机器翻译可以被看作一个序列到另一个序列的转化。在神经机器翻译中,序列到序列的转化过程可以由{\small\bfnew{编码器-解码器}}\index{编码器-解码器}(encoder-decoder)\index{encoder-decoder}框架实现。其中,编码器把源语言序列进行编码,并提取源语言中信息进行分布式表示,之后解码器再把这种信息转换为另一种语言的表达。 \parinterval 随着机器学习技术的发展,基于深度学习的神经机器翻译逐渐开始兴起。自2014年开始,它在短短几年内已经在大部分任务上取得了明显的优势\upcite{NIPS2014_5346,bahdanau2014neural}神经机器翻译中,词串被表示成实数向量,即分布式向量表示。这样,翻译过程并不是在离散化的单词和短语上进行,而是在实数向量空间上计算,因此它对词序列表示的方式产生了本质的改变。通常,机器翻译可以被看作一个序列到另一个序列的转化。在神经机器翻译中,序列到序列的转化过程可以由{\small\bfnew{编码器-解码器}}\index{编码器-解码器}(encoder-decoder)\index{encoder-decoder}框架实现。其中,编码器把源语言序列进行编码,并提取源语言中信息进行分布式表示,之后解码器再把这种信息转换为另一种语言的表达。
%---------------------------------------------- %----------------------------------------------
% 图1.12
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter1/Figures/figure-Example-NMT} \input{./Chapter1/Figures/figure-Example-NMT}
...@@ -278,12 +321,14 @@ ...@@ -278,12 +321,14 @@
\parinterval 相比统计机器翻译,神经机器翻译的优势体现在其不需要特征工程,所有信息由神经网络自动从原始输入中提取。而且,相比离散化的表示,词和句子的分布式连续空间表示可以为建模提供更为丰富的信息,同时可以使用相对成熟的基于梯度的方法优化模型。此外,神经网络的存储需求较小,天然适合小设备上的应用。但是,神经机器翻译也存在问题。首先,虽然脱离了特征工程,神经网络的结构需要人工设计,即使设计好结构,系统的调优、超参数的设置等仍然依赖大量的实验;其次,神经机器翻译现在缺乏可解释性,其过程和人的认知差异很大,通过人的先验知识干预的程度差;再次,神经机器翻译对数据的依赖很大,数据规模、质量对性能都有很大影响,特别是在数据稀缺的情况下,充分训练神经网络具有挑战。 \parinterval 相比统计机器翻译,神经机器翻译的优势体现在其不需要特征工程,所有信息由神经网络自动从原始输入中提取。而且,相比离散化的表示,词和句子的分布式连续空间表示可以为建模提供更为丰富的信息,同时可以使用相对成熟的基于梯度的方法优化模型。此外,神经网络的存储需求较小,天然适合小设备上的应用。但是,神经机器翻译也存在问题。首先,虽然脱离了特征工程,神经网络的结构需要人工设计,即使设计好结构,系统的调优、超参数的设置等仍然依赖大量的实验;其次,神经机器翻译现在缺乏可解释性,其过程和人的认知差异很大,通过人的先验知识干预的程度差;再次,神经机器翻译对数据的依赖很大,数据规模、质量对性能都有很大影响,特别是在数据稀缺的情况下,充分训练神经网络具有挑战。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{对比分析} \subsection{对比分析}
\parinterval 不同机器翻译方法有不同的特点。表\ref{tab:comparison-of-different-MT}对比了这些方法,不难看出: \parinterval 不同机器翻译方法有不同的特点。表\ref{tab:comparison-of-different-MT}对比了这些方法,不难看出:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em} \vspace{0.5em}
\item 规则系统需要人工书写规则并维护,人工代价较高。统计和神经网络方法仅需要设计特征或者神经网络结构,对人工依赖较少(语言相关的)。 \item 规则系统需要人工书写规则并维护,人工代价较高。统计和神经网络方法仅需要设计特征或者神经网络结构,对人工依赖较少(语言相关的)。
...@@ -291,12 +336,12 @@ ...@@ -291,12 +336,12 @@
\item 基于实例、统计和神经网络的方法都需要依赖语料库(数据),其中统计和神经网络方法具有一定的抗噪能力,因此也更适合大规模数据情况下的机器翻译系统研发。 \item 基于实例、统计和神经网络的方法都需要依赖语料库(数据),其中统计和神经网络方法具有一定的抗噪能力,因此也更适合大规模数据情况下的机器翻译系统研发。
\vspace{0.5em} \vspace{0.5em}
\item 基于规则和基于实例的方法在受限场景下有较好的精度,但是在开放领域的翻译上统计和神经网络方法更具优势。 \item 基于规则和基于实例的方法在受限场景下有较好的精度,但是在开放领域的翻译上统计和神经网络方法更具优势。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 借用机器翻译著名学者董振东先生对不同机器翻译方法的评价\footnote[1]{这里遵循董振东先生的话进行了重新表述}:基于规则和实例的机器翻译是傻子(依赖一定人工,在匹配规则和模板的情况下翻译质量高,但是系统泛化能力有限),统计和神经机器翻译是疯子(只依赖数据,不依赖人工书写规则或者模板,系统健壮性强,但是精度不稳定且翻译过程难以人工干预)。 \parinterval 借用机器翻译著名学者董振东先生对不同机器翻译方法的评价\footnote[1]{这里遵循董振东先生的话进行了重新表述}:基于规则和实例的机器翻译是傻子(依赖一定人工,在匹配规则和模板的情况下翻译质量高,但是系统泛化能力有限),统计和神经机器翻译是疯子(只依赖数据,不依赖人工书写规则或者模板,系统健壮性强,但是精度不稳定且翻译过程难以人工干预)。
%---------------------------------------------- %----------------------------------------------
% 表1.1
\begin{table}[htp]{ \begin{table}[htp]{
\begin{center} \begin{center}
\caption{不同机器翻译方法的对比} \caption{不同机器翻译方法的对比}
...@@ -320,7 +365,10 @@ ...@@ -320,7 +365,10 @@
\parinterval 从现在机器翻译的研究和应用情况来看,基于统计建模的方法(统计机器翻译和神经机器翻译)是主流。这主要是由于它们的系统研发周期短,通过搜集一定量的数据即可实现快速原型。是随着互联网等信息的不断开放,低成本的数据获取可以让系统更快得以实现。特别是最近神经机器翻译凭借其高质量的译文,受到研究人员和开发者的广泛青睐。当然,对不同方法进行融合也是有价值的研究方向,也有很多有趣的探索,比如无指导机器翻译中还是会同时使用统计机器翻译和神经机器翻译方法,这也是一种典型的融合多种方法的思路。 \parinterval 从现在机器翻译的研究和应用情况来看,基于统计建模的方法(统计机器翻译和神经机器翻译)是主流。这主要是由于它们的系统研发周期短,通过搜集一定量的数据即可实现快速原型。是随着互联网等信息的不断开放,低成本的数据获取可以让系统更快得以实现。特别是最近神经机器翻译凭借其高质量的译文,受到研究人员和开发者的广泛青睐。当然,对不同方法进行融合也是有价值的研究方向,也有很多有趣的探索,比如无指导机器翻译中还是会同时使用统计机器翻译和神经机器翻译方法,这也是一种典型的融合多种方法的思路。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{翻译质量评价} \section{翻译质量评价}
...@@ -328,14 +376,16 @@ ...@@ -328,14 +376,16 @@
\parinterval 一般来说,机器翻译的翻译{\small\bfnew{质量评价}}\index{质量评价}(Quality Evaluation)\index{Quality Evaluation}是指在参考答案或者评价标准已知的情况下对译文进行打分。这类方法可以被称作有参考答案的评价,包括人工打分、BLEU 等自动评价方法都是典型的有参考答案评价。相对的,{\small\bfnew{无参考答案的评价}}\index{无参考答案的评价}(Quality Estimation)\index{Quality Estimation}是指在没有人工评价和参考答案的情况下,对译文质量进行评估。这类方法可以被看作是对机器翻译译文进行质量`` 预测'',这样用户可以选择性的使用机器翻译结果。这里主要讨论有参考答案的评价,因为这类方法是机器翻译系统研发所使用的主要评价方法。 \parinterval 一般来说,机器翻译的翻译{\small\bfnew{质量评价}}\index{质量评价}(Quality Evaluation)\index{Quality Evaluation}是指在参考答案或者评价标准已知的情况下对译文进行打分。这类方法可以被称作有参考答案的评价,包括人工打分、BLEU 等自动评价方法都是典型的有参考答案评价。相对的,{\small\bfnew{无参考答案的评价}}\index{无参考答案的评价}(Quality Estimation)\index{Quality Estimation}是指在没有人工评价和参考答案的情况下,对译文质量进行评估。这类方法可以被看作是对机器翻译译文进行质量`` 预测'',这样用户可以选择性的使用机器翻译结果。这里主要讨论有参考答案的评价,因为这类方法是机器翻译系统研发所使用的主要评价方法。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{人工评价} \subsection{人工评价}
\parinterval 顾名思义,人工评价是指专家根据翻译结果好坏对译文进行评价。一般会根据句子的准确度和流利度对其进行打分,这样能够准确评定出句子是否准确翻译出原文的意思以及句子是否通顺。在对一个句子进行评定时,一般由多个专家匿名打分后进行综合评定。人工评价是最能准确反映句子翻译质量的评价方式,但是其缺点也十分明显:需要耗费人力物力,而且评价的周期长,不能及时得到有效的反馈。因此在实际系统开发中,纯人工评价不会过于频繁的被使用,它往往和自动评价一起配合,帮助系统研发人员准确的了解当前系统的状态。 \parinterval 顾名思义,人工评价是指专家根据翻译结果好坏对译文进行评价。一般会根据句子的准确度和流利度对其进行打分,这样能够准确评定出句子是否准确翻译出原文的意思以及句子是否通顺。在对一个句子进行评定时,一般由多个专家匿名打分后进行综合评定。人工评价是最能准确反映句子翻译质量的评价方式,但是其缺点也十分明显:需要耗费人力物力,而且评价的周期长,不能及时得到有效的反馈。因此在实际系统开发中,纯人工评价不会过于频繁的被使用,它往往和自动评价一起配合,帮助系统研发人员准确的了解当前系统的状态。
\parinterval 人工评价的策略非常多。考虑不同的因素,往往会使用不同的评价方案,比如: \parinterval 人工评价的策略非常多。考虑不同的因素,往往会使用不同的评价方案,比如:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em} \vspace{0.5em}
\item 打分:常用的方法是对每个译文进行百分制或者五分制打分,分数越高表明译文越好。更粗糙的方法有三分制,甚至两分制打分。注意,打分越细致,评价者的工作量越大,因此五分制或者三分制评价更适合快速获得评价结果。 \item 打分:常用的方法是对每个译文进行百分制或者五分制打分,分数越高表明译文越好。更粗糙的方法有三分制,甚至两分制打分。注意,打分越细致,评价者的工作量越大,因此五分制或者三分制评价更适合快速获得评价结果。
...@@ -354,12 +404,18 @@ ...@@ -354,12 +404,18 @@
\parinterval 简而言之,研究者可以根据实际情况选择不同的人工评价方案,人工评价也没有统一的标准。WMT和CCMT机器翻译评测都有配套的人工评价方案,可以作为业界的参考标准。 \parinterval 简而言之,研究者可以根据实际情况选择不同的人工评价方案,人工评价也没有统一的标准。WMT和CCMT机器翻译评测都有配套的人工评价方案,可以作为业界的参考标准。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{自动评价} \subsection{自动评价}
\parinterval 由于人工评价费事费力,同时具有一定的主观性,甚至同一篇文章不同人在不同时刻的理解都会不同,因此自动评价是也是机器翻译系统研发人员所青睐的方法。自动评价的方式虽然不如人工评价准确,但是具有速度快,成本低、一致性高的优点。而且随着评价技术的不断发展,自动评价方式已经具有了比较好的指导性,可以帮助使用者快速了解当前机器翻译译文的质量。在机器翻译领域,自动评价已经成为了一个重要的分支,提出的自动评价方法不下几十种。这里无法对这些方法一一列举,为了便于后续章节的描述,这里仅对具有代表性的一些方法进行简要介绍。 \parinterval 由于人工评价费事费力,同时具有一定的主观性,甚至同一篇文章不同人在不同时刻的理解都会不同,因此自动评价是也是机器翻译系统研发人员所青睐的方法。自动评价的方式虽然不如人工评价准确,但是具有速度快,成本低、一致性高的优点。而且随着评价技术的不断发展,自动评价方式已经具有了比较好的指导性,可以帮助使用者快速了解当前机器翻译译文的质量。在机器翻译领域,自动评价已经成为了一个重要的分支,提出的自动评价方法不下几十种。这里无法对这些方法一一列举,为了便于后续章节的描述,这里仅对具有代表性的一些方法进行简要介绍。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{BLEU} \subsubsection{BLEU}
\parinterval 目前使用最广泛的自动评价指标是BLEU。BLEU是Bilingual Evaluation understudy的缩写,最早由IBM在2002年提出\upcite{papineni2002bleu}。通过采用$n$-gram匹配的方式评定机器翻译结果和参考译文之间的相似度,即机器翻译的结果越接近人工参考译文就认定它的质量越高。$n$-gram是指$n$个连续单词组成的单元,称为{\small\bfnew{$n$元语法单元}}\index{$n$元语法单元}$n$越大表示评价时考虑的匹配片段越大。 \parinterval 目前使用最广泛的自动评价指标是BLEU。BLEU是Bilingual Evaluation understudy的缩写,最早由IBM在2002年提出\upcite{papineni2002bleu}。通过采用$n$-gram匹配的方式评定机器翻译结果和参考译文之间的相似度,即机器翻译的结果越接近人工参考译文就认定它的质量越高。$n$-gram是指$n$个连续单词组成的单元,称为{\small\bfnew{$n$元语法单元}}\index{$n$元语法单元}$n$越大表示评价时考虑的匹配片段越大。
...@@ -406,7 +462,10 @@ e^{(1-\frac{r}{c})}& c \le r ...@@ -406,7 +462,10 @@ e^{(1-\frac{r}{c})}& c \le r
\parinterval 从机器翻译的发展来看,BLEU的意义在于它给系统研发人员提供了一种简单、高效、可重复的自动评价手段,在研发机器翻译系统时可以不需要依赖人工评价。同时,BLEU也有很多创新之处,包括引入$n$-gram的匹配,截断计数和短句惩罚等等,包括NIST等很多评价指标都是受到BLEU的启发。当然, BLEU也并不完美,甚至经常被人诟病。比如,它需要依赖参考译文,而且评价结果有时与人工评价不一致,同时BLEU评价只是单纯的从匹配度的角度思考翻译质量的好坏,并没有真正考虑句子的语义是否翻译正确。但是,毫无疑问,BLEU仍然是机器翻译中最常用的评价方法。在没有找到更好的替代方案之前,BLEU还是机器翻译研究所使用的标准评价指标。 \parinterval 从机器翻译的发展来看,BLEU的意义在于它给系统研发人员提供了一种简单、高效、可重复的自动评价手段,在研发机器翻译系统时可以不需要依赖人工评价。同时,BLEU也有很多创新之处,包括引入$n$-gram的匹配,截断计数和短句惩罚等等,包括NIST等很多评价指标都是受到BLEU的启发。当然, BLEU也并不完美,甚至经常被人诟病。比如,它需要依赖参考译文,而且评价结果有时与人工评价不一致,同时BLEU评价只是单纯的从匹配度的角度思考翻译质量的好坏,并没有真正考虑句子的语义是否翻译正确。但是,毫无疑问,BLEU仍然是机器翻译中最常用的评价方法。在没有找到更好的替代方案之前,BLEU还是机器翻译研究所使用的标准评价指标。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{TER} \subsubsection{TER}
\parinterval TER是Translation Edit Rate的缩写,是一种基于距离的评价方法,用来评定机器翻译结果的译后编辑的工作量\upcite{snover2006study}。这里,距离被定义为将一个序列转换成另一个序列所需要的最少编辑操作次数。操作次数越多,距离越大,序列之间的相似性越低;相反距离越小,表示一个句子越容易改写成另一个句子,序列之间的相似性越高。TER使用的编辑操作包括:增加,删除,替换和移位,其中增加,删除,替换操作计算得到的距离被称为编辑距离,并根据错误率的形式给出评分: \parinterval TER是Translation Edit Rate的缩写,是一种基于距离的评价方法,用来评定机器翻译结果的译后编辑的工作量\upcite{snover2006study}。这里,距离被定义为将一个序列转换成另一个序列所需要的最少编辑操作次数。操作次数越多,距离越大,序列之间的相似性越低;相反距离越小,表示一个句子越容易改写成另一个句子,序列之间的相似性越高。TER使用的编辑操作包括:增加,删除,替换和移位,其中增加,删除,替换操作计算得到的距离被称为编辑距离,并根据错误率的形式给出评分:
...@@ -427,7 +486,10 @@ Candidate:cat is standing in the ground ...@@ -427,7 +486,10 @@ Candidate:cat is standing in the ground
\parinterval 与BLEU不同,基于距离的评价方法是一种典型的``错误率''的度量,类似的思想也广泛应用于语音识别等领域。在机器翻译中,除了TER外,还有WER, PER等十分相似的方法,只是在``错误''的定义上略有不同。需要注意的是,很多时候,研究者并不会单独使用BLEU或者TER,而是将两种方法融合,比如,使用BLEU与TER相减后的值作为评价指标(BLEU和TER之间是减号)。 \parinterval 与BLEU不同,基于距离的评价方法是一种典型的``错误率''的度量,类似的思想也广泛应用于语音识别等领域。在机器翻译中,除了TER外,还有WER, PER等十分相似的方法,只是在``错误''的定义上略有不同。需要注意的是,很多时候,研究者并不会单独使用BLEU或者TER,而是将两种方法融合,比如,使用BLEU与TER相减后的值作为评价指标(BLEU和TER之间是减号)。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{基于检测点的评价} \subsubsection{基于检测点的评价}
\parinterval BLEU、TER等评价指标可以对译文的整体质量进行评估,但是缺乏对具体问题的细致评价。很多时候,研究人员需要知道系统是否能够处理特定的问题,而不是得到一个笼统的评价结果。基于监测点的方法正是基于此想法\upcite{shiwen1993automatic}。基于检测点的评价的优点在于对机器翻译系统给出一个总体评价的同时针对系统在各个具体问题上的翻译能力进行评估,方便比较不同翻译模型的性能。这种方法也被多次用于机器翻译比赛的质量评测。 \parinterval BLEU、TER等评价指标可以对译文的整体质量进行评估,但是缺乏对具体问题的细致评价。很多时候,研究人员需要知道系统是否能够处理特定的问题,而不是得到一个笼统的评价结果。基于监测点的方法正是基于此想法\upcite{shiwen1993automatic}。基于检测点的评价的优点在于对机器翻译系统给出一个总体评价的同时针对系统在各个具体问题上的翻译能力进行评估,方便比较不同翻译模型的性能。这种方法也被多次用于机器翻译比赛的质量评测。
...@@ -464,7 +526,10 @@ His house is on the south bank of the river. ...@@ -464,7 +526,10 @@ His house is on the south bank of the river.
\parinterval 基于检测点的评价方法的意义在于,它并不是简单给出一个分数,而是帮助系统研发人员定位问题。因此这类方法更多的使用在对机器翻译的结果进行分析上,是对BLEU等整体评价指标的一种很好的补充。 \parinterval 基于检测点的评价方法的意义在于,它并不是简单给出一个分数,而是帮助系统研发人员定位问题。因此这类方法更多的使用在对机器翻译的结果进行分析上,是对BLEU等整体评价指标的一种很好的补充。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{机器翻译应用} \section{机器翻译应用}
...@@ -482,8 +547,8 @@ His house is on the south bank of the river. ...@@ -482,8 +547,8 @@ His house is on the south bank of the river.
\parinterval 随着互联网的普及,人们可以通过互联网接触到大量境外影视作品。由于人们可能没有相应的外语能力,通常需要专业人员对字幕进行翻译(如图 \parinterval 随着互联网的普及,人们可以通过互联网接触到大量境外影视作品。由于人们可能没有相应的外语能力,通常需要专业人员对字幕进行翻译(如图
\ref{fig:film-subtitles})。因此,这些境外视频的传播受限于字幕翻译的速度和准确度。现在的一些视频网站在使用语音识别为视频生成源语字幕的同时,通过机器翻译技术为各种语言的受众提供质量尚可的目标语言字幕,这种方式为人们提供了极大的便利。 \ref{fig:film-subtitles})。因此,这些境外视频的传播受限于字幕翻译的速度和准确度。现在的一些视频网站在使用语音识别为视频生成源语字幕的同时,通过机器翻译技术为各种语言的受众提供质量尚可的目标语言字幕,这种方式为人们提供了极大的便利。
%---------------------------------------------- %----------------------------------------------
% 图1.13
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\includegraphics[scale=1.2]{./Chapter1/Figures/figure-film-subtitles.jpg} \includegraphics[scale=1.2]{./Chapter1/Figures/figure-film-subtitles.jpg}
...@@ -520,22 +585,32 @@ His house is on the south bank of the river. ...@@ -520,22 +585,32 @@ His house is on the south bank of the river.
\parinterval 翻译结果后编辑是指在机器翻译的结果之上,通过少量的人工编辑来进一步完善机器译文。在传统的人工翻译过程中,翻译人员完全依靠人工的方式进行翻译,这虽然保证了翻译质量,但是时间成本高。相对应的,机器翻译具有速度快和成本低的优势。在一些领域,目前的机器翻译质量已经可以很大程度上减小翻译人员的工作量,翻译人员可以在机器翻译的辅助下,花费相对较小的代价来完成翻译。 \parinterval 翻译结果后编辑是指在机器翻译的结果之上,通过少量的人工编辑来进一步完善机器译文。在传统的人工翻译过程中,翻译人员完全依靠人工的方式进行翻译,这虽然保证了翻译质量,但是时间成本高。相对应的,机器翻译具有速度快和成本低的优势。在一些领域,目前的机器翻译质量已经可以很大程度上减小翻译人员的工作量,翻译人员可以在机器翻译的辅助下,花费相对较小的代价来完成翻译。
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{开源项目与评测} \section{开源项目与评测}
\parinterval 从实践的角度,机器翻译的发展主要可以归功于两方面的推动作用:开源系统和评测。开源系统通过代码共享的方式使得最新的研究成果可以快速传播,同时实验结果可以复现。而评测比赛,使得各个研究组织的成果可以进行科学的对比,共同推动机器翻译的发展与进步。此外,开源项目也促进了不同团队之间的协作,让研究人员在同一个平台上集中力量攻关。 \parinterval 从实践的角度,机器翻译的发展主要可以归功于两方面的推动作用:开源系统和评测。开源系统通过代码共享的方式使得最新的研究成果可以快速传播,同时实验结果可以复现。而评测比赛,使得各个研究组织的成果可以进行科学的对比,共同推动机器翻译的发展与进步。此外,开源项目也促进了不同团队之间的协作,让研究人员在同一个平台上集中力量攻关。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{开源机器翻译系统} \subsection{开源机器翻译系统}
下面列举一些优秀的开源机器翻译系统: 下面列举一些优秀的开源机器翻译系统:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{统计机器翻译开源系统} \subsubsection{统计机器翻译开源系统}
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item NiuTrans.SMT:NiuTrans\upcite{Tong2012NiuTrans}是由东北大学自然语言处理实验室自主研发的统计机器翻译系统,该系统可支持基于短语的模型、基于层次短语的模型以及基于句法的模型。由于使用C++ 语言开发,所以该系统运行时间快,所占存储空间少。系统中内嵌有$n$-gram语言模型,故无需使用其他的系统即可对完成语言建模。网址:\url{http://opensource.niutrans.com/smt/index.html} \item NiuTrans.SMT:NiuTrans\upcite{Tong2012NiuTrans}是由东北大学自然语言处理实验室自主研发的统计机器翻译系统,该系统可支持基于短语的模型、基于层次短语的模型以及基于句法的模型。由于使用C++ 语言开发,所以该系统运行时间快,所占存储空间少。系统中内嵌有$n$-gram语言模型,故无需使用其他的系统即可对完成语言建模。网址:\url{http://opensource.niutrans.com/smt/index.html}
\vspace{0.5em} \vspace{0.5em}
\item Moses:Moses\upcite{Koehn2007Moses}是统计机器翻译时代最著名的系统之一,(主要)由爱丁堡大学的机器翻译团队开发。最新的Moses系统支持很多的功能,例如,它既支持基于短语的模型,也支持基于句法的模型。Moses 提供因子化翻译模型(Factored Translation Model),因此该模型可以很容易地对不同层次的信息进行建模。此外,它允许将混淆网络和字格作为输入,可缓解系统的1-best输出中的错误。Moses还提供了很多有用的脚本和工具,被机器翻译研究者广泛使用。网址:\url{http://www.statmt.org/moses/} \item Moses:Moses\upcite{Koehn2007Moses}是统计机器翻译时代最著名的系统之一,(主要)由爱丁堡大学的机器翻译团队开发。最新的Moses系统支持很多的功能,例如,它既支持基于短语的模型,也支持基于句法的模型。Moses 提供因子化翻译模型(Factored Translation Model),因此该模型可以很容易地对不同层次的信息进行建模。此外,它允许将混淆网络和字格作为输入,可缓解系统的1-best输出中的错误。Moses还提供了很多有用的脚本和工具,被机器翻译研究者广泛使用。网址:\url{http://www.statmt.org/moses/}
...@@ -557,14 +632,17 @@ His house is on the south bank of the river. ...@@ -557,14 +632,17 @@ His house is on the south bank of the river.
\item GIZA++:GIZA++\upcite{och2003systematic}是Franz Och研发的用于训练IBM模型1-5和HMM单词对齐模型的工具包。在早期,GIZA++是所有统计机器翻译系统中词对齐的标配工具。网址:\url{https://github.com/moses-smt/giza-pp} \item GIZA++:GIZA++\upcite{och2003systematic}是Franz Och研发的用于训练IBM模型1-5和HMM单词对齐模型的工具包。在早期,GIZA++是所有统计机器翻译系统中词对齐的标配工具。网址:\url{https://github.com/moses-smt/giza-pp}
\vspace{0.5em} \vspace{0.5em}
\item FastAlign:FastAlign\upcite{dyer2013a}是一个快速,无监督的词对齐工具,由卡内基梅隆大学开发。网址:\url{https://github.com/clab/fast\_align} \item FastAlign:FastAlign\upcite{dyer2013a}是一个快速,无监督的词对齐工具,由卡内基梅隆大学开发。网址:\url{https://github.com/clab/fast\_align}
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\subsubsection{神经机器翻译开源系统} \subsubsection{神经机器翻译开源系统}
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item GroundHog:GroundHog\upcite{bahdanau2014neural}基于Theano\upcite{al2016theano}框架,由蒙特利尔大学LISA 实验室使用Python语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂的循环神经网络模型。它提供了包括LSTM在内的多种模型。Bahdanau等人在此框架上又编写了GroundHog神经机器翻译系统。该系统也作为了很多论文的基线系统。网址:\url{https://github.com/lisa-groundhog/GroundHog} \item GroundHog:GroundHog\upcite{bahdanau2014neural}基于Theano\upcite{al2016theano}框架,由蒙特利尔大学LISA 实验室使用Python语言编写的一个框架,旨在提供灵活而高效的方式来实现复杂的循环神经网络模型。它提供了包括LSTM在内的多种模型。Bahdanau等人在此框架上又编写了GroundHog神经机器翻译系统。该系统也作为了很多论文的基线系统。网址:\url{https://github.com/lisa-groundhog/GroundHog}
\vspace{0.5em} \vspace{0.5em}
\item Nematus:Nematus\upcite{DBLP:journals/corr/SennrichFCBHHJL17}是英国爱丁堡大学开发的,基于Theano框架的神经机器翻译系统。该系统使用GRU作为隐层单元,支持多层网络。Nematus 编码端有正向和反向的编码方式,可以同时提取源语句子中的上下文信息。该系统的一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。网址:\url{https://github.com/EdinburghNLP/nematus} \item Nematus:Nematus\upcite{DBLP:journals/corr/SennrichFCBHHJL17}是英国爱丁堡大学开发的,基于Theano框架的神经机器翻译系统。该系统使用GRU作为隐层单元,支持多层网络。Nematus 编码端有正向和反向的编码方式,可以同时提取源语句子中的上下文信息。该系统的一个优点是,它可以支持输入端有多个特征的输入(例如词的词性等)。网址:\url{https://github.com/EdinburghNLP/nematus}
...@@ -592,15 +670,20 @@ His house is on the south bank of the river. ...@@ -592,15 +670,20 @@ His house is on the south bank of the river.
\item OpenSeq2Seq:由NVIDIA团队开发的\upcite{DBLP:journals/corr/abs-1805-10387}基于Tensorflow的模块化架构,用于序列到序列的模型,允许从可用组件中组装新模型,支持混合精度训练,利用NVIDIA Volta Turing GPU中的Tensor核心,基于Horovod的快速分布式训练,支持多GPU,多节点多模式。网址:\url{https://nvidia.github.io/OpenSeq2Seq/html/index.html} \item OpenSeq2Seq:由NVIDIA团队开发的\upcite{DBLP:journals/corr/abs-1805-10387}基于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:由勒芒大学语言实验室发布的基于序列到序列框架的神经网络翻译系统\upcite{nmtpy2017},Nmtpytorch的核心部分依赖于Numpy,Pytorch和tqdm。其允许训练各种端到端神经体系结构,包括但不限于神经机器翻译,图像字幕和自动语音识别系统。网址:\url{https://github.com/lium-lst/nmtpytorch} \item NMTPyTorch:由勒芒大学语言实验室发布的基于序列到序列框架的神经网络翻译系统\upcite{nmtpy2017},Nmtpytorch的核心部分依赖于Numpy,Pytorch和tqdm。其允许训练各种端到端神经体系结构,包括但不限于神经机器翻译,图像字幕和自动语音识别系统。网址:\url{https://github.com/lium-lst/nmtpytorch}
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{常用数据集及公开评测任务} \subsection{常用数据集及公开评测任务}
\parinterval 机器翻译相关评测主要有两种组织形式,一种是由政府及国家相关机构组织,权威性强。如由美国国家标准技术研究所组织的NIST评测、日本国家科学咨询系统中心主办的NACSIS Test Collections for IR(NTCIR)PatentMT、日本科学振兴机构(Japan Science and Technology Agency,简称JST)等组织联合举办的Workshop on Asian Translation(WAT)以及国内由中文信息学会主办的全国机器翻译大会(China Conference on Machine Translation,简称CCMT);另一种是由相关学术机构组织,具有领域针对性的特点,如倾向新闻领域的Workshop on Statistical Machine Translation(WMT)以及面向口语的International Workshop on Spoken Language Translation(IWSLT)。下面将针对上述评测进行简要介绍。 \parinterval 机器翻译相关评测主要有两种组织形式,一种是由政府及国家相关机构组织,权威性强。如由美国国家标准技术研究所组织的NIST评测、日本国家科学咨询系统中心主办的NACSIS Test Collections for IR(NTCIR)PatentMT、日本科学振兴机构(Japan Science and Technology Agency,简称JST)等组织联合举办的Workshop on Asian Translation(WAT)以及国内由中文信息学会主办的全国机器翻译大会(China Conference on Machine Translation,简称CCMT);另一种是由相关学术机构组织,具有领域针对性的特点,如倾向新闻领域的Workshop on Statistical Machine Translation(WMT)以及面向口语的International Workshop on Spoken Language Translation(IWSLT)。下面将针对上述评测进行简要介绍。
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item CCMT(全国机器翻译大会),前身为CWMT(全国机器翻译研讨会)是国内机器翻译领域的旗舰会议,自2005年起已经组织多次机器翻译评测,对国内机器翻译相关技术的发展产生了深远影响。该评测主要针对汉语、英语以及国内的少数民族语言(蒙古语、藏语、维吾尔语等)进行评测,领域包括新闻、口语、政府文件等,不同语言方向对应的领域也有所不同。评价方式不同届略有不同,主要采用自动评价的方式,自CWMT 2013起则针对某些领域增设人工评价。自动评价的指标一般包括BLEU-SBP、BLEU-NIST、TER、METEOR、NIST、GTM、mWER、mPER 以及ICT 等,其中以BLEU-SBP 为主,汉语为目标语的翻译采用基于字符的评价方式,面向英语的翻译基于词进行评价。每年该评测吸引国内外近数十家企业及科研机构参赛,业内认可度极高。关于CCMT的更多信息可参考官网:\url{http://www.ai-ia.ac.cn/cwmt2015/evaluation.html} (链接为CWMT 2015)。 \item CCMT(全国机器翻译大会),前身为CWMT(全国机器翻译研讨会)是国内机器翻译领域的旗舰会议,自2005年起已经组织多次机器翻译评测,对国内机器翻译相关技术的发展产生了深远影响。该评测主要针对汉语、英语以及国内的少数民族语言(蒙古语、藏语、维吾尔语等)进行评测,领域包括新闻、口语、政府文件等,不同语言方向对应的领域也有所不同。评价方式不同届略有不同,主要采用自动评价的方式,自CWMT 2013起则针对某些领域增设人工评价。自动评价的指标一般包括BLEU-SBP、BLEU-NIST、TER、METEOR、NIST、GTM、mWER、mPER 以及ICT 等,其中以BLEU-SBP 为主,汉语为目标语的翻译采用基于字符的评价方式,面向英语的翻译基于词进行评价。每年该评测吸引国内外近数十家企业及科研机构参赛,业内认可度极高。关于CCMT的更多信息可参考官网:\url{http://www.ai-ia.ac.cn/cwmt2015/evaluation.html} (链接为CWMT 2015)。
\vspace{0.5em} \vspace{0.5em}
\item WMT由Special Interest Group for Machine Translation(SIGMT)主办,会议自2006年起每年召开一次,是一个涉及机器翻译多种任务的综合性会议,包括多领域翻译评测任务、质量评价任务以及其他与机器翻译的相关任务(如文档对齐评测等)。现在WMT已经成为机器翻译领域的旗舰评测任务,很多研究工作都以WMT任务作为基准。WMT评测涉及的语言范围较广,包括英语、德语、芬兰语、捷克语、罗马尼亚语等十多种语言,翻译方向一般以英语为核心,探索英语与其他语言之间的翻译性能,领域包括新闻、信息技术、生物医学。最近,也增加了无指导机器翻译等热门问题。WMT在评价方面类似于CCMT,也采用人工评价与自动评价相结合的方式,自动评价的指标一般为BLEU、TER 等。此外,WMT公开了所有评测数据,因此也经常被机器翻译相关人员所使用。更多WMT的机器翻译评测相关信息可参考官网:\url{http://www.sigmt.org/} \item WMT由Special Interest Group for Machine Translation(SIGMT)主办,会议自2006年起每年召开一次,是一个涉及机器翻译多种任务的综合性会议,包括多领域翻译评测任务、质量评价任务以及其他与机器翻译的相关任务(如文档对齐评测等)。现在WMT已经成为机器翻译领域的旗舰评测任务,很多研究工作都以WMT任务作为基准。WMT评测涉及的语言范围较广,包括英语、德语、芬兰语、捷克语、罗马尼亚语等十多种语言,翻译方向一般以英语为核心,探索英语与其他语言之间的翻译性能,领域包括新闻、信息技术、生物医学。最近,也增加了无指导机器翻译等热门问题。WMT在评价方面类似于CCMT,也采用人工评价与自动评价相结合的方式,自动评价的指标一般为BLEU、TER 等。此外,WMT公开了所有评测数据,因此也经常被机器翻译相关人员所使用。更多WMT的机器翻译评测相关信息可参考官网:\url{http://www.sigmt.org/}
...@@ -612,14 +695,17 @@ His house is on the south bank of the river. ...@@ -612,14 +695,17 @@ His house is on the south bank of the river.
\item 日本举办的机器翻译评测WAT是亚洲范围内的重要评测之一,由日本科学振兴机构(JST)、情报通信研究机构(NICT)等多家机构共同组织,旨在为亚洲各国之间交流融合提供便宜之处。语言方向主要包括亚洲主流语言(汉语、韩语、印地语等)以及英语对日语的翻译,领域丰富多样,包括学术论文、专利、新闻、食谱等。评价方式包括自动评价(BLEU、RIBES以及AMFM 等)以及人工评价,其特点在于对于测试语料以段落为单位进行评价,考察其上下文关联的翻译效果。更多WAT的机器翻译评测相关信息可参考官网:\url{http://lotus.kuee.kyoto-u.ac.jp/WAT/} \item 日本举办的机器翻译评测WAT是亚洲范围内的重要评测之一,由日本科学振兴机构(JST)、情报通信研究机构(NICT)等多家机构共同组织,旨在为亚洲各国之间交流融合提供便宜之处。语言方向主要包括亚洲主流语言(汉语、韩语、印地语等)以及英语对日语的翻译,领域丰富多样,包括学术论文、专利、新闻、食谱等。评价方式包括自动评价(BLEU、RIBES以及AMFM 等)以及人工评价,其特点在于对于测试语料以段落为单位进行评价,考察其上下文关联的翻译效果。更多WAT的机器翻译评测相关信息可参考官网:\url{http://lotus.kuee.kyoto-u.ac.jp/WAT/}
\vspace{0.5em} \vspace{0.5em}
\item NTCIR计划是由日本国家科学咨询系统中心策划主办的,旨在建立一个用在自然语言处理以及信息检索相关任务上的日文标准测试集。在NTCIR-9的和NTCIR-10中开设的Patent Machine Translation(PatentMT)任务主要针对专利领域进行翻译测试,其目的在于促进机器翻译在专利领域的发展和应用。在NTCIR-9中,评测方式采取人工评价与自动评价相结合,以人工评价为主导。人工评价主要根据准确度和流畅度进行评估,自动评价采用BLEU、NIST等方式进行。NTCIR-10评价方式在此基础上增加了专利审查评估、时间评估以及多语种评估,分别考察机器翻译系统在专利领域翻译的实用性、耗时情况以及不同语种的翻译效果等。更多NTCIR评测相关信息可参考官网:\url{http://research.nii.ac.jp/ntcir/index-en.html} \item NTCIR计划是由日本国家科学咨询系统中心策划主办的,旨在建立一个用在自然语言处理以及信息检索相关任务上的日文标准测试集。在NTCIR-9的和NTCIR-10中开设的Patent Machine Translation(PatentMT)任务主要针对专利领域进行翻译测试,其目的在于促进机器翻译在专利领域的发展和应用。在NTCIR-9中,评测方式采取人工评价与自动评价相结合,以人工评价为主导。人工评价主要根据准确度和流畅度进行评估,自动评价采用BLEU、NIST等方式进行。NTCIR-10评价方式在此基础上增加了专利审查评估、时间评估以及多语种评估,分别考察机器翻译系统在专利领域翻译的实用性、耗时情况以及不同语种的翻译效果等。更多NTCIR评测相关信息可参考官网:\url{http://research.nii.ac.jp/ntcir/index-en.html}
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 以上评测数据大多可以从评测网站上下载,此外部分数据也可以从LDC(Lingu-istic Data Consortium)上申请,网址为\url{https://www.ldc.upenn.edu/}。ELRA(Euro-pean Language Resources Association)上也有一些免费的语料库供研究使用,其官网为\url{http://www.elra.info/}。更多机器翻译的语料信息可参看附录\ref{appendix-A} \parinterval 以上评测数据大多可以从评测网站上下载,此外部分数据也可以从LDC(Lingu-istic Data Consortium)上申请,网址为\url{https://www.ldc.upenn.edu/}。ELRA(Euro-pean Language Resources Association)上也有一些免费的语料库供研究使用,其官网为\url{http://www.elra.info/}。更多机器翻译的语料信息可参看附录\ref{appendix-A}
\parinterval 从机器翻译发展的角度看,这些评测任务给相关研究提供了基准数据集,使得不同的系统都可以在同一个环境下进行比较和分析,进而建立了机器翻译研究所需的实验基础。此外,公开评测也使得研究者可以第一时间了解机器翻译研究的最新成果,比如,有多篇ACL会议最佳论文的灵感就来自当年参加机器翻译评测任务的系统。 \parinterval 从机器翻译发展的角度看,这些评测任务给相关研究提供了基准数据集,使得不同的系统都可以在同一个环境下进行比较和分析,进而建立了机器翻译研究所需的实验基础。此外,公开评测也使得研究者可以第一时间了解机器翻译研究的最新成果,比如,有多篇ACL会议最佳论文的灵感就来自当年参加机器翻译评测任务的系统。
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{推荐学习资源} \section{推荐学习资源}
...@@ -641,8 +727,8 @@ His house is on the south bank of the river. ...@@ -641,8 +727,8 @@ His house is on the south bank of the river.
\parinterval \url{http://www.statmt.org}是一个介绍机器翻译研究的网站,该网站包含了对统计机器翻译研究的一些介绍资料,一些自然语言处理的会议,常用工具以及语料库。\url{http://www.mt-archive.info}\url{https://www.aclweb.org/anthology}\\网站上有许多介绍机器翻译和自然语言处理的论文。通过这个网站可以了解到自然语言处理领域的一些重要的期刊和会议。比如,一些与机器翻译相关的主要会议有: \parinterval \url{http://www.statmt.org}是一个介绍机器翻译研究的网站,该网站包含了对统计机器翻译研究的一些介绍资料,一些自然语言处理的会议,常用工具以及语料库。\url{http://www.mt-archive.info}\url{https://www.aclweb.org/anthology}\\网站上有许多介绍机器翻译和自然语言处理的论文。通过这个网站可以了解到自然语言处理领域的一些重要的期刊和会议。比如,一些与机器翻译相关的主要会议有:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item ACL,全称Annual Meeting of the Association for Computational Linguistics,是自然语言处理领域最高级别的会议。每年举办一次,主题涵盖计算语言学的所有方向。 \item ACL,全称Annual Meeting of the Association for Computational Linguistics,是自然语言处理领域最高级别的会议。每年举办一次,主题涵盖计算语言学的所有方向。
\vspace{0.5em} \vspace{0.5em}
\item NAACL,全称Annual Meeting of the Association for Computational Linguistics,为ACL北美分会,在自然语言处理领域也属于顶级会议,每年会选择一个北美城市召开会议。 \item NAACL,全称Annual Meeting of the Association for Computational Linguistics,为ACL北美分会,在自然语言处理领域也属于顶级会议,每年会选择一个北美城市召开会议。
...@@ -666,7 +752,6 @@ His house is on the south bank of the river. ...@@ -666,7 +752,6 @@ His house is on the south bank of the river.
\item CCMT,全称The China Conference on Machine Translation,中国机器翻译研讨会,由中国中文信息学会主办,旨在为国内外机器翻译界同行提供一个平台,促进中国机器翻译事业。CCMT不仅是国内机器翻译领域最具影响力、最权威的学术和评测活动,而且也代表着汉语与民族语言翻译技术的最高水准,对民族语言技术发展具有重要意义。 \item CCMT,全称The China Conference on Machine Translation,中国机器翻译研讨会,由中国中文信息学会主办,旨在为国内外机器翻译界同行提供一个平台,促进中国机器翻译事业。CCMT不仅是国内机器翻译领域最具影响力、最权威的学术和评测活动,而且也代表着汉语与民族语言翻译技术的最高水准,对民族语言技术发展具有重要意义。
\vspace{0.5em} \vspace{0.5em}
\end{itemize} \end{itemize}
\vspace{0.5em}
除了会议之外,《中文信息学报》、《Computational Linguistics》、《Machine Translation》、《Transactions of the Association for Computational Linguistics》、《IEEE/ACM Transactions on Audio, Speech, and Language Processing》、《ACM Transactions on Asian and Low Resource Language Information Processing》、《Natural Language Engineering》等期刊也发表了许多与机器翻译相关的重要论文。 除了会议之外,《中文信息学报》、《Computational Linguistics》、《Machine Translation》、《Transactions of the Association for Computational Linguistics》、《IEEE/ACM Transactions on Audio, Speech, and Language Processing》、《ACM Transactions on Asian and Low Resource Language Information Processing》、《Natural Language Engineering》等期刊也发表了许多与机器翻译相关的重要论文。
......
% !Mode:: "TeX:UTF-8" % !Mode:: "TeX:UTF-8"
% !TEX encoding = UTF-8 Unicode % !TEX encoding = UTF-8 Unicode
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% CHAPTER 2 % CONFIGURATIONS
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\renewcommand\figurename{}%将figure改为图 \renewcommand\figurename{}%将figure改为图
\renewcommand\tablename{}%将figure改为图 \renewcommand\tablename{}%将figure改为图
%\renewcommand\arraystretch{1.5}%将表格高度调整为1.5倍 %\renewcommand\arraystretch{1.5}%将表格高度调整为1.5倍
\chapterimage{fig-NEU-3.jpg} % Chapter heading image \chapterimage{fig-NEU-3.jpg} % Chapter heading image
%----------------------------------------------------------------------------------------
% CHAPTER 2
%----------------------------------------------------------------------------------------
\chapter{词法、语法及统计建模基础} \chapter{词法、语法及统计建模基础}
\parinterval 机器翻译并非是一个孤立的系统,它依赖于很多模块,并且需要很多学科知识的融合。现在的机器翻译系统大多使用统计模型对翻译问题进行建模,同时也会用到一些自然语言处理工具来对不同语言的文字进行分析。因此,在正式开始机器翻译内容的介绍之前,本章将会对相关的基础知识进行概述,包括:概率论与统计建模基础、语言分析、语言建模等。 \parinterval 机器翻译并非是一个孤立的系统,它依赖于很多模块,并且需要很多学科知识的融合。现在的机器翻译系统大多使用统计模型对翻译问题进行建模,同时也会用到一些自然语言处理工具来对不同语言的文字进行分析。因此,在正式开始机器翻译内容的介绍之前,本章将会对相关的基础知识进行概述,包括:概率论与统计建模基础、语言分析、语言建模等。
...@@ -20,13 +24,15 @@ ...@@ -20,13 +24,15 @@
\parinterval 语言建模是机器翻译中最常用的一种技术,它主要用于句子的生成和流畅度评价。本章会以传统统计语言模型为例,对语言建模的相关概念进行介绍。但是,这里并不深入探讨语言模型技术,在后面的章节中还会有单独的内容对神经网络语言模型等前沿技术进行讨论。 \parinterval 语言建模是机器翻译中最常用的一种技术,它主要用于句子的生成和流畅度评价。本章会以传统统计语言模型为例,对语言建模的相关概念进行介绍。但是,这里并不深入探讨语言模型技术,在后面的章节中还会有单独的内容对神经网络语言模型等前沿技术进行讨论。
%--问题概述----------------------------------------- %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\section{问题概述 } \section{问题概述 }
\parinterval 很多时候机器翻译系统被看作是孤立的``黑盒''系统(图 \ref {fig:2.1-1} (a))。可以将一段文本作为输入送入机器翻译系统,之后得到翻译好的译文输出。但是真实的机器翻译系统要复杂的多。因为系统看到的输入和输出的实际上只是一些符号串,这些符号并没有任何其他意义,因此需要进一步对这些符号串进行处理才能更好的使用它们,比如,需要定义翻译中最基本的单元是什么?符号串是否还有结构信息?如何用数学工具刻画这些基本单元和结构? \parinterval 很多时候机器翻译系统被看作是孤立的``黑盒''系统(图 \ref {fig:2.1-1} (a))。可以将一段文本作为输入送入机器翻译系统,之后得到翻译好的译文输出。但是真实的机器翻译系统要复杂的多。因为系统看到的输入和输出的实际上只是一些符号串,这些符号并没有任何其他意义,因此需要进一步对这些符号串进行处理才能更好的使用它们,比如,需要定义翻译中最基本的单元是什么?符号串是否还有结构信息?如何用数学工具刻画这些基本单元和结构?
%---------------------------------------------- %----------------------------------------------
% 图2.1
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\subfigure[机器翻译系统被看作一个黑盒] {\input{./Chapter2/Figures/figure-MT-system-as-a-black-box} } \subfigure[机器翻译系统被看作一个黑盒] {\input{./Chapter2/Figures/figure-MT-system-as-a-black-box} }
...@@ -37,7 +43,6 @@ ...@@ -37,7 +43,6 @@
%------------------------------------------- %-------------------------------------------
%---------------------------------------------- %----------------------------------------------
% 图2.2
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-analysis-of-sentence-participle&syntactic} \input{./Chapter2/Figures/figure-analysis-of-sentence-participle&syntactic}
...@@ -48,13 +53,13 @@ ...@@ -48,13 +53,13 @@
\parinterval\ref{fig:2.1-1} (b)展示了一个机器翻译系统的输入和输出形式。可以看到,输入的中文字串``猫喜欢吃鱼''被加工成一个新的结构(图\ref {fig:2.1-2})。直觉上,这个结构有些奇怪,因为上面多了很多新的符号,而且还有一些线将不同符号进行连接。实际上这就是语言分析中对句子常用的结构表示 —— 短语结构树。从原始的词串转化为图\ref {fig:2.1-2} 的样子,有两个步骤: \parinterval\ref{fig:2.1-1} (b)展示了一个机器翻译系统的输入和输出形式。可以看到,输入的中文字串``猫喜欢吃鱼''被加工成一个新的结构(图\ref {fig:2.1-2})。直觉上,这个结构有些奇怪,因为上面多了很多新的符号,而且还有一些线将不同符号进行连接。实际上这就是语言分析中对句子常用的结构表示 —— 短语结构树。从原始的词串转化为图\ref {fig:2.1-2} 的样子,有两个步骤:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{分词}}\index{分词}(Segmentation)\index{Segmentation}:这个过程会把词串进行切分,切割成最小的单元。因为只有知道了什么是待处理字符串的最小单元,机器翻译系统才能对其进行表示、分析和生成。 \item {\small\bfnew{分词}}\index{分词}(Segmentation)\index{Segmentation}:这个过程会把词串进行切分,切割成最小的单元。因为只有知道了什么是待处理字符串的最小单元,机器翻译系统才能对其进行表示、分析和生成。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{句法分析}}\index{句法分析}(Parsing)\index{Parsing}:这个过程会对分词的结果进行进一步分析,得到句子的句法结构,这种结构是对句子的进一步抽象。比如,NP+VP就可以表示由名词短语(NP)和动词短语(VP)构成的主谓结构。利用这些信息,机器翻译可以更加准确的对语言的结构进行分析和生成。 \item {\small\bfnew{句法分析}}\index{句法分析}(Parsing)\index{Parsing}:这个过程会对分词的结果进行进一步分析,得到句子的句法结构,这种结构是对句子的进一步抽象。比如,NP+VP就可以表示由名词短语(NP)和动词短语(VP)构成的主谓结构。利用这些信息,机器翻译可以更加准确的对语言的结构进行分析和生成。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 类似的,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英文译文之后,还有一个额外的步骤来把部分英文单词的大小写恢复出来,比如,上例中句首单词Cats的首字母要大写。 \parinterval 类似的,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英文译文之后,还有一个额外的步骤来把部分英文单词的大小写恢复出来,比如,上例中句首单词Cats的首字母要大写。
...@@ -66,11 +71,19 @@ ...@@ -66,11 +71,19 @@
\parinterval 本章将会对上述问题及求解问题的方法进行介绍。首先,会用一个例子给出统计建模的基本思路,之后会应用这种方法进行中文分词、语言建模和句法分析。 \parinterval 本章将会对上述问题及求解问题的方法进行介绍。首先,会用一个例子给出统计建模的基本思路,之后会应用这种方法进行中文分词、语言建模和句法分析。
\vspace{-1em} \vspace{-1em}
%--概率论基础-----------------------------------------
%----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{概率论基础} \section{概率论基础}
\parinterval 为了便于后续内容的介绍,首先对本书中使用的概率和统计学概念进行说明。 \parinterval 为了便于后续内容的介绍,首先对本书中使用的概率和统计学概念进行说明。
%--随机变量和概率---------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{随机变量和概率} \subsection{随机变量和概率}
\parinterval 在自然界中,很多{\small\bfnew{事件}}\index{事件}(Event)\index{Event}是否会发生是不确定的。例如,明天会下雨、掷一枚硬币是正面朝上、扔一个骰子的点数是5$\cdots\cdots$这类事件可能会发生也可能不会发生。通过大量的重复试验,能发现其具有某种规律性的事件叫做{\small\sffamily\bfseries{随机事件}}\index{随机事件} \parinterval 在自然界中,很多{\small\bfnew{事件}}\index{事件}(Event)\index{Event}是否会发生是不确定的。例如,明天会下雨、掷一枚硬币是正面朝上、扔一个骰子的点数是5$\cdots\cdots$这类事件可能会发生也可能不会发生。通过大量的重复试验,能发现其具有某种规律性的事件叫做{\small\sffamily\bfseries{随机事件}}\index{随机事件}
...@@ -85,7 +98,8 @@ ...@@ -85,7 +98,8 @@
\parinterval 在实际问题中,往往需要得到随机变量的概率值。但是,真实的概率值可能是无法准确知道的,这时就需要对概率进行{\small\sffamily\bfseries{估计}}\index{估计},得到的结果是概率的{\small\sffamily\bfseries{估计值}}\index{估计值}(Estimate)\index{Estimate}。在概率论中,一个很简单的方法是利用相对频度作为概率的估计值。如果$\{x_1,x_2,\dots,x_n \}$是一个试验的样本空间,在相同情况下重复试验$N$次,观察到样本$x_i (1\leq{i}\leq{n})$的次数为$n (x_i )$,那么$x_i$在这$N$次试验中的相对频率是$\frac{n(x_i )}{N}$。当$N$越来越大时,相对概率也就越来越接近真实概率$\textrm{P}(x_i)$,即$\lim_{N \to \infty}\frac{n(x_i )}{N}=\textrm{P}(x_i)$。 实际上,很多概率模型都等同于相对频度估计,比如,对于一个服从多项式分布的变量的极大似然估计就可以用相对频度估计实现。 \parinterval 在实际问题中,往往需要得到随机变量的概率值。但是,真实的概率值可能是无法准确知道的,这时就需要对概率进行{\small\sffamily\bfseries{估计}}\index{估计},得到的结果是概率的{\small\sffamily\bfseries{估计值}}\index{估计值}(Estimate)\index{Estimate}。在概率论中,一个很简单的方法是利用相对频度作为概率的估计值。如果$\{x_1,x_2,\dots,x_n \}$是一个试验的样本空间,在相同情况下重复试验$N$次,观察到样本$x_i (1\leq{i}\leq{n})$的次数为$n (x_i )$,那么$x_i$在这$N$次试验中的相对频率是$\frac{n(x_i )}{N}$。当$N$越来越大时,相对概率也就越来越接近真实概率$\textrm{P}(x_i)$,即$\lim_{N \to \infty}\frac{n(x_i )}{N}=\textrm{P}(x_i)$。 实际上,很多概率模型都等同于相对频度估计,比如,对于一个服从多项式分布的变量的极大似然估计就可以用相对频度估计实现。
\parinterval 概率函数是用函数形式给出离散变量每个取值发生的概率,其实就是将变量的概率分布转化为数学表达形式。如果把$A$看做一个离散变量,$a$看做变量$A$的一个取值,那么$\textrm{P}(A)$被称作变量$A$的概率函数,$\textrm{P}(A=a)$被称作$A = a$的概率值,简记为$\textrm{P}(a)$。例如,在相同条件下掷一个骰子50次,用$A$表示投骰子出现的点数这个离散变量,$a_i$表示点数的取值,$\textrm{P}_i$表示$A=a_i$的概率值。下表为$A$的概率分布,给出了$A$的所有取值及其概率。 \parinterval 概率函数是用函数形式给出离散变量每个取值发生的概率,其实就是将变量的概率分布转化为数学表达形式。如果把$A$看做一个离散变量,$a$看做变量$A$的一个取值,那么$\textrm{P}(A)$被称作变量$A$的概率函数,$\textrm{P}(A=a)$被称作$A = a$的概率值,简记为$\textrm{P}(a)$。例如,在相同条件下掷一个骰子50次,用$A$表示投骰子出现的点数这个离散变量,$a_i$表示点数的取值,$\textrm{P}_i$表示$A=a_i$的概率值。下表为$A$的概率分布,给出了$A$的所有取值及其概率。
%表1--------------------------------------------------------------------
%--------------------------------------------------------------------
\begin{table}[htp] \begin{table}[htp]
\centering \centering
\caption{离散变量$A$的概率分布} \caption{离散变量$A$的概率分布}
...@@ -96,22 +110,18 @@ ...@@ -96,22 +110,18 @@
\end{tabular} \end{tabular}
\label{tab:2.2-1} \label{tab:2.2-1}
\end{table} \end{table}
%表1-------------------------------------------------------------------- %--------------------------------------------------------------------
\parinterval 除此之外,概率函数$\textrm{P}(\cdot)$还具有非负性、归一性等特点,非负性是指,所有的概率函数$\textrm{P}(\cdot)$都必须是大于等于0的数值,概率函数中不可能出现负数:$\forall{x},\textrm{P}{(x)}\geq{0}$。归一性,又称规范性,简单的说就是所有可能发生的事件的概率总和为1,即$\sum_{x}\textrm{P}{(x)}={1}$ \parinterval 除此之外,概率函数$\textrm{P}(\cdot)$还具有非负性、归一性等特点,非负性是指,所有的概率函数$\textrm{P}(\cdot)$都必须是大于等于0的数值,概率函数中不可能出现负数:$\forall{x},\textrm{P}{(x)}\geq{0}$。归一性,又称规范性,简单的说就是所有可能发生的事件的概率总和为1,即$\sum_{x}\textrm{P}{(x)}={1}$
\parinterval 对于离散变量$A$$\textrm{P}(A=a)$是个确定的值,可以表示事件$A=a$的可能性大小;而对于连续变量,求在某个定点处的概率是无意义的,只能求其落在某个取值区间内的概率。因此,用{\small\sffamily\bfseries{概率分布函数}}\index{概率分布函数}$F(x)${\small\sffamily\bfseries{概率密度函数}}\index{概率密度函数}$f(x)$来统一描述随机变量取值的分布情况。概率分布函数$F(x)$表示取值小于某个值的概率,是概率的累加(或积分)形式。假设$A$是一个随机变量,$a$是任意实数,将函数$F(a)=\textrm{P}\{A\leq a\}$$-\infty<a<\infty $定义为$A$的分布函数。通过分布函数,可以清晰地表示任何随机变量的概率。 \parinterval 对于离散变量$A$$\textrm{P}(A=a)$是个确定的值,可以表示事件$A=a$的可能性大小;而对于连续变量,求在某个定点处的概率是无意义的,只能求其落在某个取值区间内的概率。因此,用{\small\sffamily\bfseries{概率分布函数}}\index{概率分布函数}$F(x)${\small\sffamily\bfseries{概率密度函数}}\index{概率密度函数}$f(x)$来统一描述随机变量取值的分布情况。概率分布函数$F(x)$表示取值小于某个值的概率,是概率的累加(或积分)形式。假设$A$是一个随机变量,$a$是任意实数,将函数$F(a)=\textrm{P}\{A\leq a\}$$-\infty<a<\infty $定义为$A$的分布函数。通过分布函数,可以清晰地表示任何随机变量的概率。
\parinterval 概率密度函数反映了变量在某个区间内的概率变化快慢,概率密度函数的值是概率的变化率,该连续变量的概率也就是对概率密度函数求积分得到的结果。设$f(x) \geq 0$是连续变量$X$的概率密度函数,$X$的分布函数就可以用如下公式定义: \parinterval 概率密度函数反映了变量在某个区间内的概率变化快慢,概率密度函数的值是概率的变化率,该连续变量的概率也就是对概率密度函数求积分得到的结果。设$f(x) \geq 0$是连续变量$X$的概率密度函数,$X$的分布函数就可以用如下公式定义:
%----------------------------------------------
\begin{eqnarray} \begin{eqnarray}
F(X)=\int_{-\infty}^x f(x)dx F(X)=\int_{-\infty}^x f(x)dx
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
%---------------------------------------------- %----------------------------------------------
% 图2.3
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-Probability-density-function&Distribution-function} \input{./Chapter2/Figures/figure-Probability-density-function&Distribution-function}
...@@ -119,44 +129,47 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -119,44 +129,47 @@ F(X)=\int_{-\infty}^x f(x)dx
\label{fig:2.2-1} \label{fig:2.2-1}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{联合概率、条件概率和边缘概率} \subsection{联合概率、条件概率和边缘概率}
\parinterval {\small\sffamily\bfseries{联合概率}}\index{联合概率}(Joint Probability)\index{Joint Probability}是指多个事件同时发生,每个随机变量满足各自条件的概率,表示为$\textrm{P}(AB)${\small\sffamily\bfseries{条件概率}}\index{条件概率}(Conditional Probability)\index{Conditional Probability}是指$A$$B$为任意的两个事件,在事件$A$已出现的前提下,事件$B$出现的概率,使用$\textrm{P}(B \mid A)$表示。通常来说,$\textrm{P}(B \mid A) \neq \textrm{P}(B)$ \parinterval {\small\sffamily\bfseries{联合概率}}\index{联合概率}(Joint Probability)\index{Joint Probability}是指多个事件同时发生,每个随机变量满足各自条件的概率,表示为$\textrm{P}(AB)${\small\sffamily\bfseries{条件概率}}\index{条件概率}(Conditional Probability)\index{Conditional Probability}是指$A$$B$为任意的两个事件,在事件$A$已出现的前提下,事件$B$出现的概率,使用$\textrm{P}(B \mid A)$表示。通常来说,$\textrm{P}(B \mid A) \neq \textrm{P}(B)$
\parinterval 贝叶斯法则是条件概率计算时的重要依据,条件概率可以表示为 \parinterval 贝叶斯法则是条件概率计算时的重要依据,条件概率可以表示为
%----------------------------------------------
\begin{eqnarray} \begin{eqnarray}
\textrm{P}{(B|A)} & = & \frac{\textrm{P}(A\cap{B})}{\textrm{P}(A)} \nonumber \\ \textrm{P}{(B|A)} & = & \frac{\textrm{P}(A\cap{B})}{\textrm{P}(A)} \nonumber \\
& = & \frac{\textrm{P}(A)\textrm{P}(B|A)}{\textrm{P}(A)} \nonumber \\ & = & \frac{\textrm{P}(A)\textrm{P}(B|A)}{\textrm{P}(A)} \nonumber \\
& = & \frac{\textrm{P}(B)\textrm{P}(A|B)}{\textrm{P}(A)} & = & \frac{\textrm{P}(B)\textrm{P}(A|B)}{\textrm{P}(A)}
\label{eq:2.1-1} \label{eq:2.1-1}
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
\parinterval {\small\sffamily\bfseries{边缘概率}}\index{边缘概率}(marginal probability)\index{marginal probability}是和联合概率对应的,它指的是$\textrm{P}(X=a)$$\textrm{P}(Y=b)$,即仅与单个随机变量有关的概率称为边缘概率。对于离散随机变量$X$$Y$,如果知道$\textrm{P}(X,Y)$,则边缘概率$\textrm{P}(X)$可以通过求和的方式得到。对于$\forall x \in X $,有 \parinterval {\small\sffamily\bfseries{边缘概率}}\index{边缘概率}(marginal probability)\index{marginal probability}是和联合概率对应的,它指的是$\textrm{P}(X=a)$$\textrm{P}(Y=b)$,即仅与单个随机变量有关的概率称为边缘概率。对于离散随机变量$X$$Y$,如果知道$\textrm{P}(X,Y)$,则边缘概率$\textrm{P}(X)$可以通过求和的方式得到。对于$\forall x \in X $,有
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(X=x)=\sum_{y} \textrm{P}(X=x,Y=y) \textrm{P}(X=x)=\sum_{y} \textrm{P}(X=x,Y=y)
\label{eq:2.2-2} \label{eq:2.2-2}
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
\parinterval 对于连续变量,边缘概率$\textrm{P}(X)$需要通过积分得到,如下式所示 \parinterval 对于连续变量,边缘概率$\textrm{P}(X)$需要通过积分得到,如下式所示
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(X)=\int \textrm{P}(x,y)dy \textrm{P}(X)=\int \textrm{P}(x,y)dy
\label{eq:2.3-3} \label{eq:2.3-3}
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
\parinterval 为了更好的区分条件概率、边缘概率和联合概率,这里用一个图形面积的计算来举例说明。如图\ref{fig:2.2-2}所示,矩形$A$代表事件$X$发生所对应的所有可能状态,矩形$B$代表事件$Y$发生所对应的所有可能状态,矩形$C$代表$A$$B$的交集,则 \parinterval 为了更好的区分条件概率、边缘概率和联合概率,这里用一个图形面积的计算来举例说明。如图\ref{fig:2.2-2}所示,矩形$A$代表事件$X$发生所对应的所有可能状态,矩形$B$代表事件$Y$发生所对应的所有可能状态,矩形$C$代表$A$$B$的交集,则
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 边缘概率:矩形$A$或者矩形$B$的面积; \item 边缘概率:矩形$A$或者矩形$B$的面积;
\vspace{0.5em}
\item 联合概率:矩形$C$的面积; \item 联合概率:矩形$C$的面积;
\vspace{0.5em}
\item 条件概率:联合概率/对应的边缘概率,如:$\textrm{P}(A \mid B)$=矩形$C$的面积/矩形B的面积。 \item 条件概率:联合概率/对应的边缘概率,如:$\textrm{P}(A \mid B)$=矩形$C$的面积/矩形B的面积。
\vspace{0.5em}
\end{itemize} \end{itemize}
%---------------------------------------------- %----------------------------------------------
% 图2.4
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-schematic-edge-probability&joint-probability} \input{./Chapter2/Figures/figure-schematic-edge-probability&joint-probability}
...@@ -165,7 +178,9 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -165,7 +178,9 @@ F(X)=\int_{-\infty}^x f(x)dx
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{链式法则} \subsection{链式法则}
...@@ -175,19 +190,16 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -175,19 +190,16 @@ F(X)=\int_{-\infty}^x f(x)dx
& = & \textrm{P}(a \mid b,c)\textrm{P}(b \mid c)\textrm{P}(c) & = & \textrm{P}(a \mid b,c)\textrm{P}(b \mid c)\textrm{P}(c)
\label{eq:2.2-4} \label{eq:2.2-4}
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
\parinterval 推广到$n$个事件,可以得到了链式法则的公式 \parinterval 推广到$n$个事件,可以得到了链式法则的公式
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(x_1,x_2,...,x_n)=\textrm{P}(x_1) \prod_{i=2}^n \textrm{P}(x_i \mid x_1,x_2,...,x_{i-1}) \textrm{P}(x_1,x_2,...,x_n)=\textrm{P}(x_1) \prod_{i=2}^n \textrm{P}(x_i \mid x_1,x_2,...,x_{i-1})
\label{eq:2.2-5} \label{eq:2.2-5}
\end{eqnarray} \end{eqnarray}
%----------------------------------------------
\parinterval 下面的例子有助于更好的理解链式法则,如图\ref{fig:2.2-3}所示,$A$$B$$C$$D$\\ $E$分别代表五个事件,其中,$A$只和$B$有关,$C$只和$B$$D$有关,$E$只和$C$有关,$B$$D$不依赖其他任何事件。则$\textrm{P}(A,B,C,D,E)$的表达式如下式: \parinterval 下面的例子有助于更好的理解链式法则,如图\ref{fig:2.2-3}所示,$A$$B$$C$$D$\\ $E$分别代表五个事件,其中,$A$只和$B$有关,$C$只和$B$$D$有关,$E$只和$C$有关,$B$$D$不依赖其他任何事件。则$\textrm{P}(A,B,C,D,E)$的表达式如下式:
%---------------------------------------------- %----------------------------------------------
% 图2.5
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-schematic-chain-rule} \input{./Chapter2/Figures/figure-schematic-chain-rule}
...@@ -196,6 +208,7 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -196,6 +208,7 @@ F(X)=\int_{-\infty}^x f(x)dx
\label{fig:2.2-3} \label{fig:2.2-3}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\begin{eqnarray} \begin{eqnarray}
& & \textrm{P}(A,B,C,D,E) \nonumber \\ & & \textrm{P}(A,B,C,D,E) \nonumber \\
&=&\textrm{P}(E \mid A,B,C,D) \cdot \textrm{P}(A,B,C,D) \nonumber \\ &=&\textrm{P}(E \mid A,B,C,D) \cdot \textrm{P}(A,B,C,D) \nonumber \\
...@@ -206,50 +219,51 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -206,50 +219,51 @@ F(X)=\int_{-\infty}^x f(x)dx
\end{eqnarray} \end{eqnarray}
\parinterval 根据图\ref {fig:2.2-3} 易知$E$只和$C$有关,所以$\textrm{P}(E \mid A,B,C,D)=\textrm{P}(E \mid C)$$D$不依赖于其他事件,所以$\textrm{P}(D \mid A,B,C)=\textrm{P}(D)$$C$只和$B$$D$有关,所以$\textrm{P}(C \mid A,B)=\textrm{P}(C \mid B)$$B$不依赖于其他事件,所以$\textrm{P}(B \mid A)=\textrm{P}(B)$。最终化简可得: \parinterval 根据图\ref {fig:2.2-3} 易知$E$只和$C$有关,所以$\textrm{P}(E \mid A,B,C,D)=\textrm{P}(E \mid C)$$D$不依赖于其他事件,所以$\textrm{P}(D \mid A,B,C)=\textrm{P}(D)$$C$只和$B$$D$有关,所以$\textrm{P}(C \mid A,B)=\textrm{P}(C \mid B)$$B$不依赖于其他事件,所以$\textrm{P}(B \mid A)=\textrm{P}(B)$。最终化简可得:
%---------------------------------------------
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(A,B,C,D,E)=\textrm{P}(E \mid C) \cdot \textrm{P}(D) \cdot \textrm{P}(C \mid B) \cdot \textrm{P}(B) \textrm{P}(A,B,C,D,E)=\textrm{P}(E \mid C) \cdot \textrm{P}(D) \cdot \textrm{P}(C \mid B) \cdot \textrm{P}(B)
\label{eq:2.2-7} \label{eq:2.2-7}
\end{eqnarray} \end{eqnarray}
%---------------------------------------------
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{贝叶斯法则} \subsection{贝叶斯法则}
\parinterval 首先介绍一下全概率公式:{\small\bfnew{全概率公式}}\index{全概率公式}(Law of Total Probability)\index{Law of Total Probability}是概率论中重要的公式,它可以将一个复杂事件发生的概率分解成不同情况的小事件发生概率的和。这里先介绍一个概念——划分。若集合$S$的一个划分事件为$\{B_1,...,B_n\}$是指它们满足$\bigcup_{i=1}^n B_i=S \textrm{}B_iB_j=\varnothing , i,j=1,...,n,i\neq j$。设$\{B_1,...,B_n\}$$S$的一个划分,则事件$A$的全概率公式可以被描述为: \parinterval 首先介绍一下全概率公式:{\small\bfnew{全概率公式}}\index{全概率公式}(Law of Total Probability)\index{Law of Total Probability}是概率论中重要的公式,它可以将一个复杂事件发生的概率分解成不同情况的小事件发生概率的和。这里先介绍一个概念——划分。若集合$S$的一个划分事件为$\{B_1,...,B_n\}$是指它们满足$\bigcup_{i=1}^n B_i=S \textrm{}B_iB_j=\varnothing , i,j=1,...,n,i\neq j$。设$\{B_1,...,B_n\}$$S$的一个划分,则事件$A$的全概率公式可以被描述为:
%---------------------------------------------
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(A)=\sum_{k=1}^n \textrm{P}(A \mid B_k)\textrm{P}(B_k) \textrm{P}(A)=\sum_{k=1}^n \textrm{P}(A \mid B_k)\textrm{P}(B_k)
\label{eq:2.2-9} \label{eq:2.2-9}
\end{eqnarray} \end{eqnarray}
%---------------------------------------------
\parinterval 举个例子,小张从家到公司有三条路分别为$a$$b$$c$,选择每条路的概率分别为0.5,0.3,0.2。令: \parinterval 举个例子,小张从家到公司有三条路分别为$a$$b$$c$,选择每条路的概率分别为0.5,0.3,0.2。令:
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item $S_a$:小张选择$a$路去上班 \item $S_a$:小张选择$a$路去上班
\vspace{0.5em}
\item $S_b$:小张选择$b$路去上班 \item $S_b$:小张选择$b$路去上班
\vspace{0.5em}
\item $S_c$:小张选择$c$路去上班 \item $S_c$:小张选择$c$路去上班
\vspace{0.5em}
\item $S$:小张去上班 \item $S$:小张去上班
\vspace{0.5em}
\end{itemize} \end{itemize}
\parinterval 显然,$S_a$$S_b$$S_c$$S$的划分。如果三条路不拥堵的概率分别为$\textrm{P}({S_{a}^{'}})$=0.2, $\textrm{P}({S_{b}^{'}})$=0.4,$\textrm{P}({S_{c}^{'}})$=0.7,那么事件$L$:小张上班没有遇到拥堵情况的概率就是: \parinterval 显然,$S_a$$S_b$$S_c$$S$的划分。如果三条路不拥堵的概率分别为$\textrm{P}({S_{a}^{'}})$=0.2, $\textrm{P}({S_{b}^{'}})$=0.4,$\textrm{P}({S_{c}^{'}})$=0.7,那么事件$L$:小张上班没有遇到拥堵情况的概率就是:
%--------------------------------------------
\begin{eqnarray} \begin{eqnarray}
{\textrm{P}(L)} &=& {\textrm{P}( L| S_a )\textrm{P}(S_a )+\textrm{P}( L| S_b )\textrm{P}(S_b )+\textrm{P}( L| S_c )\textrm{P}(S_c )}\nonumber \\ {\textrm{P}(L)} &=& {\textrm{P}( L| S_a )\textrm{P}(S_a )+\textrm{P}( L| S_b )\textrm{P}(S_b )+\textrm{P}( L| S_c )\textrm{P}(S_c )}\nonumber \\
& = &{\textrm{P}({S_{a}^{'}})\textrm{P}(S_a)+\textrm{P}({S_{b}^{'}})\textrm{P}(S_b)+\textrm{P}({S_{c}^{'}})\textrm{P}(S_c) }\nonumber \\ & = &{\textrm{P}({S_{a}^{'}})\textrm{P}(S_a)+\textrm{P}({S_{b}^{'}})\textrm{P}(S_b)+\textrm{P}({S_{c}^{'}})\textrm{P}(S_c) }\nonumber \\
& = &{0.36} & = &{0.36}
\end{eqnarray} \end{eqnarray}
%--------------------------------------------
\parinterval {\small\sffamily\bfseries{贝叶斯法则}}\index{贝叶斯法则}(Bayes' rule)\index{Bayes' rule}是概率论中的一个经典公式,通常用于已知$\textrm{P}(A \mid B)$$\textrm{P}(B \mid A)$。可以表述为:设$\{B_1,...,B_n\}$$S$的一个划分,$A$为事件,则对于$i=1,...,n$,有如下公式 \parinterval {\small\sffamily\bfseries{贝叶斯法则}}\index{贝叶斯法则}(Bayes' rule)\index{Bayes' rule}是概率论中的一个经典公式,通常用于已知$\textrm{P}(A \mid B)$$\textrm{P}(B \mid A)$。可以表述为:设$\{B_1,...,B_n\}$$S$的一个划分,$A$为事件,则对于$i=1,...,n$,有如下公式
%--------------------------------------------
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(B_i \mid A) & = & \frac {\textrm{P}(A B_i)} { \textrm{P}(A) } \nonumber \\ \textrm{P}(B_i \mid A) & = & \frac {\textrm{P}(A B_i)} { \textrm{P}(A) } \nonumber \\
& = & \frac {\textrm{P}(A \mid B_i)\textrm{P}(B_i) } { \sum_{k=1}^n\textrm{P}(A \mid B_k)\textrm{P}(B_k) } & = & \frac {\textrm{P}(A \mid B_i)\textrm{P}(B_i) } { \sum_{k=1}^n\textrm{P}(A \mid B_k)\textrm{P}(B_k) }
\label{eq:2.2-10} \label{eq:2.2-10}
\end{eqnarray} \end{eqnarray}
%--------------------------------------------
\noindent 其中,等式右端的分母部分使用了全概率公式。由上式,也可以得到贝叶斯公式的另外两种写法: \noindent 其中,等式右端的分母部分使用了全概率公式。由上式,也可以得到贝叶斯公式的另外两种写法:
\begin{eqnarray} \begin{eqnarray}
...@@ -257,13 +271,19 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -257,13 +271,19 @@ F(X)=\int_{-\infty}^x f(x)dx
& = & \frac { \textrm{P}(A \mid B)\textrm{P}(B) } {\textrm{P}(A \mid B)\textrm{P}(B)+\textrm{P}(A \mid \bar{B}) \textrm{P}(\bar{B})} & = & \frac { \textrm{P}(A \mid B)\textrm{P}(B) } {\textrm{P}(A \mid B)\textrm{P}(B)+\textrm{P}(A \mid \bar{B}) \textrm{P}(\bar{B})}
\label{eq:2.2-16} \label{eq:2.2-16}
\end{eqnarray} \end{eqnarray}
%--------------------------------------------
\parinterval 贝叶斯公式常用于根据已知的结果来推断使之发生的各因素的可能性。 \parinterval 贝叶斯公式常用于根据已知的结果来推断使之发生的各因素的可能性。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{KL距离和熵} \subsection{KL距离和熵}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{信息熵} \subsubsection{信息熵}
\parinterval {\small\sffamily\bfseries{}}\index{}(Entropy)\index{Entropy}是热力学中的一个概念,同时也是对系统无序性的一种度量标准。在自然语言处理领域也会使用到信息熵这一概念,比如描述文字的信息量大小。一条信息的信息量可以被看作是这条信息的不确定性。如果需要确认一件非常不确定甚至于一无所知的事情,那么需要理解大量的相关信息才能进行确认;同样的,如果对某件事已经非常确定,那么就不需要太多的信息就可以把它搞清楚。如下就是两个例子, \parinterval {\small\sffamily\bfseries{}}\index{}(Entropy)\index{Entropy}是热力学中的一个概念,同时也是对系统无序性的一种度量标准。在自然语言处理领域也会使用到信息熵这一概念,比如描述文字的信息量大小。一条信息的信息量可以被看作是这条信息的不确定性。如果需要确认一件非常不确定甚至于一无所知的事情,那么需要理解大量的相关信息才能进行确认;同样的,如果对某件事已经非常确定,那么就不需要太多的信息就可以把它搞清楚。如下就是两个例子,
...@@ -284,8 +304,8 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -284,8 +304,8 @@ F(X)=\int_{-\infty}^x f(x)dx
\end{eqnarray} \end{eqnarray}
\noindent 其中,$\textrm{P}(x)$表示$x$发生的概率。自信息用来衡量单一事件发生时所包含的信息多少,当底数为e时,单位为nats,其中1nats是通过观察概率为$\frac{1}{e}$的事件而获得的信息量;当底数为2 时,单位为bits或shannons。$\textrm{I}(x)$$\textrm{P}(x)$的函数关系如图\ref{fig:2.2-4} 所示。 \noindent 其中,$\textrm{P}(x)$表示$x$发生的概率。自信息用来衡量单一事件发生时所包含的信息多少,当底数为e时,单位为nats,其中1nats是通过观察概率为$\frac{1}{e}$的事件而获得的信息量;当底数为2 时,单位为bits或shannons。$\textrm{I}(x)$$\textrm{P}(x)$的函数关系如图\ref{fig:2.2-4} 所示。
%---------------------------------------------- %----------------------------------------------
% 图2.6
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-Self-information-function} \input{./Chapter2/Figures/figure-Self-information-function}
...@@ -295,7 +315,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -295,7 +315,6 @@ F(X)=\int_{-\infty}^x f(x)dx
%------------------------------------------- %-------------------------------------------
\parinterval 自信息处理的是变量单一取值的情况。若量化整个概率分布中的不确定性或信息量,可以用信息熵,记为$\textrm{H}(x)$。其公式如下: \parinterval 自信息处理的是变量单一取值的情况。若量化整个概率分布中的不确定性或信息量,可以用信息熵,记为$\textrm{H}(x)$。其公式如下:
\begin{eqnarray} \begin{eqnarray}
\textrm{H}(x) & = & \sum_{x \in \textrm{X}}[ \textrm{P}(x) \textrm{I}(x)] \nonumber \\ \textrm{H}(x) & = & \sum_{x \in \textrm{X}}[ \textrm{P}(x) \textrm{I}(x)] \nonumber \\
& = & - \sum_{x \in \textrm{X} } [\textrm{P}(x)\log(\textrm{P}(x)) ] & = & - \sum_{x \in \textrm{X} } [\textrm{P}(x)\log(\textrm{P}(x)) ]
...@@ -304,10 +323,13 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -304,10 +323,13 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 一个分布的信息熵也就是从该分布中得到的一个事件的期望信息量。比如,$a$$b$$c$$d$四支球队,四支队伍夺冠的概率分别是$P_1$$P_2$$P_3$$P_4$,某个人对比赛不感兴趣但是又想知道哪只球队夺冠,通过使用二分法2次就确定哪支球队夺冠了。但假设这四只球队中$c$的实力可以碾压其他球队,那么猜1次就可以确定。所以对于前面这种情况,哪只球队夺冠的信息量较高,信息熵也相对较高;对于后面这种情况,因为结果是容易猜到的,信息量和信息熵也就相对较低。因此可以得知:分布越尖锐熵越低;分布越均匀熵越高。 \parinterval 一个分布的信息熵也就是从该分布中得到的一个事件的期望信息量。比如,$a$$b$$c$$d$四支球队,四支队伍夺冠的概率分别是$P_1$$P_2$$P_3$$P_4$,某个人对比赛不感兴趣但是又想知道哪只球队夺冠,通过使用二分法2次就确定哪支球队夺冠了。但假设这四只球队中$c$的实力可以碾压其他球队,那么猜1次就可以确定。所以对于前面这种情况,哪只球队夺冠的信息量较高,信息熵也相对较高;对于后面这种情况,因为结果是容易猜到的,信息量和信息熵也就相对较低。因此可以得知:分布越尖锐熵越低;分布越均匀熵越高。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{KL距离} \subsubsection{KL距离}
\parinterval 如果同一个随机变量$X$上有两个独立的概率分布P$(x)$和Q$(x)$,那么可以使用KL距离(``Kullback-Leibler''散度)来衡量这两个分布的不同,这种度量就是{\small\bfnew{相对熵}}\index{相对熵}(Relative Entropy)\index{Relative Entropy}。其公式如下: \parinterval 如果同一个随机变量$X$上有两个独立的概率分布P$(x)$和Q$(x)$,那么可以使用KL距离(``Kullback-Leibler''散度)来衡量这两个分布的不同,这种度量就是{\small\bfnew{相对熵}}\index{相对熵}(Relative Entropy)\index{Relative Entropy}。其公式如下:
\begin{eqnarray} \begin{eqnarray}
\textrm{D}_{\textrm{KL}}(\textrm{P}\parallel \textrm{Q}) & = & \sum_{x \in \textrm{X}} [ \textrm{P}(x)\log \frac{\textrm{P}(x) }{ \textrm{Q}(x) } ] \nonumber \\ \textrm{D}_{\textrm{KL}}(\textrm{P}\parallel \textrm{Q}) & = & \sum_{x \in \textrm{X}} [ \textrm{P}(x)\log \frac{\textrm{P}(x) }{ \textrm{Q}(x) } ] \nonumber \\
& = & \sum_{x \in \textrm{X} }[ \textrm{P}(x)(\log\textrm{P}(x)-\log \textrm{Q}(x))] & = & \sum_{x \in \textrm{X} }[ \textrm{P}(x)(\log\textrm{P}(x)-\log \textrm{Q}(x))]
...@@ -316,13 +338,17 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -316,13 +338,17 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 相对熵的意义在于:在一个事件空间里,概率分布$\textrm{P}(x)$对应的每个事件的可能性。若用概率分布Q$(x)$编码$\textrm{P}(x)$,平均每个事件的信息量增加了多少。它衡量的是同一个事件空间里两个概率分布的差异。KL距离有两条重要的性质: \parinterval 相对熵的意义在于:在一个事件空间里,概率分布$\textrm{P}(x)$对应的每个事件的可能性。若用概率分布Q$(x)$编码$\textrm{P}(x)$,平均每个事件的信息量增加了多少。它衡量的是同一个事件空间里两个概率分布的差异。KL距离有两条重要的性质:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 非负性,即$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q}) \ge 0$,等号成立条件是$\textrm{P}$$\textrm{Q}$相等。 \item 非负性,即$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q}) \ge 0$,等号成立条件是$\textrm{P}$$\textrm{Q}$相等。
\vspace{0.5em} \vspace{0.5em}
\item 不对称性,即$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q}) \neq \textrm{D}_{\textrm{KL}} (\textrm{Q} \parallel \textrm{P})$,所以$\textrm{KL}$距离并不是常用的欧式空间中的距离。为了消除这种不确定性,有时也会使用$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q})+\textrm{D}_{\textrm{KL}} (\textrm{Q} \parallel \textrm{P})$作为度量两个分布差异性的函数。 \item 不对称性,即$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q}) \neq \textrm{D}_{\textrm{KL}} (\textrm{Q} \parallel \textrm{P})$,所以$\textrm{KL}$距离并不是常用的欧式空间中的距离。为了消除这种不确定性,有时也会使用$\textrm{D}_{\textrm{KL}} (\textrm{P} \parallel \textrm{Q})+\textrm{D}_{\textrm{KL}} (\textrm{Q} \parallel \textrm{P})$作为度量两个分布差异性的函数。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{交叉熵} \subsubsection{交叉熵}
...@@ -334,14 +360,16 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -334,14 +360,16 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 结合相对熵公式可知,交叉熵是KL距离公式中的右半部分。因此,求关于Q的交叉熵的最小值等价于求KL距离的最小值。从实践的角度来说,交叉熵与KL距离的目的相同:都是用来描述两个分布的差异,由于交叉熵计算上更加直观方便,因此在机器翻译中被广泛应用。 \parinterval 结合相对熵公式可知,交叉熵是KL距离公式中的右半部分。因此,求关于Q的交叉熵的最小值等价于求KL距离的最小值。从实践的角度来说,交叉熵与KL距离的目的相同:都是用来描述两个分布的差异,由于交叉熵计算上更加直观方便,因此在机器翻译中被广泛应用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{中文分词} \section{中文分词}
\parinterval 对于机器翻译系统而言,输入的是已经切分好的单词序列,而不是原始的字符串(图\ref{fig:2.3-1})。比如,对于一个中文句子,单词之间是没有间隔的,因此需要把一个个的单词切分出来,这样机器翻译系统可以区分不同的翻译单元。甚至,可以对语言学上的单词进行进一步切分,得到词片段序列(比如:中国人$\to$中国/人)。可以把上述过程看作是一种{\small\sffamily\bfseries{分词}}\index{分词}(Segmentation)\index{Segmentation}过程,即:将一个输入的自然语言字符串切割成单元序列(token序列),每个单元都对应可以处理的最小单位。 \parinterval 对于机器翻译系统而言,输入的是已经切分好的单词序列,而不是原始的字符串(图\ref{fig:2.3-1})。比如,对于一个中文句子,单词之间是没有间隔的,因此需要把一个个的单词切分出来,这样机器翻译系统可以区分不同的翻译单元。甚至,可以对语言学上的单词进行进一步切分,得到词片段序列(比如:中国人$\to$中国/人)。可以把上述过程看作是一种{\small\sffamily\bfseries{分词}}\index{分词}(Segmentation)\index{Segmentation}过程,即:将一个输入的自然语言字符串切割成单元序列(token序列),每个单元都对应可以处理的最小单位。
%---------------------------------------------- %----------------------------------------------
% 图2.7
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-a-simple-pre-processing-process} \input{./Chapter2/Figures/figure-a-simple-pre-processing-process}
...@@ -349,14 +377,15 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -349,14 +377,15 @@ F(X)=\int_{-\infty}^x f(x)dx
\label{fig:2.3-1} \label{fig:2.3-1}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%\vspace{-0.5em} %\vspace{-0.5em}
\parinterval 分词得到的单元序列可以是语言学上的词序列,也可以是根据其他方式定义的基本处理单元。在本章中,可以把分词得到的一个个单元称为{\small\bfnew{单词}}\index{单词}(Word)\index{Word},或{\small\bfnew{}}\index{},尽管这些单元可以不是语言学上的完整单词。而这个过程也被称作{\small\bfnew{词法分析}}\index{词法分析}(Lexical Analysis)\index{Lexical Analysis}。除了汉语,词法分析在日语、泰语等单词之间无明确分割符的语言中有着广泛的应用,芬兰语、维吾尔语等一些形态学十分丰富的语言,也需要使用词法分析来解决复杂的词尾、词缀变化等形态学变化。 \parinterval 分词得到的单元序列可以是语言学上的词序列,也可以是根据其他方式定义的基本处理单元。在本章中,可以把分词得到的一个个单元称为{\small\bfnew{单词}}\index{单词}(Word)\index{Word},或{\small\bfnew{}}\index{},尽管这些单元可以不是语言学上的完整单词。而这个过程也被称作{\small\bfnew{词法分析}}\index{词法分析}(Lexical Analysis)\index{Lexical Analysis}。除了汉语,词法分析在日语、泰语等单词之间无明确分割符的语言中有着广泛的应用,芬兰语、维吾尔语等一些形态学十分丰富的语言,也需要使用词法分析来解决复杂的词尾、词缀变化等形态学变化。
\parinterval 在机器翻译中,分词系统的好坏往往会决定译文的质量。分词的目的是定义系统处理的基本单元,那么什么叫做``词''呢?关于词的定义有很多,比如: \parinterval 在机器翻译中,分词系统的好坏往往会决定译文的质量。分词的目的是定义系统处理的基本单元,那么什么叫做``词''呢?关于词的定义有很多,比如:
%------------------------------------------- %-------------------------------------------
\begin{definition} \vspace{0.5em}
\begin{definition}
语言里最小的可以独立运用的单位:词汇。 语言里最小的可以独立运用的单位:词汇。
\begin{flushright}——《新华字典》\end{flushright} \begin{flushright}——《新华字典》\end{flushright}
...@@ -386,13 +415,16 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -386,13 +415,16 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 词法分析的重要性在自然语言处理领域已经有共识。如果切分的颗粒度很大,获得的单词的歧义也很小,比如``中华人民共和国''整体作为一个单词不存在歧义,而如果单独的一个单词``国'',可能会代表``中国''、``美国''等不同的国家,存在歧义。但是随着切分颗粒度的增大,特定单词出现的频度也随之降低,低频词容易和噪音混淆,系统很难进行学习。因此,处理这些问题并开发适合翻译任务的分词系统是机器翻译的第一步。 \parinterval 词法分析的重要性在自然语言处理领域已经有共识。如果切分的颗粒度很大,获得的单词的歧义也很小,比如``中华人民共和国''整体作为一个单词不存在歧义,而如果单独的一个单词``国'',可能会代表``中国''、``美国''等不同的国家,存在歧义。但是随着切分颗粒度的增大,特定单词出现的频度也随之降低,低频词容易和噪音混淆,系统很难进行学习。因此,处理这些问题并开发适合翻译任务的分词系统是机器翻译的第一步。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于词典的分词方法} \subsection{基于词典的分词方法}
\parinterval 然而,计算机并不能像人类一样在概念上理解``词'',因此需要使用其他方式让计算机可以进行分词。一个最简单的方法就是给定一个词典,在这个词典中出现的汉字组合就是所定义的``词''。也就是,通过一个词典定义一个标准,符合这个标准定义的字符串都是合法的``词''。 \parinterval 然而,计算机并不能像人类一样在概念上理解``词'',因此需要使用其他方式让计算机可以进行分词。一个最简单的方法就是给定一个词典,在这个词典中出现的汉字组合就是所定义的``词''。也就是,通过一个词典定义一个标准,符合这个标准定义的字符串都是合法的``词''。
\parinterval 在使用基于词典的分词方法时,只需预先加载词典到计算机中,扫描输入句子,查询每个词串是否出现在词典中。如图\ref{fig:2.3-2} 所示,有一个包含六个词的词典,给定输入句子`` 确实现在物价很高''后,分词系统自左至右遍历输入句子的每个字,发现词串``确实''在词典中出现,说明``确实''是一个``词'',进行分词操作并在切分该``词''之后重复这个过程。 \parinterval 在使用基于词典的分词方法时,只需预先加载词典到计算机中,扫描输入句子,查询每个词串是否出现在词典中。如图\ref{fig:2.3-2} 所示,有一个包含六个词的词典,给定输入句子`` 确实现在物价很高''后,分词系统自左至右遍历输入句子的每个字,发现词串``确实''在词典中出现,说明``确实''是一个``词'',进行分词操作并在切分该``词''之后重复这个过程。
%---------------------------------------------- %----------------------------------------------
% 图2.8
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-Example-of-word-segmentation-based-on-dictionary} \input{./Chapter2/Figures/figure-Example-of-word-segmentation-based-on-dictionary}
...@@ -404,7 +436,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -404,7 +436,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 但是,基于词典的分词方法很``硬''。这是因为自然语言非常灵活,经常出现歧义,用词典定义的合法单词之间有重叠的交叉型歧义就很难解决。图\ref{fig:2.3-3} 就给出了上面例子中的交叉型歧义,从词典中查看,``实现''和``现在''都是合法的单词,但是在句子中二者有重叠,因此词典无法告诉我们哪个结果是正确的。 \parinterval 但是,基于词典的分词方法很``硬''。这是因为自然语言非常灵活,经常出现歧义,用词典定义的合法单词之间有重叠的交叉型歧义就很难解决。图\ref{fig:2.3-3} 就给出了上面例子中的交叉型歧义,从词典中查看,``实现''和``现在''都是合法的单词,但是在句子中二者有重叠,因此词典无法告诉我们哪个结果是正确的。
%---------------------------------------------- %----------------------------------------------
% 图2.9
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-cross-type-word-segmentation-ambiguity} \input{./Chapter2/Figures/figure-cross-type-word-segmentation-ambiguity}
...@@ -417,25 +448,31 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -417,25 +448,31 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 基于词典的分词方法是典型的基于规则的方法,完全依赖于人工给定的词典。在遇到歧义时,需要人工定义消除歧义的规则,比如,可以自左向右扫描每次匹配最长的单词,这是一种简单的启发式的消歧策略。图\ref{fig:2.3-2}中的例子实际上就是使用这种策略得到的分词结果。但是,启发式的消岐方法对人工的依赖程度很高,而且启发式规则也不能处理所有的情况。所以说简单的基于词典的方法还不能很好的解决分词问题。 \parinterval 基于词典的分词方法是典型的基于规则的方法,完全依赖于人工给定的词典。在遇到歧义时,需要人工定义消除歧义的规则,比如,可以自左向右扫描每次匹配最长的单词,这是一种简单的启发式的消歧策略。图\ref{fig:2.3-2}中的例子实际上就是使用这种策略得到的分词结果。但是,启发式的消岐方法对人工的依赖程度很高,而且启发式规则也不能处理所有的情况。所以说简单的基于词典的方法还不能很好的解决分词问题。
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{基于统计的分词方法}\label{sec2:statistical-seg} \subsection{基于统计的分词方法}\label{sec2:statistical-seg}
\parinterval 既然基于词典的方法有很多问题,那么就需要一种更为有效的方法。在上文中提到,想要搭建一个分词系统,需要让计算机知道什么是``词'',那么可不可以给出已经切分好的分词数据,让计算机在这些数据中学习到规律呢?答案是肯定的,利用``数据''来让计算机明白``词''的定义,让计算机直接在数据中学到知识,这就常说的数据驱动的方法。这个过程也是一个典型的基于统计建模的学习过程。 \parinterval 既然基于词典的方法有很多问题,那么就需要一种更为有效的方法。在上文中提到,想要搭建一个分词系统,需要让计算机知道什么是``词'',那么可不可以给出已经切分好的分词数据,让计算机在这些数据中学习到规律呢?答案是肯定的,利用``数据''来让计算机明白``词''的定义,让计算机直接在数据中学到知识,这就常说的数据驱动的方法。这个过程也是一个典型的基于统计建模的学习过程。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{统计模型的学习与推断} \subsubsection{统计模型的学习与推断}
\parinterval 在分词任务中,数据驱动主要指用已经分词切分好的数据``喂''给系统,这个数据也被称作{\small\bfnew{标注数据}}\index{标注数据}(Annotated Data)\index{Annotated Data}。在获得标注数据后,系统自动学习一个统计模型来描述分词的过程,而这个模型会把分词的`` 知识''作为参数保存在模型中。当送入一个新的需要分词的句子时,可以利用学习到的模型对所有可能的分词结果进行预测,并进行概率化的描述,最终选择概率最大的结果作为输出。这个方法就是基于统计的分词方法。具体来说,可以分为两个步骤: \parinterval 在分词任务中,数据驱动主要指用已经分词切分好的数据``喂''给系统,这个数据也被称作{\small\bfnew{标注数据}}\index{标注数据}(Annotated Data)\index{Annotated Data}。在获得标注数据后,系统自动学习一个统计模型来描述分词的过程,而这个模型会把分词的`` 知识''作为参数保存在模型中。当送入一个新的需要分词的句子时,可以利用学习到的模型对所有可能的分词结果进行预测,并进行概率化的描述,最终选择概率最大的结果作为输出。这个方法就是基于统计的分词方法。具体来说,可以分为两个步骤:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{训练}}\index{训练}(Training)\index{Training}。利用标注数据,对统计模型的参数进行学习。 \item {\small\bfnew{训练}}\index{训练}(Training)\index{Training}。利用标注数据,对统计模型的参数进行学习。
\vspace{0.5em} \vspace{0.5em}
\item {\small\bfnew{推断}}\index{推断}(Inference)\index{Inference}。利用学习到的模型和参数,对新的句子进行切分。 \item {\small\bfnew{推断}}\index{推断}(Inference)\index{Inference}。利用学习到的模型和参数,对新的句子进行切分。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
%---------------------------------------------- %----------------------------------------------
% 图2.10
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-word-segmentation-based-on-statistics} \input{./Chapter2/Figures/figure-word-segmentation-based-on-statistics}
...@@ -447,12 +484,17 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -447,12 +484,17 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval\ref{fig:2.3-4} 给出了一个基于统计建模的汉语分词实例。左侧是标注数据,其中每个句子是已经经过人工标注的分词结果(单词用斜杠分开)。之后,建立一个统计模型,记为$\textrm{P}(\cdot)$。模型通过在标注数据上的学习来对问题进行描述,即学习$\textrm{P}(\cdot)$。最后,对于新的未分词的句子,使用模型$\textrm{P}(\cdot)$对每个可能的切分方式进行概率估计,之后选择概率最高的切分结果输出。 \parinterval\ref{fig:2.3-4} 给出了一个基于统计建模的汉语分词实例。左侧是标注数据,其中每个句子是已经经过人工标注的分词结果(单词用斜杠分开)。之后,建立一个统计模型,记为$\textrm{P}(\cdot)$。模型通过在标注数据上的学习来对问题进行描述,即学习$\textrm{P}(\cdot)$。最后,对于新的未分词的句子,使用模型$\textrm{P}(\cdot)$对每个可能的切分方式进行概率估计,之后选择概率最高的切分结果输出。
\vspace{-0.5em} \vspace{-0.5em}
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{掷骰子游戏} \subsubsection{掷骰子游戏}
\parinterval 上述过程的核心在于从数据中学习一种对分词现象的统计描述,即学习函数$\textrm{P}(\cdot)$。如何让计算机利用分词好的数据学习到分词的知识呢?可以先看一个有趣的实例,用生活中比较常见的掷骰子来说,掷一个骰子,玩家猜一个数字,猜中就算赢,按照一般的常识,随便选一个数字,获胜的概率是一样的,即所有选择的获胜概率仅是$1/6$。因此这个游戏玩家很难获胜,除非运气很好。假设进行一次游戏,玩家随便选了一个数字,比如是1,投掷30骰子,得到命中$7/30 > 1/6$,还不错。 \parinterval 上述过程的核心在于从数据中学习一种对分词现象的统计描述,即学习函数$\textrm{P}(\cdot)$。如何让计算机利用分词好的数据学习到分词的知识呢?可以先看一个有趣的实例,用生活中比较常见的掷骰子来说,掷一个骰子,玩家猜一个数字,猜中就算赢,按照一般的常识,随便选一个数字,获胜的概率是一样的,即所有选择的获胜概率仅是$1/6$。因此这个游戏玩家很难获胜,除非运气很好。假设进行一次游戏,玩家随便选了一个数字,比如是1,投掷30骰子,得到命中$7/30 > 1/6$,还不错。
\vspace{-0.5em} \vspace{-0.5em}
%---------------------------------------------- %----------------------------------------------
% 图2.11
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-the-dice-game} \input{./Chapter2/Figures/figure-the-dice-game}
...@@ -471,7 +513,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -471,7 +513,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\vspace{-0.5em} \vspace{-0.5em}
\parinterval 但是这个游戏没有人规定骰子是均匀的(有些被坑了的感觉)。但是如果骰子的六个面不均匀呢?我们可以用一种更加``聪明''的方式定义一种新的模型,即定义骰子的每一个面都以一定的概率出现,而不是相同的概率。描述如下: \parinterval 但是这个游戏没有人规定骰子是均匀的(有些被坑了的感觉)。但是如果骰子的六个面不均匀呢?我们可以用一种更加``聪明''的方式定义一种新的模型,即定义骰子的每一个面都以一定的概率出现,而不是相同的概率。描述如下:
\begin{eqnarray} \begin{eqnarray}
\textrm{P(``1'')} &=&\theta_1 \nonumber \\ \textrm{P(``1'')} &=&\theta_1 \nonumber \\
\textrm{P(``2'')} &=&\theta_2 \nonumber \\ \textrm{P(``2'')} &=&\theta_2 \nonumber \\
...@@ -491,7 +532,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -491,7 +532,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval$X$足够大的时,$\frac{X_i}{X}$可以无限逼近P(``$i$'')的真实值,因此可以通过大量的实验推算出掷骰子各个面的概率的准确估计值。回归到原始的问题,如果在正式开始游戏前,预先掷骰子30次,得到如图\ref{fig:2.3-6}的结果。 \parinterval$X$足够大的时,$\frac{X_i}{X}$可以无限逼近P(``$i$'')的真实值,因此可以通过大量的实验推算出掷骰子各个面的概率的准确估计值。回归到原始的问题,如果在正式开始游戏前,预先掷骰子30次,得到如图\ref{fig:2.3-6}的结果。
%---------------------------------------------- %----------------------------------------------
% 图2.12
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-the-dice-game2} \input{./Chapter2/Figures/figure-the-dice-game2}
...@@ -503,7 +543,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -503,7 +543,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 于是,我们看到了一个有倾向性的模型(图 \ref{fig:2.3-7}):在这样的预先实验基础上,可以知道如果再次玩掷骰子游戏的话,选则数字``4''获胜的可能性是最大的。 \parinterval 于是,我们看到了一个有倾向性的模型(图 \ref{fig:2.3-7}):在这样的预先实验基础上,可以知道如果再次玩掷骰子游戏的话,选则数字``4''获胜的可能性是最大的。
%---------------------------------------------- %----------------------------------------------
% 图2.13
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-the-dice-game-model} \input{./Chapter2/Figures/figure-the-dice-game-model}
...@@ -514,22 +553,25 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -514,22 +553,25 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 通过上面这个掷骰子的游戏,可以得到一个道理:{\small\sffamily\bfseries{上帝是不公平的}}。因为在``公平''的世界中,没有任何一个模型可以学到有价值的事情。从机器学习的角度来看,所谓的``不公平''实际上这是客观事物中蕴含的一种{\small\sffamily\bfseries{偏置}}\index{偏置}(Bias)\index{Bias},也就是很多事情天然就有对某些情况有倾向。而图像处理、自然语言处理等问题中绝大多数都存在着偏置。比如,我们翻译一个英文单词的时候,它最可能的翻译结果往往就是那几个词。设计统计模型的目的正是要学习这种偏置,之后利用这种偏置对新的问题做出足够好的决策。 \parinterval 通过上面这个掷骰子的游戏,可以得到一个道理:{\small\sffamily\bfseries{上帝是不公平的}}。因为在``公平''的世界中,没有任何一个模型可以学到有价值的事情。从机器学习的角度来看,所谓的``不公平''实际上这是客观事物中蕴含的一种{\small\sffamily\bfseries{偏置}}\index{偏置}(Bias)\index{Bias},也就是很多事情天然就有对某些情况有倾向。而图像处理、自然语言处理等问题中绝大多数都存在着偏置。比如,我们翻译一个英文单词的时候,它最可能的翻译结果往往就是那几个词。设计统计模型的目的正是要学习这种偏置,之后利用这种偏置对新的问题做出足够好的决策。
%----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{全概率分词方法} \subsubsection{全概率分词方法}
\parinterval 回到分词的问题上。与掷骰子游戏类似,分词系统的统计学原理也可以这么理解:假设有已经人工分词好的句子,其中每个单词的出现就好比掷一个巨大的骰子,与前面的例子中有所不同的是: \parinterval 回到分词的问题上。与掷骰子游戏类似,分词系统的统计学原理也可以这么理解:假设有已经人工分词好的句子,其中每个单词的出现就好比掷一个巨大的骰子,与前面的例子中有所不同的是:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 骰子有很多个面,每个面代表一个单词。 \item 骰子有很多个面,每个面代表一个单词。
\vspace{0.5em} \vspace{0.5em}
\item 骰子是不均匀的,有些面会出现比较多次。 \item 骰子是不均匀的,有些面会出现比较多次。
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 如果投掷这个新的骰子,可能会得到图\ref{fig:2.3-8}这样的结果, \parinterval 如果投掷这个新的骰子,可能会得到图\ref{fig:2.3-8}这样的结果,
%---------------------------------------------- %----------------------------------------------
% 图2.14
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-full-probability-word-segmentation-1} \input{./Chapter2/Figures/figure-full-probability-word-segmentation-1}
...@@ -551,7 +593,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -551,7 +593,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 就可以得到图\ref{fig:2.3-9}所示的结果。 \parinterval 就可以得到图\ref{fig:2.3-9}所示的结果。
%---------------------------------------------- %----------------------------------------------
% 图2.15
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-full-probability-word-segmentation-2} \input{./Chapter2/Figures/figure-full-probability-word-segmentation-2}
...@@ -564,7 +605,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -564,7 +605,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 于是,在中文分词问题中,可以假设有一个不均匀的多面骰子,每个面都对应一个单词。在获取人工分词标注数据后,可以统计每个单词出现的次数,进而利用极大似然估计推算出每个单词出现的概率的估计值。图\ref{fig:2.3-10}给出了一个实例。 \parinterval 于是,在中文分词问题中,可以假设有一个不均匀的多面骰子,每个面都对应一个单词。在获取人工分词标注数据后,可以统计每个单词出现的次数,进而利用极大似然估计推算出每个单词出现的概率的估计值。图\ref{fig:2.3-10}给出了一个实例。
%---------------------------------------------- %----------------------------------------------
% 图2.16
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-full-probability-word-segmentation-3} \input{./Chapter2/Figures/figure-full-probability-word-segmentation-3}
...@@ -594,7 +634,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -594,7 +634,6 @@ F(X)=\int_{-\infty}^x f(x)dx
这个假设也是自然语言处理中1-gram语言模型假设,即当前词的生成与任何历史都无关。当然,独立性假设并不能完美描述客观世界的问题,但是它大大化简了问题的复杂度。 这个假设也是自然语言处理中1-gram语言模型假设,即当前词的生成与任何历史都无关。当然,独立性假设并不能完美描述客观世界的问题,但是它大大化简了问题的复杂度。
%---------------------------------------------- %----------------------------------------------
% 图2.17
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-examples-of-Chinese-word-segmentation-based-on-1-gram-model} \input{./Chapter2/Figures/figure-examples-of-Chinese-word-segmentation-based-on-1-gram-model}
...@@ -611,13 +650,19 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -611,13 +650,19 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 当然,真正的分词系统还需要解决很多其他问题,比如使用动态规划等方法高效搜索最优解以及如何处理未见过的词等等,由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此无法覆盖所有中文分词的技术内容,有兴趣的读者可以参考\ref{sec2:summary}节的相关文献做进一步深入研究。 \parinterval 当然,真正的分词系统还需要解决很多其他问题,比如使用动态规划等方法高效搜索最优解以及如何处理未见过的词等等,由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此无法覆盖所有中文分词的技术内容,有兴趣的读者可以参考\ref{sec2:summary}节的相关文献做进一步深入研究。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{$n$-gram语言模型 } \section{$n$-gram语言模型 }
\parinterval 在基于统计的汉语分词模型中,我们通过``大题小做''的技巧,利用独立性假设把整个句子的单词切分概率转化为每个单个词出现概率的乘积。这里,每个单词也被称作1-gram(或uni-gram),而1-gram概率的乘积实际上也是在度量词序列出现的可能性(记为$\textrm{P}(w_1 w_2...w_m)$)。这种计算整个单词序列概率$\textrm{P}(w_1 w_2...w_m)$的方法被称为统计语言模型。1-gram语言模型是最简单的一种语言模型,它没有考虑任何的上下文。很自然的一个问题是:能否考虑上下文信息构建更强大的语言模型,进而得到更准确的分词结果。下面将进一步介绍更加通用的$n$-gram语言模型,它在机器翻译及其他自然语言处理任务中有更加广泛的应用。 \parinterval 在基于统计的汉语分词模型中,我们通过``大题小做''的技巧,利用独立性假设把整个句子的单词切分概率转化为每个单个词出现概率的乘积。这里,每个单词也被称作1-gram(或uni-gram),而1-gram概率的乘积实际上也是在度量词序列出现的可能性(记为$\textrm{P}(w_1 w_2...w_m)$)。这种计算整个单词序列概率$\textrm{P}(w_1 w_2...w_m)$的方法被称为统计语言模型。1-gram语言模型是最简单的一种语言模型,它没有考虑任何的上下文。很自然的一个问题是:能否考虑上下文信息构建更强大的语言模型,进而得到更准确的分词结果。下面将进一步介绍更加通用的$n$-gram语言模型,它在机器翻译及其他自然语言处理任务中有更加广泛的应用。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{建模} \subsection{建模}
\parinterval {\small\sffamily\bfseries{语言模型}}\index{语言模型}(Language Model)\index{Language Model}的目的是描述文字序列出现的规律。这个对问题建模的过程被称作{\small\sffamily\bfseries{语言建模}}\index{语言建模}(Language Modeling)\index{Language Modeling}。如果使用统计建模的方式,语言模型可以被定义为计算$\textrm{P}(w_1 w_2...w_m)$的问题,也就是计算整个词序列$w_1 w_2...w_m$出现的可能性大小。具体定义如下, \parinterval {\small\sffamily\bfseries{语言模型}}\index{语言模型}(Language Model)\index{Language Model}的目的是描述文字序列出现的规律。这个对问题建模的过程被称作{\small\sffamily\bfseries{语言建模}}\index{语言建模}(Language Modeling)\index{Language Modeling}。如果使用统计建模的方式,语言模型可以被定义为计算$\textrm{P}(w_1 w_2...w_m)$的问题,也就是计算整个词序列$w_1 w_2...w_m$出现的可能性大小。具体定义如下,
...@@ -666,12 +711,13 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -666,12 +711,13 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 那么,如何计算$\textrm{P}(w_m|w_{m-n+1} ... w_{m-1})$呢?有很多种选择,比如: \parinterval 那么,如何计算$\textrm{P}(w_m|w_{m-n+1} ... w_{m-1})$呢?有很多种选择,比如:
\vspace{0.3em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item {\small\bfnew{极大似然估计}}\index{极大似然估计}。直接利用词序列在训练数据中出现的频度计算出$\textrm{P}(w_m|w_{m-n+1}$\\$... w_{m-1})$ \item {\small\bfnew{极大似然估计}}\index{极大似然估计}。直接利用词序列在训练数据中出现的频度计算出$\textrm{P}(w_m|w_{m-n+1}$\\$... w_{m-1})$
\begin{eqnarray} \begin{eqnarray}
\textrm{P}(w_m|w_{m-n+1}...w_{m-1})=\frac{\textrm{count}(w_{m-n+1}...w_m)}{\textrm{count}(w_{m-n+1}...w_{m-1})} \textrm{P}(w_m|w_{m-n+1}...w_{m-1})=\frac{\textrm{count}(w_{m-n+1}...w_m)}{\textrm{count}(w_{m-n+1}...w_{m-1})}
\label{eq:2.4-3} \label{eq:2.4-3}
\vspace{0.5em}
\end{eqnarray} \end{eqnarray}
其中,$\textrm{count}(\cdot)$是在训练数据中统计频次的函数。 其中,$\textrm{count}(\cdot)$是在训练数据中统计频次的函数。
...@@ -684,7 +730,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -684,7 +730,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 极大似然估计方法和前面介绍的统计分词中的方法是一致的,它的核心是使用$n$-gram出现的频度进行参数估计,因此也是自然语言处理中一类经典的$n$-gram方法。基于人工神经网络的方法在近些年也非常受关注,它直接利用多层神经网络对问题的输入$(w_{m-n+1}...w_{m-1})$和输出$\textrm{P}(w_m|w_{m-n+1} ... w_{m-1})$进行建模,而模型的参数通过网络中神经元之间连接的权重进行体现。严格意义上了来说,基于人工神经网络的方法并不算基于$n$-gram的方法,或者说它并没有显性记录$n$-gram的生成概率,也不依赖$n$-gram的频度进行参数估计。为了保证内容的连贯性,本章将仍以传统$n$-gram语言模型为基础进行讨论,基于人工神经网络的方法将会在第五章和第六章进行详细介绍。 \parinterval 极大似然估计方法和前面介绍的统计分词中的方法是一致的,它的核心是使用$n$-gram出现的频度进行参数估计,因此也是自然语言处理中一类经典的$n$-gram方法。基于人工神经网络的方法在近些年也非常受关注,它直接利用多层神经网络对问题的输入$(w_{m-n+1}...w_{m-1})$和输出$\textrm{P}(w_m|w_{m-n+1} ... w_{m-1})$进行建模,而模型的参数通过网络中神经元之间连接的权重进行体现。严格意义上了来说,基于人工神经网络的方法并不算基于$n$-gram的方法,或者说它并没有显性记录$n$-gram的生成概率,也不依赖$n$-gram的频度进行参数估计。为了保证内容的连贯性,本章将仍以传统$n$-gram语言模型为基础进行讨论,基于人工神经网络的方法将会在第五章和第六章进行详细介绍。
\parinterval $n$-gram语言模型的使用非常简单。可以像\ref{sec2:statistical-seg}节中一样,直接用它来对词序列出现的概率进行计算。比如,可以使用一个2-gram语言模型计算一个分词序列的概率: \parinterval $n$-gram语言模型的使用非常简单。可以像\ref{sec2:statistical-seg}节中一样,直接用它来对词序列出现的概率进行计算。比如,可以使用一个2-gram语言模型计算一个分词序列的概率:
\begin{eqnarray} \begin{eqnarray}
& &\textrm{P}_{2-gram}{(\textrm{``确实}/\textrm{现在}/\textrm{数据}/\textrm{}/\textrm{多''})} \nonumber \\ & &\textrm{P}_{2-gram}{(\textrm{``确实}/\textrm{现在}/\textrm{数据}/\textrm{}/\textrm{多''})} \nonumber \\
&= & \textrm{P}(\textrm{``确实''}) \times\textrm{P}(\textrm{``现在''}|\textrm{``确实''})\times\textrm{P}(\textrm{``数据''}|\textrm{``现在''}) \times \nonumber \\ &= & \textrm{P}(\textrm{``确实''}) \times\textrm{P}(\textrm{``现在''}|\textrm{``确实''})\times\textrm{P}(\textrm{``数据''}|\textrm{``现在''}) \times \nonumber \\
...@@ -694,7 +739,10 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -694,7 +739,10 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval$n$-gram语言模型为代表的统计语言模型的应用非常广泛。除了分词,在文本生成、信息检索、摘要等自然语言处理任务中,语言模型都有举足轻重的地位。包括近些年非常受关注的预训练模型,本质上也是统计语言模型。这些技术都会在后续章节进行介绍。值得注意的是,统计语言模型为解决自然语言处理问题提供了一个非常好的建模思路,即:把整个序列生成的问题转化为逐个生成单词的问题。很快我们就会看到,这种建模方式会被广泛的用于机器翻译建模,在统计机器翻译和神经机器翻译中都会有明显的体现。 \parinterval$n$-gram语言模型为代表的统计语言模型的应用非常广泛。除了分词,在文本生成、信息检索、摘要等自然语言处理任务中,语言模型都有举足轻重的地位。包括近些年非常受关注的预训练模型,本质上也是统计语言模型。这些技术都会在后续章节进行介绍。值得注意的是,统计语言模型为解决自然语言处理问题提供了一个非常好的建模思路,即:把整个序列生成的问题转化为逐个生成单词的问题。很快我们就会看到,这种建模方式会被广泛的用于机器翻译建模,在统计机器翻译和神经机器翻译中都会有明显的体现。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{未登录词和平滑算法}\label{sec2:smoothing} \subsection{未登录词和平滑算法}\label{sec2:smoothing}
\parinterval 在式\ref{eq:2.4-4}所示的例子中,如果语料中从没有``确实''和``现在''两个词连续出现的情况,那么使用2-gram计算切分``确实/现在/数据/很/多''的概率时,会出现如下情况 \parinterval 在式\ref{eq:2.4-4}所示的例子中,如果语料中从没有``确实''和``现在''两个词连续出现的情况,那么使用2-gram计算切分``确实/现在/数据/很/多''的概率时,会出现如下情况
...@@ -706,9 +754,8 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -706,9 +754,8 @@ F(X)=\int_{-\infty}^x f(x)dx
\end{eqnarray} \end{eqnarray}
\parinterval 显然,这个结果是不能接受的。因为即使语料中没有 ``确实''和``现在''两个词连续出现,但是这种搭配也是客观存在的。这时简单的用极大似然估计得到概率却是0,导致整个切分结果的概率为0。 更常见的问题是那些根本没有出现在词表中的词,称为{\small\sffamily\bfseries{未登录词}}\index{未登录词}(Out-of-Vocabulary Word,OOV Word)\index{Out-of-Vocabulary Word,OOV Word},比如一些生僻词,可能模型训练阶段从来没有看到过,这时模型仍然会给出0 概率。图\ref{fig:2.4-1}展示了一个真实语料库中词语出现频度的分布,可以看到绝大多数词都是低频词。 \parinterval 显然,这个结果是不能接受的。因为即使语料中没有 ``确实''和``现在''两个词连续出现,但是这种搭配也是客观存在的。这时简单的用极大似然估计得到概率却是0,导致整个切分结果的概率为0。 更常见的问题是那些根本没有出现在词表中的词,称为{\small\sffamily\bfseries{未登录词}}\index{未登录词}(Out-of-Vocabulary Word,OOV Word)\index{Out-of-Vocabulary Word,OOV Word},比如一些生僻词,可能模型训练阶段从来没有看到过,这时模型仍然会给出0 概率。图\ref{fig:2.4-1}展示了一个真实语料库中词语出现频度的分布,可以看到绝大多数词都是低频词。
%----------------------------------------------
% 图2.18
%----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-word-frequency-distribution} \input{./Chapter2/Figures/figure-word-frequency-distribution}
...@@ -721,7 +768,10 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -721,7 +768,10 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 语言模型使用的平滑算法有很多。在本节中,主要介绍三种平滑方法:加法平滑法、古德-图灵估计法和Kneser-Ney平滑。这些方法也可以被应用到其他任务的概率平滑操作中。 \parinterval 语言模型使用的平滑算法有很多。在本节中,主要介绍三种平滑方法:加法平滑法、古德-图灵估计法和Kneser-Ney平滑。这些方法也可以被应用到其他任务的概率平滑操作中。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{加法平滑方法} \subsubsection{加法平滑方法}
\parinterval {\small\bfnew{加法平滑}}\index{加法平滑}(Additive Smoothing)\index{Additive Smoothing}是一种简单的平滑技术。本小节首先介绍这一方法,希望通过它了解平滑算法的思想。通常情况下,系统研发者会利用采集到的语料库来模拟真实的全部语料库。当然,没有一个语料库能覆盖所有的语言现象。常见的一个问题是,使用的语料无法涵盖所有的词汇。因此,直接依据这样语料所获得的统计信息来获取语言模型就会产生偏差。假设依据某语料$C$ (从未出现`` 确实 现在''二元语法),评估一个已经分好词的句子$S$ =``确实/现在/物价/很/高''的概率。当计算``确实/现在''的概率时,$\textrm{P}(S) = 0$。显然这个结果是不合理的。 \parinterval {\small\bfnew{加法平滑}}\index{加法平滑}(Additive Smoothing)\index{Additive Smoothing}是一种简单的平滑技术。本小节首先介绍这一方法,希望通过它了解平滑算法的思想。通常情况下,系统研发者会利用采集到的语料库来模拟真实的全部语料库。当然,没有一个语料库能覆盖所有的语言现象。常见的一个问题是,使用的语料无法涵盖所有的词汇。因此,直接依据这样语料所获得的统计信息来获取语言模型就会产生偏差。假设依据某语料$C$ (从未出现`` 确实 现在''二元语法),评估一个已经分好词的句子$S$ =``确实/现在/物价/很/高''的概率。当计算``确实/现在''的概率时,$\textrm{P}(S) = 0$。显然这个结果是不合理的。
...@@ -739,7 +789,6 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -739,7 +789,6 @@ F(X)=\int_{-\infty}^x f(x)dx
\parinterval 举一个例子。假设在一个英文文档中随机采样一些单词(词表大小$|V|=20$),各个单词出现的次数为:``look'': 4,``people'': 3,``am'': 2,``what'': 1,``want'': 1,``do'': 1。图\ref{fig:2.4-2} 给出了在平滑之前和平滑之后的概率分布。 \parinterval 举一个例子。假设在一个英文文档中随机采样一些单词(词表大小$|V|=20$),各个单词出现的次数为:``look'': 4,``people'': 3,``am'': 2,``what'': 1,``want'': 1,``do'': 1。图\ref{fig:2.4-2} 给出了在平滑之前和平滑之后的概率分布。
%---------------------------------------------- %----------------------------------------------
% 图2.19
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-no-smoothing&smoothed-probability-distributions} \input{./Chapter2/Figures/figure-no-smoothing&smoothed-probability-distributions}
...@@ -748,7 +797,10 @@ F(X)=\int_{-\infty}^x f(x)dx ...@@ -748,7 +797,10 @@ F(X)=\int_{-\infty}^x f(x)dx
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{古德-图灵估计法} \subsubsection{古德-图灵估计法}
\parinterval {\small\bfnew{古德-图灵估计法}}\index{古德-图灵估计法}(Good-Turing Estimate)\index{Good-Turing Estimate}是图灵(Alan Turing)和他的助手古德(I.J.Good)开发的,作为他们在二战期间破解德国密码机Enigma所使用的方法的一部分,在1953 年古德将其发表,这一方法也是很多平滑算法的核心,其基本思路是:把非零的$n$元语法单元的概率降低匀给一些低概率$n$元语法单元,以减小最大似然估计与真实概率之间的偏离\upcite{good1953population}\upcite{gale1995good} \parinterval {\small\bfnew{古德-图灵估计法}}\index{古德-图灵估计法}(Good-Turing Estimate)\index{Good-Turing Estimate}是图灵(Alan Turing)和他的助手古德(I.J.Good)开发的,作为他们在二战期间破解德国密码机Enigma所使用的方法的一部分,在1953 年古德将其发表,这一方法也是很多平滑算法的核心,其基本思路是:把非零的$n$元语法单元的概率降低匀给一些低概率$n$元语法单元,以减小最大似然估计与真实概率之间的偏离\upcite{good1953population}\upcite{gale1995good}
...@@ -766,7 +818,6 @@ r^* = (r + 1)\frac{n_{r + 1}}{n_r} ...@@ -766,7 +818,6 @@ r^* = (r + 1)\frac{n_{r + 1}}{n_r}
\end{eqnarray} \end{eqnarray}
\parinterval 基于这个公式,就可以估计所有0次$n$-gram的频次$n_0 r^*=(r+1)n_1=n_1$。要把这个重新估计的统计数转化为概率,需要进行归一化处理:对于每个统计数为$r$的事件,其概率为 \parinterval 基于这个公式,就可以估计所有0次$n$-gram的频次$n_0 r^*=(r+1)n_1=n_1$。要把这个重新估计的统计数转化为概率,需要进行归一化处理:对于每个统计数为$r$的事件,其概率为
\begin{eqnarray} \begin{eqnarray}
\textrm{P}_r=\frac{r^*}{N} \textrm{P}_r=\frac{r^*}{N}
\end{eqnarray} \end{eqnarray}
...@@ -792,7 +843,6 @@ N & = & \sum_{r=0}^{\infty}{r^{*}n_r} \nonumber \\ ...@@ -792,7 +843,6 @@ N & = & \sum_{r=0}^{\infty}{r^{*}n_r} \nonumber \\
\parinterval 这里使用一个例子来说明这个方法是如何对事件出现的可能性进行平滑的。仍然考虑在加法平滑法中统计单词的例子,根据古德-图灵方法进行修正如表\ref{tab::2.4-2}所示。 \parinterval 这里使用一个例子来说明这个方法是如何对事件出现的可能性进行平滑的。仍然考虑在加法平滑法中统计单词的例子,根据古德-图灵方法进行修正如表\ref{tab::2.4-2}所示。
%------------------------------------------------------ %------------------------------------------------------
% 表1.3
\begin{table}[htp]{ \begin{table}[htp]{
\begin{center} \begin{center}
\caption{单词出现频次及古德-图灵平滑结果} \caption{单词出现频次及古德-图灵平滑结果}
...@@ -814,7 +864,10 @@ N & = & \sum_{r=0}^{\infty}{r^{*}n_r} \nonumber \\ ...@@ -814,7 +864,10 @@ N & = & \sum_{r=0}^{\infty}{r^{*}n_r} \nonumber \\
\vspace{-1.5em} \vspace{-1.5em}
\parinterval$r$很大的时候经常会出现$n_{r+1}=0$的情况,而且这时$n_r$也会有噪音存在。通常,简单的古德-图灵方法可能无法很好的处理这种复杂的情况,不过古德-图灵方法仍然是其他一些平滑方法的基础。 \parinterval$r$很大的时候经常会出现$n_{r+1}=0$的情况,而且这时$n_r$也会有噪音存在。通常,简单的古德-图灵方法可能无法很好的处理这种复杂的情况,不过古德-图灵方法仍然是其他一些平滑方法的基础。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION
%----------------------------------------------------------------------------------------
\subsubsection{Kneser-Ney平滑方法} \subsubsection{Kneser-Ney平滑方法}
\parinterval Kneser-Ney平滑方法是由R.Kneser和H.Ney于1995年提出的用于计算$n$元语法概率分布的方法\upcite{kneser1995improved}\upcite{chen1999empirical},并被广泛认为是最有效的平滑方法。这种平滑方法改进了absolute discounting中与高阶分布相结合的低阶分布的计算方法,使不同阶分布得到充分的利用。这种算法也综合利用了其他多种平滑算法的思想。 \parinterval Kneser-Ney平滑方法是由R.Kneser和H.Ney于1995年提出的用于计算$n$元语法概率分布的方法\upcite{kneser1995improved}\upcite{chen1999empirical},并被广泛认为是最有效的平滑方法。这种平滑方法改进了absolute discounting中与高阶分布相结合的低阶分布的计算方法,使不同阶分布得到充分的利用。这种算法也综合利用了其他多种平滑算法的思想。
...@@ -889,18 +942,23 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -889,18 +942,23 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\parinterval Kneser-Ney平滑是很多语言模型工具的基础\upcite{wang-etal-2018-niutrans}\upcite{heafield-2011-kenlm}\upcite{stolcke2002srilm}。还有很多以此为基础衍生出来的算法,感兴趣的读者可以通过参考文献自行了解\upcite{parsing2009speech}\upcite{ney1994structuring}\upcite{chen1999empirical} \parinterval Kneser-Ney平滑是很多语言模型工具的基础\upcite{wang-etal-2018-niutrans}\upcite{heafield-2011-kenlm}\upcite{stolcke2002srilm}。还有很多以此为基础衍生出来的算法,感兴趣的读者可以通过参考文献自行了解\upcite{parsing2009speech}\upcite{ney1994structuring}\upcite{chen1999empirical}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{句法分析(短语结构分析)} \section{句法分析(短语结构分析)}
\parinterval 通过前面两节的内容,已经了解什么叫做``词''、如何对分词问题进行统计建模。同时也了解了如何对词序列的生成进行概率描述。无论是分词还是语言模型都是句子浅层词串信息的一种表示。对于一个自然语言句子来说,它更深层次的结构信息可以通过句法信息来描述,而句法信息也是机器翻译和自然语言处理其他任务中常用的知识之一。 \parinterval 通过前面两节的内容,已经了解什么叫做``词''、如何对分词问题进行统计建模。同时也了解了如何对词序列的生成进行概率描述。无论是分词还是语言模型都是句子浅层词串信息的一种表示。对于一个自然语言句子来说,它更深层次的结构信息可以通过句法信息来描述,而句法信息也是机器翻译和自然语言处理其他任务中常用的知识之一。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{句子的句法树表示} \subsection{句子的句法树表示}
\parinterval {\small\sffamily\bfseries{句法}}\index{句法}(Syntax)\index{Syntax}是研究句子的每个组成部分和它们之间的组合方式。一般来说,句法和语言是相关的,比如,英文是主谓宾结构,而日语是主宾谓结构。因此不同的语言也会有不同的句法描述方式。自然语言处理领域最常用的两种句法分析形式是{\small\sffamily\bfseries{短语结构分析}}\index{短语结构分析}(Phrase Structure Parsing)\index{Phrase Structure Parsing}{\small\sffamily\bfseries{依存分析}}\index{依存分析}(Dependency Parsing)\index{Dependency Parsing}。图\ref{fig:2.5-1}展示了这两种的句法表示形式的实例。其中,左侧是短语结构树。它描述的是短语的结构功能,比如``吃''是动词(记为VV),``鱼''是名词(记为NN),``吃\ 鱼''组成动词短语,这个短语再与``喜欢''这一动词组成新的动词短语。短语结构树的每个子树都是一个句法功能单元,比如,子树VP(VV(吃) NN(鱼))就表示了``吃\ 鱼''这个动词短语的结构,其中子树根节点VP是句法功能标记。短语结构树利用嵌套的方式描述了语言学的功能。短语结构树中,每个词都有词性(或词类),不同的词或者短语可以组成名动结构、动宾结构等语言学短语结构。短语结构分析一般也被称为{\small\bfnew{成分分析}}\index{成分分析}(Constituency Parsing)或{\small\bfnew{完全分析}}\index{完全分析}(Full Parsing)\index{Full Parsing} \parinterval {\small\sffamily\bfseries{句法}}\index{句法}(Syntax)\index{Syntax}是研究句子的每个组成部分和它们之间的组合方式。一般来说,句法和语言是相关的,比如,英文是主谓宾结构,而日语是主宾谓结构。因此不同的语言也会有不同的句法描述方式。自然语言处理领域最常用的两种句法分析形式是{\small\sffamily\bfseries{短语结构分析}}\index{短语结构分析}(Phrase Structure Parsing)\index{Phrase Structure Parsing}{\small\sffamily\bfseries{依存分析}}\index{依存分析}(Dependency Parsing)\index{Dependency Parsing}。图\ref{fig:2.5-1}展示了这两种的句法表示形式的实例。其中,左侧是短语结构树。它描述的是短语的结构功能,比如``吃''是动词(记为VV),``鱼''是名词(记为NN),``吃\ 鱼''组成动词短语,这个短语再与``喜欢''这一动词组成新的动词短语。短语结构树的每个子树都是一个句法功能单元,比如,子树VP(VV(吃) NN(鱼))就表示了``吃\ 鱼''这个动词短语的结构,其中子树根节点VP是句法功能标记。短语结构树利用嵌套的方式描述了语言学的功能。短语结构树中,每个词都有词性(或词类),不同的词或者短语可以组成名动结构、动宾结构等语言学短语结构。短语结构分析一般也被称为{\small\bfnew{成分分析}}\index{成分分析}(Constituency Parsing)或{\small\bfnew{完全分析}}\index{完全分析}(Full Parsing)\index{Full Parsing}
%---------------------------------------------- %----------------------------------------------
% 图2.5.1.1
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-phrase-structure-tree-and-dependency-tree} \input{./Chapter2/Figures/figure-phrase-structure-tree-and-dependency-tree}
...@@ -917,10 +975,9 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -917,10 +975,9 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\parinterval 而句法分析到底是什么呢?简单的理解,句法分析就是在小学语文课程中学习的句子成分的分析,以及对句子中各个成分内部、外部关系的判断。更规范一些的定义,可以参照维基百科和百度百科的句法分析的解释。 \parinterval 而句法分析到底是什么呢?简单的理解,句法分析就是在小学语文课程中学习的句子成分的分析,以及对句子中各个成分内部、外部关系的判断。更规范一些的定义,可以参照维基百科和百度百科的句法分析的解释。
\vspace{-0.0em}
%------------------------------------------- %-------------------------------------------
\begin{definition} \vspace{-0.0em}
句法分析 \begin{definition} 句法分析
句法分析(Parsing)就是指对句子中的词语语法功能进行分析。 句法分析(Parsing)就是指对句子中的词语语法功能进行分析。
\begin{flushright}——《百度百科》\end{flushright} \begin{flushright}——《百度百科》\end{flushright}
...@@ -929,18 +986,26 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -929,18 +986,26 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\begin{flushright}——《维基百科(译文)》\end{flushright} \begin{flushright}——《维基百科(译文)》\end{flushright}
\end{definition} \end{definition}
%------------------------------------------- %-------------------------------------------
\parinterval 上面的定义中,句法分析包含三个重要的概念: \parinterval 上面的定义中,句法分析包含三个重要的概念:
\vspace{0.5em}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 形式化的文法:描述语言结构的定义,由文法规则组成 \item 形式化的文法:描述语言结构的定义,由文法规则组成
\vspace{0.5em}
\item 符号串:在本节中,符号串就是指词串,由前面提到的分词系统生成 \item 符号串:在本节中,符号串就是指词串,由前面提到的分词系统生成
\vspace{0.5em}
\item 分析:使用形式文法对符号串进行分析的具体方法,在这里指实现分析的计算机算法 \item 分析:使用形式文法对符号串进行分析的具体方法,在这里指实现分析的计算机算法
\end{itemize}
\vspace{0.5em} \vspace{0.5em}
\end{itemize}
\parinterval 以上三点是实现一个句法分析器的要素。本节的后半部分会对相关的概念和技术方法进行介绍。 \parinterval 以上三点是实现一个句法分析器的要素。本节的后半部分会对相关的概念和技术方法进行介绍。
\vspace{-0.5em} \vspace{-0.5em}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{上下文无关文法} \subsection{上下文无关文法}
\parinterval 句法树是对句子的一种抽象。这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。 \parinterval 句法树是对句子的一种抽象。这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。
...@@ -948,15 +1013,21 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -948,15 +1013,21 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\parinterval 形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义\upcite{chomsky2002syntactic},形式文法分为四种类型:无限制文法(0型文法)、上下文相关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是{\small\bfnew{上下文无关文法}}\index{上下文无关文法}(Context-Free Grammar)\index{Context-Free Grammar}。上下文无关文法的具体形式如下: \parinterval 形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义\upcite{chomsky2002syntactic},形式文法分为四种类型:无限制文法(0型文法)、上下文相关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是{\small\bfnew{上下文无关文法}}\index{上下文无关文法}(Context-Free Grammar)\index{Context-Free Grammar}。上下文无关文法的具体形式如下:
%------------------------------------------- %-------------------------------------------
\vspace{0.5em}
\begin{definition} 上下文无关文法 \begin{definition} 上下文无关文法
一个上下文无关文法可以被视为一个系统$G=<N,\Sigma,R,S>$,其中 一个上下文无关文法可以被视为一个系统$G=<N,\Sigma,R,S>$,其中
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item $N$为一个非终结符集合 \item $N$为一个非终结符集合
\vspace{0.5em}
\item $\Sigma$为一个终结符集合 \item $\Sigma$为一个终结符集合
\vspace{0.5em}
\item $R$为一个规则(产生式)集合,每条规则 $r \in R$的形式为$X \to Y_1Y_2...Y_n$,其中$X \in N$, $Y_i \in N \cup \Sigma$ \item $R$为一个规则(产生式)集合,每条规则 $r \in R$的形式为$X \to Y_1Y_2...Y_n$,其中$X \in N$, $Y_i \in N \cup \Sigma$
\vspace{0.5em}
\item $S$为一个起始符号集合且$S \subseteq N$ \item $S$为一个起始符号集合且$S \subseteq N$
\vspace{0.5em}
\end{itemize} \end{itemize}
\end{definition} \end{definition}
%------------------------------------------- %-------------------------------------------
...@@ -980,8 +1051,8 @@ S=\{\textrm{IP}\} \nonumber ...@@ -980,8 +1051,8 @@ S=\{\textrm{IP}\} \nonumber
\end{eqnarray} \end{eqnarray}
最后,文法的规则集定义图\ref{fig:2.5-2}所示(其中$r_i$为规则的编号) 最后,文法的规则集定义图\ref{fig:2.5-2}所示(其中$r_i$为规则的编号)
%---------------------------------------------- %----------------------------------------------
% 图2.5.2.1
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-rules-of-grammar} \input{./Chapter2/Figures/figure-rules-of-grammar}
...@@ -994,8 +1065,8 @@ S=\{\textrm{IP}\} \nonumber ...@@ -994,8 +1065,8 @@ S=\{\textrm{IP}\} \nonumber
\parinterval 上下文无关文法的规则是一种{\small\sffamily\bfseries{产生式规则}}\index{产生式规则}(Production Rule)\index{Production Rule},形如$\alpha \to \beta $,它表示把规则左端的非终结符$\alpha$替换为规则右端的符号序列$\beta$。 通常,$\alpha$被称作规则的左部(Left-hand Side),$\beta$被称作规则的右部(Right-hand Side)。使用右部$\beta$替换左部$\alpha$的过程也被称作规则的使用,而这个过程的逆过程称为规约。规则的使用可以如下定义: \parinterval 上下文无关文法的规则是一种{\small\sffamily\bfseries{产生式规则}}\index{产生式规则}(Production Rule)\index{Production Rule},形如$\alpha \to \beta $,它表示把规则左端的非终结符$\alpha$替换为规则右端的符号序列$\beta$。 通常,$\alpha$被称作规则的左部(Left-hand Side),$\beta$被称作规则的右部(Right-hand Side)。使用右部$\beta$替换左部$\alpha$的过程也被称作规则的使用,而这个过程的逆过程称为规约。规则的使用可以如下定义:
\vspace{0.5em}
%------------------------------------------- %-------------------------------------------
\vspace{0.5em}
\begin{definition} 上下文无关文法规则的使用 \begin{definition} 上下文无关文法规则的使用
一个符号序列$u$可以通过使用规则$r$替换其中的某个非终结符,并得到符号序列$v$,于是$v$是在$u$上使用$r$的结果,记为$u \overset{r}{\Rightarrow} v$ 一个符号序列$u$可以通过使用规则$r$替换其中的某个非终结符,并得到符号序列$v$,于是$v$是在$u$上使用$r$的结果,记为$u \overset{r}{\Rightarrow} v$
...@@ -1003,11 +1074,12 @@ S=\{\textrm{IP}\} \nonumber ...@@ -1003,11 +1074,12 @@ S=\{\textrm{IP}\} \nonumber
\input{./Chapter2/Figures/figure-usage-of-regulation} \input{./Chapter2/Figures/figure-usage-of-regulation}
\end{center} \end{center}
\end{definition} \end{definition}
%-------------------------------------------
\parinterval 给定起始非终结符,可以不断地使用规则,最终生成一个终结符串,这个过程也被称为{\small\bfnew{推导}}\index{推导}(Derivation)\index{Derivation}。形式化的定义为: \parinterval 给定起始非终结符,可以不断地使用规则,最终生成一个终结符串,这个过程也被称为{\small\bfnew{推导}}\index{推导}(Derivation)\index{Derivation}。形式化的定义为:
\vspace{0.5em}
%------------------------------------------- %-------------------------------------------
\vspace{0.5em}
\begin{definition} 推导 \begin{definition} 推导
给定一个文法$G=<N,\Sigma,R,S>$,对于一个字符串序 \\ 给定一个文法$G=<N,\Sigma,R,S>$,对于一个字符串序 \\
...@@ -1020,10 +1092,15 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1020,10 +1092,15 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item $\forall i \in [0,n], s_i \in (N\cup\Sigma)^*$ \hspace{3.5em} $\lhd$ $s_i$为合法的字符串 \item $\forall i \in [0,n], s_i \in (N\cup\Sigma)^*$ \hspace{3.5em} $\lhd$ $s_i$为合法的字符串
\vspace{0.5em}
\item $\forall j \in [1,n], r_j \in R$ \hspace{6.3em} $\lhd$ $r_j$$G$的规则 \item $\forall j \in [1,n], r_j \in R$ \hspace{6.3em} $\lhd$ $r_j$$G$的规则
\vspace{0.5em}
\item $s_0 \in S$ \hspace{10.9em} $\lhd$ $s_0$为起始非终结符 \item $s_0 \in S$ \hspace{10.9em} $\lhd$ $s_0$为起始非终结符
\vspace{0.5em}
\item $s_n \in \Sigma^{*}$ \hspace{10.4em} $\lhd$ $s_n$为终结符序列 \item $s_n \in \Sigma^{*}$ \hspace{10.4em} $\lhd$ $s_n$为终结符序列
\vspace{0.5em}
\end{itemize} \end{itemize}
\vspace{0.8em} \vspace{0.8em}
...@@ -1032,8 +1109,8 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1032,8 +1109,8 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
%------------------------------------------- %-------------------------------------------
\parinterval 比如,使用前面的示例文法,可以对``猫 喜欢 吃 鱼''进行分析,并形成句法分析树(图\ref{fig:2.5-4})。从起始非终结符IP开始,使用唯一拥有IP作为左部的规则$r_8$推导出NP和VP,之后依次使用规则$r_5$$r_1$$r_7$$r_2$$r_6$$r_3$$r_4$,得到了完整的句法树。 \parinterval 比如,使用前面的示例文法,可以对``猫 喜欢 吃 鱼''进行分析,并形成句法分析树(图\ref{fig:2.5-4})。从起始非终结符IP开始,使用唯一拥有IP作为左部的规则$r_8$推导出NP和VP,之后依次使用规则$r_5$$r_1$$r_7$$r_2$$r_6$$r_3$$r_4$,得到了完整的句法树。
%------------------------------------------- %-------------------------------------------
% 图2.5.2.3
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-example-of-derivation} \input{./Chapter2/Figures/figure-example-of-derivation}
...@@ -1048,7 +1125,6 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1048,7 +1125,6 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
\parinterval 但是,句子和规则的推导并不是一一对应的。同一个句子,往往有很多推导的方式,这种现象被称为{\small\bfnew{歧义}}\index{歧义}(Ambiguity)\index{Ambiguity}。甚至同一棵句法树,也可以对应不同的推导。图\ref{fig:2.5-5} 给出同一棵句法树所对应的两种不同的规则推导。 \parinterval 但是,句子和规则的推导并不是一一对应的。同一个句子,往往有很多推导的方式,这种现象被称为{\small\bfnew{歧义}}\index{歧义}(Ambiguity)\index{Ambiguity}。甚至同一棵句法树,也可以对应不同的推导。图\ref{fig:2.5-5} 给出同一棵句法树所对应的两种不同的规则推导。
%------------------------------------------- %-------------------------------------------
%图2.5.2.4
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-two-different-derivation-of-regulation} \input{./Chapter2/Figures/figure-two-different-derivation-of-regulation}
...@@ -1065,7 +1141,6 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1065,7 +1141,6 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
\parinterval 不过问题又回来了,怎样才能知道什么样的推导或者句法树是``最佳''的呢?对于语言学专家来说,可以很确定的分辨出哪些句法树是正确的,哪些句法树是错误。甚至对于普通人,也通过一些课本中学到知识产生一些模糊的判断。而计算机如何进行判别呢?沿着前面介绍的统计建模的思想,计算机可以得出不同句法树出现的概率,进而选择概率最高的句法树作为输出,而这正是统计句法分析所做的事情 \parinterval 不过问题又回来了,怎样才能知道什么样的推导或者句法树是``最佳''的呢?对于语言学专家来说,可以很确定的分辨出哪些句法树是正确的,哪些句法树是错误。甚至对于普通人,也通过一些课本中学到知识产生一些模糊的判断。而计算机如何进行判别呢?沿着前面介绍的统计建模的思想,计算机可以得出不同句法树出现的概率,进而选择概率最高的句法树作为输出,而这正是统计句法分析所做的事情
%------------------------------------------- %-------------------------------------------
%图2.5.2.5
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-perspectives-of-expert-ordinary-and-syntactic-parser} \input{./Chapter2/Figures/figure-perspectives-of-expert-ordinary-and-syntactic-parser}
...@@ -1075,8 +1150,8 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1075,8 +1150,8 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
%------------------------------------------- %-------------------------------------------
\parinterval 在统计句法分析中,需要对每个推导进行统计建模,于是定义一个模型$\textrm{P}( \cdot )$,对于任意的推导$d$,都可以用$\textrm{P}(d)$计算出推导$d$的概率。这样,给定一个输入句子,我们可以对所有可能的推导用$\textrm{P}(d)$计算其概率值,并选择概率最大的结果作为句法分析的结果输出(图\ref{fig:2.5-7})。 \parinterval 在统计句法分析中,需要对每个推导进行统计建模,于是定义一个模型$\textrm{P}( \cdot )$,对于任意的推导$d$,都可以用$\textrm{P}(d)$计算出推导$d$的概率。这样,给定一个输入句子,我们可以对所有可能的推导用$\textrm{P}(d)$计算其概率值,并选择概率最大的结果作为句法分析的结果输出(图\ref{fig:2.5-7})。
%------------------------------------------- %-------------------------------------------
%图2.5.2.6
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-probability-values-corresponding-to-different-derivations} \input{./Chapter2/Figures/figure-probability-values-corresponding-to-different-derivations}
...@@ -1085,20 +1160,30 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{ ...@@ -1085,20 +1160,30 @@ s_0 \overset{r_1}{\Rightarrow} s_1 \overset{r_2}{\Rightarrow} s_2 \overset{r_3}{
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%----------------------------------------------------------------------------------------
% NEW SUB-SECTION
%----------------------------------------------------------------------------------------
\subsection{规则和推导的概率} \subsection{规则和推导的概率}
\parinterval 对句法树进行概率化,首先要对使用的规则进行概率化。为了达到这个目的,可以使用{\small\bfnew{概率上下文无关文法}}\index{概率上下文无关文法}(Probabilistic Context-Free Grammar)\index{Probabilistic Context-Free Grammar},它是上下文无关文法的一种扩展。 \parinterval 对句法树进行概率化,首先要对使用的规则进行概率化。为了达到这个目的,可以使用{\small\bfnew{概率上下文无关文法}}\index{概率上下文无关文法}(Probabilistic Context-Free Grammar)\index{Probabilistic Context-Free Grammar},它是上下文无关文法的一种扩展。
\vspace{0.5em}
%------------------------------------------- %-------------------------------------------
\vspace{0.5em}
\begin{definition} 概率上下文无关文法 \begin{definition} 概率上下文无关文法
一个概率上下文无关文法可以被视为一个系统$G=<N,\Sigma,R,S>$,其中 一个概率上下文无关文法可以被视为一个系统$G=<N,\Sigma,R,S>$,其中
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item $N$为一个非终结符集合 \item $N$为一个非终结符集合
\vspace{0.5em}
\item $\Sigma$为一个终结符集合 \item $\Sigma$为一个终结符集合
\vspace{0.5em}
\item $R$为一个规则(产生式)集合,每条规则 $r \in R$的形式为$p:X \to Y_1Y_2...Y_n$,其中$X \in N$, $Y_i \in N \cup \Sigma$,每个$r$都对应一个概率$p$,表示其生成的可能性。 \item $R$为一个规则(产生式)集合,每条规则 $r \in R$的形式为$p:X \to Y_1Y_2...Y_n$,其中$X \in N$, $Y_i \in N \cup \Sigma$,每个$r$都对应一个概率$p$,表示其生成的可能性。
\vspace{0.5em}
\item $S$为一个起始符号集合且$S \subseteq N$ \item $S$为一个起始符号集合且$S \subseteq N$
\vspace{0.5em}
\end{itemize} \end{itemize}
\end{definition} \end{definition}
%------------------------------------------- %-------------------------------------------
...@@ -1142,7 +1227,6 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber ...@@ -1142,7 +1227,6 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber
\parinterval\ref{fig:2.5-8}展示了通过这种方法计算规则概率的过程。与词法分析类似,可以统计树库中规则左部和右部同时出现的次数,除以规则左部出现的全部次数,所得的结果就是所求规则的概率。这种方法也是典型的相对频度估计。但是如果规则左部和右部同时出现的次数为0时是否代表这个规则概率是0呢?遇到这种情况,可以使用平滑方法对概率进行平滑处理,具体思路可参考\ref{sec2:smoothing}节内容。 \parinterval\ref{fig:2.5-8}展示了通过这种方法计算规则概率的过程。与词法分析类似,可以统计树库中规则左部和右部同时出现的次数,除以规则左部出现的全部次数,所得的结果就是所求规则的概率。这种方法也是典型的相对频度估计。但是如果规则左部和右部同时出现的次数为0时是否代表这个规则概率是0呢?遇到这种情况,可以使用平滑方法对概率进行平滑处理,具体思路可参考\ref{sec2:smoothing}节内容。
%------------------------------------------- %-------------------------------------------
% 图2.5.3.1
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-evaluation-of-probability-for-grammar} \input{./Chapter2/Figures/figure-evaluation-of-probability-for-grammar}
...@@ -1158,7 +1242,6 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber ...@@ -1158,7 +1242,6 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber
\end{equation} \end{equation}
%------------------------------------------- %-------------------------------------------
% 图2.5.3.2
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter2/Figures/figure-process-of-statistical-syntax-analysis} \input{./Chapter2/Figures/figure-process-of-statistical-syntax-analysis}
...@@ -1169,8 +1252,10 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber ...@@ -1169,8 +1252,10 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber
\parinterval 在获取统计分析模型后,就可以使用模型对任意句子进行分析,计算每个句法分析树的概率,并输出概率最高的树作为句法分析的结果。 \parinterval 在获取统计分析模型后,就可以使用模型对任意句子进行分析,计算每个句法分析树的概率,并输出概率最高的树作为句法分析的结果。
%------------------------------------------- %----------------------------------------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % NEW SECTION
%----------------------------------------------------------------------------------------
\sectionnewpage \sectionnewpage
\section{小结及深入阅读} \label{sec2:summary} \section{小结及深入阅读} \label{sec2:summary}
...@@ -1180,10 +1265,12 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber ...@@ -1180,10 +1265,12 @@ r_6: & & \textrm{VP} \to \textrm{VV}\ \textrm{NN} \nonumber
\begin{adjustwidth}{1em}{} \begin{adjustwidth}{1em}{}
\begin{itemize} \begin{itemize}
\vspace{0.5em}
\item 在建模方面,本章介绍的三个任务均采用的是基于人工先验知识进行模型设计的思路。也就是,问题所表达的现象被``一步一步''生成出来。这是一种典型的生成式建模思想,它把要解决的问题看作一些观测结果的隐含变量(比如,句子是观测结果,分词结果是隐含在背后的变量),之后通过对隐含变量生成观测结果的过程进行建模,以达到对问题进行数学描述的目的。这类模型一般需要依赖一些独立性假设,假设的合理性对最终的性能有较大影响。相对于{\small\sffamily\bfseries{生成模型}}\index{生成模型}(Generative Model)\index{Generative Model},另一类方法{\small\sffamily\bfseries{判别模型}}\index{判别模型}(Discriminative Model)\index{Discriminative Model},它直接描述了从隐含变量生成观测结果的过程,这样对问题的建模更加直接,同时这类模型可以更加灵活的引入不同的特征。判别模型在自然语言处理中也有广泛应用\upcite{shannon1948mathematical}\upcite{ng2002discriminative}。 在本书的第四章也会使用到判别式模型。 \item 在建模方面,本章介绍的三个任务均采用的是基于人工先验知识进行模型设计的思路。也就是,问题所表达的现象被``一步一步''生成出来。这是一种典型的生成式建模思想,它把要解决的问题看作一些观测结果的隐含变量(比如,句子是观测结果,分词结果是隐含在背后的变量),之后通过对隐含变量生成观测结果的过程进行建模,以达到对问题进行数学描述的目的。这类模型一般需要依赖一些独立性假设,假设的合理性对最终的性能有较大影响。相对于{\small\sffamily\bfseries{生成模型}}\index{生成模型}(Generative Model)\index{Generative Model},另一类方法{\small\sffamily\bfseries{判别模型}}\index{判别模型}(Discriminative Model)\index{Discriminative Model},它直接描述了从隐含变量生成观测结果的过程,这样对问题的建模更加直接,同时这类模型可以更加灵活的引入不同的特征。判别模型在自然语言处理中也有广泛应用\upcite{shannon1948mathematical}\upcite{ng2002discriminative}。 在本书的第四章也会使用到判别式模型。
\vspace{0.5em}
\item 从现在自然语言处理的前沿看,基于端到端学习的深度学习方法在很多任务中都取得了领先的性能。但是,本章并没有涉及深度学习及相关方法,这是由于笔者认为:对问题的建模是自然语言处理的基础,对问题的本质刻画并不会因为方法的改变而改变。因此,本章的内容没有太多的陷入到更加复杂的模型和算法设计中,相反,我们希望关注对基本问题的理解和描述。不过,一些前沿方法仍可以作为参考,包括:基于条件随机场和双向长短时记忆模型的序列标注模型\upcite{lafferty2001conditional}\upcite{huang2015bidirectional}\upcite{ma2016end}、神经语言模型\upcite{bengio2003neural}\upcite{mikolov2010recurrent}、神经句法分析模型\upcite{chen2014fast}\upcite{zhu2015long} \item 从现在自然语言处理的前沿看,基于端到端学习的深度学习方法在很多任务中都取得了领先的性能。但是,本章并没有涉及深度学习及相关方法,这是由于笔者认为:对问题的建模是自然语言处理的基础,对问题的本质刻画并不会因为方法的改变而改变。因此,本章的内容没有太多的陷入到更加复杂的模型和算法设计中,相反,我们希望关注对基本问题的理解和描述。不过,一些前沿方法仍可以作为参考,包括:基于条件随机场和双向长短时记忆模型的序列标注模型\upcite{lafferty2001conditional}\upcite{huang2015bidirectional}\upcite{ma2016end}、神经语言模型\upcite{bengio2003neural}\upcite{mikolov2010recurrent}、神经句法分析模型\upcite{chen2014fast}\upcite{zhu2015long}
\vspace{0.5em}
\item 此外,本章并没有对模型的推断方法进行深入介绍。比如,对于一个句子如何有效的找到概率最大的分词结果?显然,简单枚举是不可行的。对于这类问题比较简单的解决方法是使用动态规划\upcite{huang2008advanced}。如果使用动态规划的条件不满足,可以考虑使用更加复杂的搜索策略,并配合一定剪枝方法。实际上,无论是$n$-gram语言模型还是简单的上下文无关文法都有高效的推断方法。比如,$n$-gram语言模型可以被视为概率有限状态自动机,因此可以直接使用成熟的自动机工具。对于更复杂的句法分析问题,可以考虑使用移进-规约方法来解决推断问题\upcite{aho1972theory} \item 此外,本章并没有对模型的推断方法进行深入介绍。比如,对于一个句子如何有效的找到概率最大的分词结果?显然,简单枚举是不可行的。对于这类问题比较简单的解决方法是使用动态规划\upcite{huang2008advanced}。如果使用动态规划的条件不满足,可以考虑使用更加复杂的搜索策略,并配合一定剪枝方法。实际上,无论是$n$-gram语言模型还是简单的上下文无关文法都有高效的推断方法。比如,$n$-gram语言模型可以被视为概率有限状态自动机,因此可以直接使用成熟的自动机工具。对于更复杂的句法分析问题,可以考虑使用移进-规约方法来解决推断问题\upcite{aho1972theory}
\vspace{0.5em}
\end{itemize} \end{itemize}
\end{adjustwidth} \end{adjustwidth}
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
\indexentry{源语言|hyperpage}{17}
\indexentry{Source Language|hyperpage}{17}
\indexentry{目标语言|hyperpage}{17}
\indexentry{Target Language|hyperpage}{17}
\indexentry{机器翻译|hyperpage}{18}
\indexentry{Machine Translation|hyperpage}{18}
\indexentry{数据驱动|hyperpage}{23}
\indexentry{Data-Driven|hyperpage}{23}
\indexentry{编码器-解码器|hyperpage}{30}
\indexentry{encoder-decoder|hyperpage}{30}
\indexentry{质量评价|hyperpage}{32}
\indexentry{Quality Evaluation|hyperpage}{32}
\indexentry{无参考答案的评价|hyperpage}{32}
\indexentry{Quality Estimation|hyperpage}{32}
\indexentry{$n$元语法单元|hyperpage}{33}
\indexentry{$n$-gram准确率|hyperpage}{34}
\indexentry{$n$-gram Precision|hyperpage}{34}
\indexentry{短句惩罚因子|hyperpage}{34}
\indexentry{Brevity Penalty|hyperpage}{34}
\indexentry{分词|hyperpage}{50}
\indexentry{Segmentation|hyperpage}{50}
\indexentry{句法分析|hyperpage}{51}
\indexentry{Parsing|hyperpage}{51}
\indexentry{预处理|hyperpage}{51}
\indexentry{Pre-processing|hyperpage}{51}
\indexentry{后处理|hyperpage}{51}
\indexentry{Post-processing|hyperpage}{51}
\indexentry{事件|hyperpage}{52}
\indexentry{Event|hyperpage}{52}
\indexentry{随机事件|hyperpage}{52}
\indexentry{随机变量|hyperpage}{52}
\indexentry{Random Variable|hyperpage}{52}
\indexentry{概率|hyperpage}{52}
\indexentry{Probability|hyperpage}{52}
\indexentry{估计|hyperpage}{52}
\indexentry{估计值|hyperpage}{52}
\indexentry{Estimate|hyperpage}{52}
\indexentry{概率分布函数|hyperpage}{53}
\indexentry{概率密度函数|hyperpage}{53}
\indexentry{联合概率|hyperpage}{53}
\indexentry{Joint Probability|hyperpage}{53}
\indexentry{条件概率|hyperpage}{53}
\indexentry{Conditional Probability|hyperpage}{53}
\indexentry{边缘概率|hyperpage}{54}
\indexentry{marginal probability|hyperpage}{54}
\indexentry{全概率公式|hyperpage}{55}
\indexentry{Law of Total Probability|hyperpage}{55}
\indexentry{贝叶斯法则|hyperpage}{56}
\indexentry{Bayes' rule|hyperpage}{56}
\indexentry{熵|hyperpage}{57}
\indexentry{Entropy|hyperpage}{57}
\indexentry{自信息|hyperpage}{57}
\indexentry{Self-information|hyperpage}{57}
\indexentry{相对熵|hyperpage}{58}
\indexentry{Relative Entropy|hyperpage}{58}
\indexentry{交叉熵|hyperpage}{58}
\indexentry{Cross-entropy|hyperpage}{58}
\indexentry{分词|hyperpage}{59}
\indexentry{Segmentation|hyperpage}{59}
\indexentry{单词|hyperpage}{59}
\indexentry{Word|hyperpage}{59}
\indexentry{词|hyperpage}{59}
\indexentry{词法分析|hyperpage}{59}
\indexentry{Lexical Analysis|hyperpage}{59}
\indexentry{标注数据|hyperpage}{61}
\indexentry{Annotated Data|hyperpage}{61}
\indexentry{训练|hyperpage}{62}
\indexentry{Training|hyperpage}{62}
\indexentry{推断|hyperpage}{62}
\indexentry{Inference|hyperpage}{62}
\indexentry{参数估计|hyperpage}{63}
\indexentry{Parameter Estimation|hyperpage}{63}
\indexentry{偏置|hyperpage}{63}
\indexentry{Bias|hyperpage}{63}
\indexentry{语言模型|hyperpage}{67}
\indexentry{Language Model|hyperpage}{67}
\indexentry{语言建模|hyperpage}{67}
\indexentry{Language Modeling|hyperpage}{67}
\indexentry{极大似然估计|hyperpage}{68}
\indexentry{人工神经网络方法|hyperpage}{68}
\indexentry{未登录词|hyperpage}{69}
\indexentry{Out-of-Vocabulary Word,OOV Word|hyperpage}{69}
\indexentry{加法平滑|hyperpage}{70}
\indexentry{Additive Smoothing|hyperpage}{70}
\indexentry{古德-图灵估计法|hyperpage}{71}
\indexentry{Good-Turing Estimate|hyperpage}{71}
\indexentry{句法|hyperpage}{74}
\indexentry{Syntax|hyperpage}{74}
\indexentry{短语结构分析|hyperpage}{74}
\indexentry{Phrase Structure Parsing|hyperpage}{74}
\indexentry{依存分析|hyperpage}{74}
\indexentry{Dependency Parsing|hyperpage}{74}
\indexentry{成分分析|hyperpage}{75}
\indexentry{完全分析|hyperpage}{75}
\indexentry{Full Parsing|hyperpage}{75}
\indexentry{终结符|hyperpage}{75}
\indexentry{Terminal|hyperpage}{75}
\indexentry{预终结符|hyperpage}{75}
\indexentry{Pre-terminal|hyperpage}{75}
\indexentry{非终结符|hyperpage}{75}
\indexentry{Non-terminal|hyperpage}{75}
\indexentry{上下文无关文法|hyperpage}{76}
\indexentry{Context-Free Grammar|hyperpage}{76}
\indexentry{产生式规则|hyperpage}{77}
\indexentry{Production Rule|hyperpage}{77}
\indexentry{推导|hyperpage}{78}
\indexentry{Derivation|hyperpage}{78}
\indexentry{句子|hyperpage}{78}
\indexentry{Sentence|hyperpage}{78}
\indexentry{语言|hyperpage}{78}
\indexentry{Language|hyperpage}{78}
\indexentry{歧义|hyperpage}{78}
\indexentry{Ambiguity|hyperpage}{78}
\indexentry{消歧|hyperpage}{79}
\indexentry{Disambiguation|hyperpage}{79}
\indexentry{最左优先推导|hyperpage}{79}
\indexentry{Left-most Derivation|hyperpage}{79}
\indexentry{概率上下文无关文法|hyperpage}{80}
\indexentry{Probabilistic Context-Free Grammar|hyperpage}{80}
\indexentry{树库|hyperpage}{81}
\indexentry{Treebank|hyperpage}{81}
\indexentry{生成模型|hyperpage}{82}
\indexentry{Generative Model|hyperpage}{82}
\indexentry{判别模型|hyperpage}{82}
\indexentry{Discriminative Model|hyperpage}{82}
\indexentry{流畅度|hyperpage}{88}
\indexentry{Fluency|hyperpage}{88}
\indexentry{准确性|hyperpage}{88}
\indexentry{Accuracy|hyperpage}{88}
\indexentry{充分性|hyperpage}{88}
\indexentry{Adequacy|hyperpage}{88}
\indexentry{翻译候选|hyperpage}{89}
\indexentry{Translation Candidate|hyperpage}{89}
\indexentry{训练|hyperpage}{91}
\indexentry{Training|hyperpage}{91}
\indexentry{解码|hyperpage}{91}
\indexentry{Decoding|hyperpage}{91}
\indexentry{推断|hyperpage}{91}
\indexentry{Inference|hyperpage}{91}
\indexentry{词对齐|hyperpage}{96}
\indexentry{Word Alignment|hyperpage}{96}
\indexentry{词对齐连接|hyperpage}{96}
\indexentry{解码|hyperpage}{99}
\indexentry{Decoding|hyperpage}{99}
\indexentry{噪声信道模型|hyperpage}{102}
\indexentry{Noise Channel Model|hyperpage}{102}
\indexentry{词对齐|hyperpage}{105}
\indexentry{Word Alignment|hyperpage}{105}
\indexentry{非对称的词对齐|hyperpage}{105}
\indexentry{Asymmetric Word Alignment|hyperpage}{105}
\indexentry{空对齐|hyperpage}{105}
\indexentry{拉格朗日乘数法|hyperpage}{113}
\indexentry{The Lagrange Multiplier Method|hyperpage}{113}
\indexentry{期望最大化|hyperpage}{115}
\indexentry{Expectation Maximization|hyperpage}{115}
\indexentry{期望频次|hyperpage}{116}
\indexentry{Expected Count|hyperpage}{116}
\indexentry{产出率|hyperpage}{119}
\indexentry{繁衍率|hyperpage}{119}
\indexentry{Fertility|hyperpage}{119}
\indexentry{扭曲度|hyperpage}{122}
\indexentry{Distortion|hyperpage}{122}
\indexentry{概念单元|hyperpage}{124}
\indexentry{概念|hyperpage}{124}
\indexentry{Concept|hyperpage}{124}
\indexentry{缺陷|hyperpage}{125}
\indexentry{Deficiency|hyperpage}{125}
\indexentry{凸函数|hyperpage}{129}
\indexentry{Convex function|hyperpage}{129}
\indexentry{对称化|hyperpage}{130}
\indexentry{Symmetrization|hyperpage}{130}
\indexentry{系统偏置|hyperpage}{131}
\indexentry{System Bias|hyperpage}{131}
\indexentry{组合性翻译|hyperpage}{136}
\indexentry{Compositional Translation|hyperpage}{136}
\indexentry{短语|hyperpage}{136}
\indexentry{短语切分|hyperpage}{141}
\indexentry{Phrasal Segmentation|hyperpage}{141}
\indexentry{短语对|hyperpage}{141}
\indexentry{推导|hyperpage}{141}
\indexentry{Derivation|hyperpage}{141}
\indexentry{生成式模型|hyperpage}{144}
\indexentry{Generative Model|hyperpage}{144}
\indexentry{判别式模型|hyperpage}{144}
\indexentry{Discriminative Model|hyperpage}{144}
\indexentry{对数线性模型|hyperpage}{145}
\indexentry{Log-linear Model|hyperpage}{145}
\indexentry{短语抽取|hyperpage}{146}
\indexentry{Phrase Extraction|hyperpage}{146}
\indexentry{词汇化翻译概率|hyperpage}{149}
\indexentry{Lexical Translation Probability|hyperpage}{149}
\indexentry{短语表|hyperpage}{149}
\indexentry{Phrase Table|hyperpage}{149}
\indexentry{调序|hyperpage}{150}
\indexentry{Reordering|hyperpage}{150}
\indexentry{模型训练|hyperpage}{154}
\indexentry{Model Training|hyperpage}{154}
\indexentry{权重调优|hyperpage}{154}
\indexentry{Weight Tuning|hyperpage}{154}
\indexentry{最小错误率训练|hyperpage}{154}
\indexentry{Minimum Error Rate Training|hyperpage}{154}
\indexentry{调优集合|hyperpage}{154}
\indexentry{Tuning Set|hyperpage}{154}
\indexentry{线搜索|hyperpage}{155}
\indexentry{Line Search|hyperpage}{155}
\indexentry{格搜索|hyperpage}{156}
\indexentry{Grid Search|hyperpage}{156}
\indexentry{覆盖度模型|hyperpage}{158}
\indexentry{Coverage Model|hyperpage}{158}
\indexentry{翻译候选|hyperpage}{158}
\indexentry{Translation Candidate|hyperpage}{158}
\indexentry{翻译假设|hyperpage}{158}
\indexentry{Translation Hypothesis|hyperpage}{158}
\indexentry{剪枝|hyperpage}{159}
\indexentry{Pruning|hyperpage}{159}
\indexentry{束剪枝|hyperpage}{159}
\indexentry{Beam Pruning|hyperpage}{159}
\indexentry{直方图剪枝|hyperpage}{160}
\indexentry{Histogram Pruning|hyperpage}{160}
\indexentry{阈值剪枝|hyperpage}{160}
\indexentry{Threshold Pruning|hyperpage}{160}
\indexentry{假设重组|hyperpage}{160}
\indexentry{Hypothesis Recombination|hyperpage}{160}
\indexentry{基于层次短语的模型|hyperpage}{165}
\indexentry{Hierarchical Phrase-based Model|hyperpage}{165}
\indexentry{同步上下文无关文法|hyperpage}{165}
\indexentry{Synchronous Context-free Grammar|hyperpage}{165}
\indexentry{基于层次短语的文法|hyperpage}{166}
\indexentry{Hierarchical Phrase-based Grammar|hyperpage}{166}
\indexentry{推导|hyperpage}{167}
\indexentry{Derivation|hyperpage}{167}
\indexentry{胶水规则|hyperpage}{167}
\indexentry{Glue Rule|hyperpage}{167}
\indexentry{乔姆斯基范式|hyperpage}{171}
\indexentry{Chomsky Normal Form|hyperpage}{171}
\indexentry{跨度|hyperpage}{171}
\indexentry{Span|hyperpage}{171}
\indexentry{自下而上的分析|hyperpage}{172}
\indexentry{Top-down Parsing|hyperpage}{172}
\indexentry{束剪枝|hyperpage}{174}
\indexentry{Beam Pruning|hyperpage}{174}
\indexentry{立方剪枝|hyperpage}{176}
\indexentry{Cube Pruning|hyperpage}{176}
\indexentry{序列化|hyperpage}{179}
\indexentry{线性化|hyperpage}{179}
\indexentry{Linearization|hyperpage}{179}
\indexentry{树到串翻译规则|hyperpage}{181}
\indexentry{Tree-to-String Translation Rule|hyperpage}{181}
\indexentry{树到树翻译规则|hyperpage}{181}
\indexentry{Tree-to-Tree Translation Rule|hyperpage}{181}
\indexentry{树片段|hyperpage}{182}
\indexentry{Tree Fragment|hyperpage}{182}
\indexentry{同步树替换文法规则|hyperpage}{183}
\indexentry{Synchronous Tree Substitution Grammar Rule|hyperpage}{183}
\indexentry{边缘集合|hyperpage}{189}
\indexentry{Frontier Set|hyperpage}{189}
\indexentry{最小规则|hyperpage}{190}
\indexentry{Minimal Rules|hyperpage}{190}
\indexentry{二叉化|hyperpage}{193}
\indexentry{Binarization|hyperpage}{193}
\indexentry{基于短语的特征|hyperpage}{198}
\indexentry{基于句法的特征|hyperpage}{198}
\indexentry{有向超图|hyperpage}{199}
\indexentry{Directed Hyper-graph|hyperpage}{199}
\indexentry{超边|hyperpage}{199}
\indexentry{Hyper-edge|hyperpage}{199}
\indexentry{半环分析|hyperpage}{199}
\indexentry{Semi-ring Parsing|hyperpage}{199}
\indexentry{组合|hyperpage}{201}
\indexentry{Composition|hyperpage}{201}
\indexentry{基于串的解码|hyperpage}{202}
\indexentry{String-based Decoding|hyperpage}{202}
\indexentry{基于树的解码|hyperpage}{202}
\indexentry{Tree-based Decoding|hyperpage}{202}
\indexentry{Lexicalized Norm Form|hyperpage}{205}
\indexentry{人工神经网络|hyperpage}{211}
\indexentry{Artificial Neural Networks|hyperpage}{211}
\indexentry{神经网络|hyperpage}{211}
\indexentry{Neural Networks|hyperpage}{211}
\indexentry{深度学习|hyperpage}{212}
\indexentry{Deep Learning|hyperpage}{212}
\indexentry{连接主义|hyperpage}{213}
\indexentry{Connectionism|hyperpage}{213}
\indexentry{分布式表示|hyperpage}{213}
\indexentry{Distributed representation|hyperpage}{213}
\indexentry{符号主义|hyperpage}{213}
\indexentry{Symbolicism|hyperpage}{213}
\indexentry{端到端学习|hyperpage}{215}
\indexentry{End-to-End Learning|hyperpage}{215}
\indexentry{表示学习|hyperpage}{215}
\indexentry{Representation Learning|hyperpage}{215}
\indexentry{分布式表示|hyperpage}{216}
\indexentry{Distributed Representation|hyperpage}{216}
\indexentry{标量|hyperpage}{217}
\indexentry{Scalar|hyperpage}{217}
\indexentry{向量|hyperpage}{217}
\indexentry{Vector|hyperpage}{217}
\indexentry{矩阵|hyperpage}{217}
\indexentry{Matrix|hyperpage}{217}
\indexentry{转置|hyperpage}{218}
\indexentry{Transpose|hyperpage}{218}
\indexentry{按元素加法|hyperpage}{218}
\indexentry{Element-wise Addition|hyperpage}{218}
\indexentry{数乘|hyperpage}{219}
\indexentry{Scalar Multiplication|hyperpage}{219}
\indexentry{按元素乘积|hyperpage}{220}
\indexentry{Element-wise Product|hyperpage}{220}
\indexentry{线性映射|hyperpage}{220}
\indexentry{Linear Mapping|hyperpage}{220}
\indexentry{线性变换|hyperpage}{220}
\indexentry{Linear Transformation|hyperpage}{220}
\indexentry{范数|hyperpage}{221}
\indexentry{Norm|hyperpage}{221}
\indexentry{欧几里得范数|hyperpage}{222}
\indexentry{Euclidean Norm|hyperpage}{222}
\indexentry{Frobenius 范数|hyperpage}{222}
\indexentry{Frobenius Norm|hyperpage}{222}
\indexentry{权重|hyperpage}{223}
\indexentry{weight|hyperpage}{223}
\indexentry{张量|hyperpage}{234}
\indexentry{Tensor|hyperpage}{234}
\indexentry{阶|hyperpage}{234}
\indexentry{Rank|hyperpage}{234}
\indexentry{广播机制|hyperpage}{237}
\indexentry{向量化|hyperpage}{237}
\indexentry{Vectorization|hyperpage}{237}
\indexentry{前向传播|hyperpage}{240}
\indexentry{计算图|hyperpage}{243}
\indexentry{Computation Graph|hyperpage}{243}
\indexentry{模型参数|hyperpage}{244}
\indexentry{Model Parameters|hyperpage}{244}
\indexentry{训练|hyperpage}{244}
\indexentry{Training|hyperpage}{244}
\indexentry{有标注数据|hyperpage}{244}
\indexentry{Annotated Data/Labeled Data|hyperpage}{244}
\indexentry{有指导的训练|hyperpage}{244}
\indexentry{有监督的训练|hyperpage}{244}
\indexentry{Supervised Training|hyperpage}{244}
\indexentry{训练数据集合|hyperpage}{245}
\indexentry{Training Data Set|hyperpage}{245}
\indexentry{损失函数|hyperpage}{245}
\indexentry{Loss Function|hyperpage}{245}
\indexentry{目标函数|hyperpage}{245}
\indexentry{Objective Function|hyperpage}{245}
\indexentry{代价函数|hyperpage}{246}
\indexentry{Cost Function|hyperpage}{246}
\indexentry{梯度下降方法|hyperpage}{246}
\indexentry{Gradient Descent Method|hyperpage}{246}
\indexentry{参数更新的规则|hyperpage}{247}
\indexentry{Update Rule|hyperpage}{247}
\indexentry{学习率|hyperpage}{247}
\indexentry{Learning Rate|hyperpage}{247}
\indexentry{基于梯度的方法|hyperpage}{247}
\indexentry{Gradient-based Method|hyperpage}{247}
\indexentry{批量梯度下降|hyperpage}{247}
\indexentry{Batch Gradient Descent|hyperpage}{247}
\indexentry{随机梯度下降|hyperpage}{247}
\indexentry{Stochastic Gradient Descent|hyperpage}{247}
\indexentry{小批量梯度下降|hyperpage}{248}
\indexentry{Mini-Batch Gradient Descent|hyperpage}{248}
\indexentry{数值微分|hyperpage}{248}
\indexentry{Numerical Differentiation|hyperpage}{248}
\indexentry{截断误差|hyperpage}{249}
\indexentry{Truncation Error|hyperpage}{249}
\indexentry{舍入误差|hyperpage}{249}
\indexentry{Round-off Error|hyperpage}{249}
\indexentry{符号微分|hyperpage}{249}
\indexentry{Symbolic Differentiation|hyperpage}{249}
\indexentry{表达式膨胀|hyperpage}{249}
\indexentry{Expression Swell|hyperpage}{249}
\indexentry{自动微分|hyperpage}{249}
\indexentry{Automatic Differentiation|hyperpage}{249}
\indexentry{反向模式|hyperpage}{250}
\indexentry{Backward Mode|hyperpage}{250}
\indexentry{学习率|hyperpage}{251}
\indexentry{Learning Rate|hyperpage}{251}
\indexentry{Momentum|hyperpage}{251}
\indexentry{AdaGrad|hyperpage}{252}
\indexentry{衰减|hyperpage}{252}
\indexentry{Decay|hyperpage}{252}
\indexentry{RMSprop|hyperpage}{253}
\indexentry{Adam|hyperpage}{253}
\indexentry{数据并行|hyperpage}{254}
\indexentry{同步更新|hyperpage}{254}
\indexentry{Synchronous Update|hyperpage}{254}
\indexentry{异步更新|hyperpage}{254}
\indexentry{Asynchronous Update|hyperpage}{254}
\indexentry{参数服务器|hyperpage}{254}
\indexentry{Parameter Server|hyperpage}{254}
\indexentry{梯度消失|hyperpage}{256}
\indexentry{Gradient Vanishing|hyperpage}{256}
\indexentry{梯度爆炸|hyperpage}{256}
\indexentry{Gradient Explosion|hyperpage}{256}
\indexentry{梯度裁剪|hyperpage}{257}
\indexentry{Gradient Clipping|hyperpage}{257}
\indexentry{批量归一化|hyperpage}{258}
\indexentry{Batch Normalization|hyperpage}{258}
\indexentry{层归一化|hyperpage}{258}
\indexentry{Layer Normalization|hyperpage}{258}
\indexentry{残差网络|hyperpage}{258}
\indexentry{Residual Networks|hyperpage}{258}
\indexentry{跳接|hyperpage}{258}
\indexentry{Shortcut Connection|hyperpage}{258}
\indexentry{过拟合|hyperpage}{259}
\indexentry{Overfitting|hyperpage}{259}
\indexentry{正则化|hyperpage}{259}
\indexentry{Regularization|hyperpage}{259}
\indexentry{反向传播|hyperpage}{260}
\indexentry{back propagation|hyperpage}{260}
\indexentry{神经语言模型|hyperpage}{266}
\indexentry{Neural Language Model|hyperpage}{266}
\indexentry{前馈神经网络语言模型|hyperpage}{267}
\indexentry{Feed-forward Neural Network Language Model|hyperpage}{267}
\indexentry{循环神经网络|hyperpage}{269}
\indexentry{Recurrent Neural Network|hyperpage}{269}
\indexentry{循环神经网络语言模型|hyperpage}{269}
\indexentry{RNNLM|hyperpage}{269}
\indexentry{循环单元|hyperpage}{269}
\indexentry{RNN Cell|hyperpage}{269}
\indexentry{自注意力机制|hyperpage}{270}
\indexentry{Self-Attention Mechanism|hyperpage}{271}
\indexentry{注意力权重|hyperpage}{271}
\indexentry{Attention Weight|hyperpage}{271}
\indexentry{困惑度|hyperpage}{271}
\indexentry{Perplexity|hyperpage}{271}
\indexentry{One-hot编码|hyperpage}{272}
\indexentry{独热编码|hyperpage}{272}
\indexentry{分布式表示|hyperpage}{272}
\indexentry{Distributed Representation|hyperpage}{272}
\indexentry{词嵌入|hyperpage}{272}
\indexentry{Word Embedding|hyperpage}{272}
\indexentry{句子表示模型|hyperpage}{275}
\indexentry{句子的表示|hyperpage}{275}
\indexentry{表示学习|hyperpage}{275}
\indexentry{Representation Learning|hyperpage}{275}
\indexentry{可解释机器学习|hyperpage}{279}
\indexentry{Explainable Machine Learning|hyperpage}{279}
\indexentry{神经机器翻译|hyperpage}{281}
\indexentry{Neural Machine Translation|hyperpage}{281}
\indexentry{分布式表示|hyperpage}{283}
\indexentry{Distributed Representation|hyperpage}{283}
\indexentry{特征工程|hyperpage}{289}
\indexentry{Feature Engineering|hyperpage}{289}
\indexentry{编码器-解码器模型|hyperpage}{290}
\indexentry{Encoder-Decoder Paradigm|hyperpage}{290}
\indexentry{编码器-解码器框架|hyperpage}{290}
\indexentry{循环神经网络|hyperpage}{296}
\indexentry{Recurrent Neural Network, RNN|hyperpage}{296}
\indexentry{词嵌入|hyperpage}{298}
\indexentry{Word Embedding|hyperpage}{298}
\indexentry{表示学习|hyperpage}{298}
\indexentry{Representation Learning|hyperpage}{298}
\indexentry{生成|hyperpage}{298}
\indexentry{Generation|hyperpage}{298}
\indexentry{长短时记忆|hyperpage}{302}
\indexentry{Long Short-Term Memory|hyperpage}{302}
\indexentry{遗忘|hyperpage}{302}
\indexentry{记忆更新|hyperpage}{303}
\indexentry{输出|hyperpage}{304}
\indexentry{门循环单元|hyperpage}{304}
\indexentry{Gated Recurrent Unit,GRU|hyperpage}{304}
\indexentry{注意力权重|hyperpage}{310}
\indexentry{Attention Weight|hyperpage}{310}
\indexentry{一阶矩估计|hyperpage}{316}
\indexentry{First Moment Estimation|hyperpage}{316}
\indexentry{二阶矩估计|hyperpage}{316}
\indexentry{Second Moment Estimation|hyperpage}{316}
\indexentry{学习率|hyperpage}{316}
\indexentry{Learning Rate|hyperpage}{316}
\indexentry{逐渐预热|hyperpage}{317}
\indexentry{Gradual Warmup|hyperpage}{317}
\indexentry{分段常数衰减|hyperpage}{318}
\indexentry{Piecewise Constant Decay|hyperpage}{318}
\indexentry{数据并行|hyperpage}{318}
\indexentry{模型并行|hyperpage}{318}
\indexentry{全搜索|hyperpage}{319}
\indexentry{Full Search|hyperpage}{319}
\indexentry{贪婪搜索|hyperpage}{321}
\indexentry{Greedy Search|hyperpage}{321}
\indexentry{束搜索|hyperpage}{321}
\indexentry{Beam Search|hyperpage}{321}
\indexentry{自回归模型|hyperpage}{321}
\indexentry{Autoregressive Model|hyperpage}{321}
\indexentry{非自回归模型|hyperpage}{321}
\indexentry{Non-autoregressive Model|hyperpage}{321}
\indexentry{自注意力机制|hyperpage}{327}
\indexentry{Self-Attention|hyperpage}{327}
\indexentry{特征提取|hyperpage}{328}
\indexentry{自注意力子层|hyperpage}{328}
\indexentry{Self-attention Sub-layer|hyperpage}{328}
\indexentry{前馈神经网络子层|hyperpage}{328}
\indexentry{Feed-forward Sub-layer|hyperpage}{328}
\indexentry{残差连接|hyperpage}{328}
\indexentry{Residual Connection|hyperpage}{328}
\indexentry{层正则化|hyperpage}{329}
\indexentry{Layer Normalization|hyperpage}{329}
\indexentry{编码-解码注意力子层|hyperpage}{329}
\indexentry{Encoder-decoder Attention Sub-layer|hyperpage}{329}
\indexentry{词嵌入|hyperpage}{330}
\indexentry{Word Embedding|hyperpage}{330}
\indexentry{位置编码|hyperpage}{330}
\indexentry{Position Embedding|hyperpage}{330}
\indexentry{点乘注意力|hyperpage}{333}
\indexentry{Scaled Dot-Product Attention|hyperpage}{333}
\indexentry{多头注意力|hyperpage}{336}
\indexentry{Multi-head Attention|hyperpage}{336}
\indexentry{残差连接|hyperpage}{337}
\indexentry{短连接|hyperpage}{337}
\indexentry{Short-cut Connection|hyperpage}{337}
\indexentry{后正则化|hyperpage}{338}
\indexentry{Post-norm|hyperpage}{338}
\indexentry{前正则化|hyperpage}{338}
\indexentry{Pre-norm|hyperpage}{338}
\indexentry{交叉熵损失|hyperpage}{339}
\indexentry{Cross Entropy Loss|hyperpage}{339}
\indexentry{预热|hyperpage}{340}
\indexentry{Warmup|hyperpage}{340}
\indexentry{小批量训练|hyperpage}{340}
\indexentry{Mini-batch Training|hyperpage}{340}
\indexentry{Dropout|hyperpage}{340}
\indexentry{过拟合|hyperpage}{341}
\indexentry{Over fitting|hyperpage}{341}
\indexentry{标签平滑|hyperpage}{341}
\indexentry{Label Smoothing|hyperpage}{341}
\indexentry{序列到序列的转换/生成问题|hyperpage}{342}
\indexentry{Sequence-to-Sequence Problem|hyperpage}{342}
\indexentry{未登录词|hyperpage}{353}
\indexentry{Out of Vocabulary Word,OOV Word|hyperpage}{353}
\indexentry{子词切分|hyperpage}{353}
\indexentry{Sub-word Segmentation|hyperpage}{353}
\indexentry{标准化|hyperpage}{353}
\indexentry{Normalization|hyperpage}{353}
\indexentry{数据清洗|hyperpage}{353}
\indexentry{Dada Cleaning|hyperpage}{353}
\indexentry{数据选择|hyperpage}{355}
\indexentry{Data Selection|hyperpage}{355}
\indexentry{数据过滤|hyperpage}{355}
\indexentry{Data Filtering|hyperpage}{355}
\indexentry{开放词表|hyperpage}{358}
\indexentry{Open-Vocabulary|hyperpage}{358}
\indexentry{子词|hyperpage}{359}
\indexentry{Sub-word|hyperpage}{359}
\indexentry{字节对编码|hyperpage}{359}
\indexentry{双字节编码|hyperpage}{359}
\indexentry{Byte Pair Encoding,BPE|hyperpage}{359}
\indexentry{正则化|hyperpage}{362}
\indexentry{Regularization|hyperpage}{362}
\indexentry{过拟合问题|hyperpage}{362}
\indexentry{Overfitting Problem|hyperpage}{362}
\indexentry{反问题|hyperpage}{362}
\indexentry{Inverse Problem|hyperpage}{362}
\indexentry{适定的|hyperpage}{362}
\indexentry{Well-posed|hyperpage}{362}
\indexentry{不适定问题|hyperpage}{362}
\indexentry{Ill-posed Problem|hyperpage}{362}
\indexentry{降噪|hyperpage}{363}
\indexentry{Denoising|hyperpage}{363}
\indexentry{泛化|hyperpage}{363}
\indexentry{Generalization|hyperpage}{363}
\indexentry{标签平滑|hyperpage}{365}
\indexentry{Label Smoothing|hyperpage}{365}
\indexentry{相互适应|hyperpage}{366}
\indexentry{Co-Adaptation|hyperpage}{366}
\indexentry{集成学习|hyperpage}{367}
\indexentry{Ensemble Learning|hyperpage}{367}
\indexentry{容量|hyperpage}{368}
\indexentry{Capacity|hyperpage}{368}
\indexentry{宽残差网络|hyperpage}{369}
\indexentry{Wide Residual Network|hyperpage}{369}
\indexentry{探测任务|hyperpage}{370}
\indexentry{Probing Task|hyperpage}{370}
\indexentry{表面信息|hyperpage}{370}
\indexentry{Surface Information|hyperpage}{370}
\indexentry{语法信息|hyperpage}{370}
\indexentry{Syntactic Information|hyperpage}{370}
\indexentry{语义信息|hyperpage}{370}
\indexentry{Semantic Information|hyperpage}{370}
\indexentry{词嵌入|hyperpage}{371}
\indexentry{Embedding|hyperpage}{371}
\indexentry{数据并行|hyperpage}{371}
\indexentry{Data Parallelism|hyperpage}{371}
\indexentry{模型并行|hyperpage}{371}
\indexentry{Model Parallelism|hyperpage}{371}
\indexentry{小批量训练|hyperpage}{371}
\indexentry{Mini-batch Training|hyperpage}{371}
\indexentry{课程学习|hyperpage}{374}
\indexentry{Curriculum Learning|hyperpage}{374}
\indexentry{推断|hyperpage}{374}
\indexentry{Inference|hyperpage}{374}
\indexentry{解码|hyperpage}{374}
\indexentry{Decoding|hyperpage}{374}
\indexentry{准确性|hyperpage}{374}
\indexentry{Accuracy|hyperpage}{374}
\indexentry{时延|hyperpage}{374}
\indexentry{Latency|hyperpage}{374}
\indexentry{时延|hyperpage}{374}
\indexentry{Memory|hyperpage}{374}
\indexentry{搜索错误|hyperpage}{374}
\indexentry{Search Error|hyperpage}{374}
\indexentry{模型错误|hyperpage}{374}
\indexentry{Modeling Error|hyperpage}{374}
\indexentry{重排序|hyperpage}{376}
\indexentry{Re-ranking|hyperpage}{376}
\indexentry{双向推断|hyperpage}{376}
\indexentry{Bidirectional Inference|hyperpage}{376}
\indexentry{批量推断|hyperpage}{380}
\indexentry{Batch Inference|hyperpage}{380}
\indexentry{批量处理|hyperpage}{380}
\indexentry{Batching|hyperpage}{380}
\indexentry{二值网络|hyperpage}{382}
\indexentry{Binarized Neural Networks|hyperpage}{382}
\indexentry{自回归翻译|hyperpage}{382}
\indexentry{Autoregressive Translation|hyperpage}{382}
\indexentry{非自回归翻译|hyperpage}{382}
\indexentry{Regressive Translation|hyperpage}{382}
\indexentry{繁衍率|hyperpage}{382}
\indexentry{Fertility|hyperpage}{382}
\indexentry{偏置|hyperpage}{384}
\indexentry{Bias|hyperpage}{384}
\indexentry{退化|hyperpage}{384}
\indexentry{Degenerate|hyperpage}{384}
\indexentry{过翻译|hyperpage}{385}
\indexentry{Over Translation|hyperpage}{385}
\indexentry{欠翻译|hyperpage}{385}
\indexentry{Under Translation|hyperpage}{385}
\indexentry{充分性|hyperpage}{386}
\indexentry{Adequacy|hyperpage}{386}
\indexentry{系统融合|hyperpage}{386}
\indexentry{System Combination|hyperpage}{386}
\indexentry{假设选择|hyperpage}{387}
\indexentry{Hypothesis Selection|hyperpage}{387}
\indexentry{多样性|hyperpage}{387}
\indexentry{Diversity|hyperpage}{387}
\indexentry{重排序|hyperpage}{388}
\indexentry{Re-ranking|hyperpage}{388}
\indexentry{混淆网络|hyperpage}{389}
\indexentry{Confusion Network|hyperpage}{389}
\indexentry{动态线性层聚合方法|hyperpage}{393}
\indexentry{Dynamic Linear Combination of Layers,DLCL|hyperpage}{393}
\indexentry{相互适应|hyperpage}{397}
\indexentry{Co-adaptation|hyperpage}{397}
\indexentry{数据增强|hyperpage}{399}
\indexentry{Data Augmentation|hyperpage}{399}
\indexentry{回译|hyperpage}{399}
\indexentry{Back Translation|hyperpage}{399}
\indexentry{迭代式回译|hyperpage}{400}
\indexentry{Iterative Back Translation|hyperpage}{400}
\indexentry{前向翻译|hyperpage}{400}
\indexentry{Forward Translation|hyperpage}{400}
\indexentry{预训练|hyperpage}{401}
\indexentry{Pre-training|hyperpage}{401}
\indexentry{微调|hyperpage}{401}
\indexentry{Fine-tuning|hyperpage}{401}
\indexentry{多任务学习|hyperpage}{402}
\indexentry{Multitask Learning|hyperpage}{402}
\indexentry{模型压缩|hyperpage}{404}
\indexentry{Model Compression|hyperpage}{404}
\indexentry{学习难度|hyperpage}{404}
\indexentry{Learning Difficulty|hyperpage}{404}
\indexentry{教师模型|hyperpage}{405}
\indexentry{Teacher Model|hyperpage}{405}
\indexentry{学生模型|hyperpage}{405}
\indexentry{Student Model|hyperpage}{405}
\indexentry{基于单词的知识精炼|hyperpage}{405}
\indexentry{Word-level Knowledge Distillation|hyperpage}{405}
\indexentry{基于序列的知识精炼|hyperpage}{405}
\indexentry{Sequence-level Knowledge Distillation|hyperpage}{405}
\indexentry{中间层输出|hyperpage}{406}
\indexentry{Hint-based Knowledge Transfer|hyperpage}{406}
\indexentry{注意力分布|hyperpage}{406}
\indexentry{Attention To Attention Transfer|hyperpage}{406}
\indexentry{循环一致性|hyperpage}{409}
\indexentry{Circle Consistency|hyperpage}{409}
\indexentry{翻译中回译|hyperpage}{410}
\indexentry{On-the-fly Back-translation|hyperpage}{410}
\indexentry{网络结构搜索技术|hyperpage}{412}
\indexentry{Neural Architecture Search;NAS|hyperpage}{412}
...@@ -78,13 +78,13 @@ ...@@ -78,13 +78,13 @@
\noindent Copyright \copyright\ 2020 肖桐\ \ 朱靖波\\ \noindent Copyright \copyright\ 2020 肖桐\ \ 朱靖波\\
\noindent \textsc{东北大学自然语言处理实验室\ /\ 小牛翻译}\\ \noindent \textsc{东北大学自然语言处理实验室\ $\cdot$\ 小牛翻译}\\
\noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\ \noindent \textsc{\url{https://github.com/NiuTrans/MTBook}}\\
\noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/4.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\ \noindent {\red{Licensed under the Creative Commons Attribution-NonCommercial 4.0 Unported License (the ``License''). You may not use this file except in compliance with the License. You may obtain a copy of the License at \url{http://creativecommons.org/licenses/by-nc/4.0}. Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an \textsc{``as is'' basis, without warranties or conditions of any kind}, either express or implied. See the License for the specific language governing permissions and limitations under the License.}}\\
\noindent \textit{First Edition, April 2020} \noindent \textit{\today}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% ACKNOWLEDGE PAGE % ACKNOWLEDGE PAGE
...@@ -121,14 +121,14 @@ ...@@ -121,14 +121,14 @@
% CHAPTERS % CHAPTERS
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\include{Chapter1/chapter1} %\include{Chapter1/chapter1}
\include{Chapter2/chapter2} %\include{Chapter2/chapter2}
\include{Chapter3/chapter3} %\include{Chapter3/chapter3}
\include{Chapter4/chapter4} %\include{Chapter4/chapter4}
\include{Chapter5/chapter5} %\include{Chapter5/chapter5}
\include{Chapter6/chapter6} %\include{Chapter6/chapter6}
\include{Chapter7/chapter7} %\include{Chapter7/chapter7}
\include{ChapterAppend/chapterappend} %\include{ChapterAppend/chapterappend}
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论