Commit daa4b8f3 by 曹润柘

合并分支 'caorunzhe' 到 'master'

Caorunzhe

查看合并请求 !205
parents 508811a4 52e9cd70
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
%%% 句法树(层次短语) %%% 句法树(层次短语)
\begin{tikzpicture} \begin{tikzpicture}
{\small {\small
\begin{scope}[sibling distance=15pt, level distance = 20pt] \begin{scope}[sibling distance=25pt, level distance = 20pt]
{\scriptsize {\scriptsize
\Tree[.\node(r){IP}; \Tree[.\node(r){IP};
[.\node(n11){NP}; [.\node(n21){PN}; [.\node(l1){};]]] [.\node(n11){NP}; [.\node(n21){PN}; [.\node(l1){};]]]
......
...@@ -504,15 +504,15 @@ ...@@ -504,15 +504,15 @@
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
\subsection{经典书籍} \subsection{经典书籍}
\parinterval 首先,推荐一本书$Statistical\ Machine\ Translation$\upcite{koehn2009statistical},其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。此外,作者在该书的最新版本中增加了神经机器翻译的章节,方便研究人员全面了解机器翻译的最新发展趋势\upcite{DBLP:journals/corr/abs-1709-07809} \parinterval 首先,推荐一本书\emph{Statistical Machine Translation}\upcite{koehn2009statistical},其作者是机器翻译领域著名学者Philipp Koehn教授。该书是机器翻译领域内的经典之作,介绍了统计机器翻译技术的进展。该书从语言学和概率学两个方面介绍了统计机器翻译的构成要素,然后介绍了统计机器翻译的主要模型:基于词、基于短语和基于树的模型,以及机器翻译评价、语言建模、判别式训练等方法。此外,作者在该书的最新版本中增加了神经机器翻译的章节,方便研究人员全面了解机器翻译的最新发展趋势\upcite{DBLP:journals/corr/abs-1709-07809}
\parinterval $Foundations\ of\ Statistical\ Natural\ Language\ Processing$\upcite{manning1999foundations}中文译名《统计自然语言处理基础》,作者是自然语言处理领域的权威Chris Manning教授和Hinrich Sch$\ddot{\textrm{u}}$tze教授。该书对统计自然语言处理方法进行了全面介绍。书中讲解了统计自然语言处理所需的语言学和概率论基础知识,介绍了机器翻译评价、语言建模、判别式训练以及整合语言学信息等基础方法。其中也包含了构建自然语言处理工具所需的基本理论和算法,并且涵盖了数学和语言学基础内容以及相关的统计方法。 \parinterval \emph{Foundations of Statistical Natural Language Processing}\upcite{manning1999foundations}中文译名《统计自然语言处理基础》,作者是自然语言处理领域的权威Chris Manning教授和Hinrich Sch$\ddot{\textrm{u}}$tze教授。该书对统计自然语言处理方法进行了全面介绍。书中讲解了统计自然语言处理所需的语言学和概率论基础知识,介绍了机器翻译评价、语言建模、判别式训练以及整合语言学信息等基础方法。其中也包含了构建自然语言处理工具所需的基本理论和算法,并且涵盖了数学和语言学基础内容以及相关的统计方法。
\parinterval 《统计自然语言处理(第2版)》\upcite{宗成庆2013统计自然语言处理}由中国科学院自动化所宗成庆教授所著。该书中系统介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详细阐述。可供从事自然语言处理、机器翻译等研究的相关人员参考。 \parinterval 《统计自然语言处理(第2版)》\upcite{宗成庆2013统计自然语言处理}由中国科学院自动化所宗成庆教授所著。该书中系统介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详细阐述。可供从事自然语言处理、机器翻译等研究的相关人员参考。
\parinterval 由Ian Goodfellow、Yoshua Bengio、Aaron Courville三位机器学习领域的学者所写的\emph{Deep Learning}\upcite{Goodfellow-et-al-2016}也是值得一读的参考书。其讲解了有关深度学习常用的方法,其中很多都会在深度学习模型设计和使用中用到。同时在该书的应用一章中也简单讲解了神经机器翻译的任务定义和发展过程。 \parinterval 由Ian Goodfellow、Yoshua Bengio、Aaron Courville三位机器学习领域的学者所写的\emph{Deep Learning}\upcite{Goodfellow-et-al-2016}也是值得一读的参考书。其讲解了有关深度学习常用的方法,其中很多都会在深度学习模型设计和使用中用到。同时在该书的应用一章中也简单讲解了神经机器翻译的任务定义和发展过程。
\parinterval $Neural\ Network\ Methods\ for\ Natural\ Language\ Processing$\upcite{goldberg2017neural}是Yoav Goldberg编写的面向自然语言处理的深度学习参考书。相比\emph{Deep Learning},该书聚焦在自然语言处理中的深度学习方法,内容更加易读,非常适合刚入门自然语言处理及深度学习应用的人员参考。 \parinterval \emph{Neural Network Methods for Natural Language Processing}\upcite{goldberg2017neural}是Yoav Goldberg编写的面向自然语言处理的深度学习参考书。相比\emph{Deep Learning},该书聚焦在自然语言处理中的深度学习方法,内容更加易读,非常适合刚入门自然语言处理及深度学习应用的人员参考。
\parinterval 《机器学习》\upcite{周志华2016机器学习}由南京大学周志华教授所著,作为机器学习领域入门教材,该书尽可能地涵盖了机器学习基础知识的各个方面,试图尽可能少地使用数学知识介绍机器学习方法与思想。 \parinterval 《机器学习》\upcite{周志华2016机器学习}由南京大学周志华教授所著,作为机器学习领域入门教材,该书尽可能地涵盖了机器学习基础知识的各个方面,试图尽可能少地使用数学知识介绍机器学习方法与思想。
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
domain=0.01:1, domain=0.01:1,
enlarge x limits=true, enlarge x limits=true,
enlarge y limits={upper}, enlarge y limits={upper},
legend style={draw=none}, legend style={draw=none,thick},
xmin=0, xmin=0,
xmax=1, xmax=1,
ymin=0, ymin=0,
......
...@@ -51,7 +51,7 @@ ...@@ -51,7 +51,7 @@
\parinterval {\small\bfnew{概率}}\index{概率}(Probability)\index{Probability}是度量随机事件呈现其每个可能状态的可能性的数值,本质上它是一个测度函数\upcite{mao-prob-book-2011,kolmogorov2018foundations}。概率的大小表征了随机事件在一次试验中发生的可能性大小。用$\funp{P}(\cdot )$表示一个随机事件的可能性,即事件发生的概率。比如$\funp{P}(\textrm{太阳从东方升起})$表示“太阳从东方升起”的可能性,同理,$\funp{P}(A=B)$ 表示的就是“$A=B$”这件事的可能性。 \parinterval {\small\bfnew{概率}}\index{概率}(Probability)\index{Probability}是度量随机事件呈现其每个可能状态的可能性的数值,本质上它是一个测度函数\upcite{mao-prob-book-2011,kolmogorov2018foundations}。概率的大小表征了随机事件在一次试验中发生的可能性大小。用$\funp{P}(\cdot )$表示一个随机事件的可能性,即事件发生的概率。比如$\funp{P}(\textrm{太阳从东方升起})$表示“太阳从东方升起”的可能性,同理,$\funp{P}(A=B)$ 表示的就是“$A=B$”这件事的可能性。
\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$越来越大时,相对概率也就越来越接近真实概率$\funp{P}(x_i)$,即$\lim_{N \to \infty}\frac{n(x_i )}{N}=\funp{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$越来越大时,相对概率也就越来越接近真实概率$\funp{P}(x_i)$,即$\lim_{N \to \infty}\frac{n(x_i )}{N}=\funp{P}(x_i)$。 实际上,很多概率模型都等同于相对频次估计。比如,对于一个服从多项式分布的变量,它的极大似然估计就可以用相对频次估计实现。
\parinterval 概率函数是用函数形式给出离散变量每个取值发生的概率,其实就是将变量的概率分布转化为数学表达形式。如果把$A$看做一个离散变量,$a$看做变量$A$的一个取值,那么$\funp{P}(A)$被称作变量$A$的概率函数,$\funp{P}(A=a)$被称作$A = a$的概率值,简记为$\funp{P}(a)$。例如,在相同条件下掷一个骰子50次,用$A$表示投骰子出现的点数这个离散变量,$a_i$表示点数的取值,$\funp{P}_i$表示$A=a_i$的概率值。表\ref{tab:2-1}$A$的概率分布,给出了$A$的所有取值及其概率。 \parinterval 概率函数是用函数形式给出离散变量每个取值发生的概率,其实就是将变量的概率分布转化为数学表达形式。如果把$A$看做一个离散变量,$a$看做变量$A$的一个取值,那么$\funp{P}(A)$被称作变量$A$的概率函数,$\funp{P}(A=a)$被称作$A = a$的概率值,简记为$\funp{P}(a)$。例如,在相同条件下掷一个骰子50次,用$A$表示投骰子出现的点数这个离散变量,$a_i$表示点数的取值,$\funp{P}_i$表示$A=a_i$的概率值。表\ref{tab:2-1}$A$的概率分布,给出了$A$的所有取值及其概率。
...@@ -68,7 +68,7 @@ ...@@ -68,7 +68,7 @@
\end{table} \end{table}
%-------------------------------------------------------------------- %--------------------------------------------------------------------
\parinterval 除此之外,概率函数$\funp{P}(\cdot)$还具有非负性、归一性等特点。非负性是指,所有的概率函数$\funp{P}(\cdot)$都必须是大于等于0的数值,概率函数中不可能出现负数,即$\forall{x},\funp{P}{(x)}\geq{0}$。归一性,又称规范性,简单的说就是所有可能发生的事件的概率总和为1,即$\sum_{x}\funp{P}{(x)}={1}$ \parinterval 除此之外,概率函数$\funp{P}(\cdot)$还具有非负性、归一性等特点。非负性是指,所有的概率函数$\funp{P}(\cdot)$的数值都必须大于等于0,概率函数中不可能出现负数,即$\forall{x},\funp{P}{(x)}\geq{0}$。归一性,又称规范性,简单来说就是所有可能发生的事件的概率总和为1,即$\sum_{x}\funp{P}{(x)}={1}$
\parinterval 对于离散变量$A$$\funp{P}(A=a)$是个确定的值,可以表示事件$A=a$的可能性大小;而对于连续变量,求在某个定点处的概率是无意义的,只能求其落在某个取值区间内的概率。因此,用{\small\sffamily\bfseries{概率分布函数}}\index{概率分布函数}$F(x)${\small\sffamily\bfseries{概率密度函数}}\index{概率密度函数}$f(x)$来统一描述随机变量取值的分布情况(如图\ref{fig:2-1})。概率分布函数$F(x)$表示取值小于等于某个值的概率,是概率的累加(或积分)形式。假设$A$是一个随机变量,$a$是任意实数,将函数$F(a)=\funp{P}\{A\leq a\}$定义为$A$的分布函数。通过分布函数,可以清晰地表示任何随机变量的概率分布情况。 \parinterval 对于离散变量$A$$\funp{P}(A=a)$是个确定的值,可以表示事件$A=a$的可能性大小;而对于连续变量,求在某个定点处的概率是无意义的,只能求其落在某个取值区间内的概率。因此,用{\small\sffamily\bfseries{概率分布函数}}\index{概率分布函数}$F(x)${\small\sffamily\bfseries{概率密度函数}}\index{概率密度函数}$f(x)$来统一描述随机变量取值的分布情况(如图\ref{fig:2-1})。概率分布函数$F(x)$表示取值小于等于某个值的概率,是概率的累加(或积分)形式。假设$A$是一个随机变量,$a$是任意实数,将函数$F(a)=\funp{P}\{A\leq a\}$定义为$A$的分布函数。通过分布函数,可以清晰地表示任何随机变量的概率分布情况。
...@@ -150,15 +150,14 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -150,15 +150,14 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\parinterval 推广到$n$个事件,可以得到{\small\bfnew{链式法则}}\index{链式法则}(Chain Rule\index{Chain Rule})的公式: \parinterval 推广到$n$个事件,可以得到{\small\bfnew{链式法则}}\index{链式法则}(Chain Rule\index{Chain Rule})的公式:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(x_1,x_2, \ldots ,x_n)=\funp{P}(x_1) \prod_{i=2}^n \funp{P}(x_i \mid x_1,x_2, \ldots ,x_{i-1}) \funp{P}(x_1,x_2, \ldots ,x_n)=\funp{P}(x_1) \prod_{i=2}^n \funp{P}(x_i \mid x_1, \ldots ,x_{i-1})
\label{eq:2-6} \label{eq:2-6}
\end{eqnarray} \end{eqnarray}
\parinterval 链式法则经常被用于对事件序列的建模。比如,事件A依赖于事件B,事件B依赖于事件C,应用链式法有: \parinterval 链式法则经常被用于对事件序列的建模。比如,在事件$A$与事件$C$相互独立时,事件$A$$B$$C$的联合概率可以被表示为:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(A,B,C) & = & \funp{P}(A \mid B,C)\funp{P}(B \mid C)\funp{P}(C) \nonumber \\ \funp{P}(A,B,C) & = & \funp{P}(A)\funp{P}(B \mid A)\funp{P}(C \mid A,B) \nonumber \\
& = & \funp{P}(A \mid B)\funp{P}(B \mid C)\funp{P}(C) & = & \funp{P}(A)\funp{P}(B \mid A)\funp{P}(C \mid B)
\label{eq:chain-rule-example} \label{eq:chain-rule-example}
\end{eqnarray} \end{eqnarray}
...@@ -259,7 +258,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -259,7 +258,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\label{eq:2-14} \label{eq:2-14}
\end{eqnarray} \end{eqnarray}
\parinterval 一个分布的信息熵也就是从该分布中得到的一个事件的期望信息量。比如,$a$$b$$c$$d$四支球队,四支队伍夺冠的概率分别是$\funp{P}_1$$\funp{P}_2$$\funp{P}_3$$\funp{P}_4$,某个人对比赛不感兴趣但是又想知道哪只球队夺冠,通过使用二分法2次就确定哪支球队夺冠了。但假设这四只球队中$c$的实力可以碾压其他球队,那么猜1次就可以确定。所以对于前面这种情况,哪只球队夺冠的信息量较高,信息熵也相对较高;对于后面这种情况,因为结果是容易猜到的,信息量和信息熵也就相对较低。因此可以得知:分布越尖锐熵越低分布越均匀熵越高。 \parinterval 一个分布的信息熵也就是从该分布中得到的一个事件的期望信息量。比如,$a$$b$$c$$d$四支球队,四支队伍夺冠的概率分别是$\funp{P}_1$$\funp{P}_2$$\funp{P}_3$$\funp{P}_4$,某个人对比赛不感兴趣但是又想知道哪只球队夺冠,通过使用二分法2次就确定哪支球队夺冠了。但假设这四只球队中$c$的实力可以碾压其他球队,那么猜1次就可以确定。所以对于前面这种情况,哪只球队夺冠的信息量较高,信息熵也相对较高;对于后面这种情况,因为结果是容易猜到的,信息量和信息熵也就相对较低。因此可以得知:分布越尖锐熵越低分布越均匀熵越高。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUBSUB-SECTION % NEW SUBSUB-SECTION
...@@ -267,7 +266,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -267,7 +266,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\subsubsection{2. KL距离} \subsubsection{2. KL距离}
\parinterval 如果同一个随机变量$X$上有两个概率分布$\funp{P}(x)$$\funp{Q}(x)$,那么可以使用{\small\bfnew{Kullback-Leibler距离}}\index{Kullback-Leibler距离}{\small\bfnew{KL距离}}\index{KL距离}(KL Distance\index{KL Distance})来衡量这两个分布的不同(也称作KL 散度),这种度量就是{\small\bfnew{相对熵}}\index{相对熵}(Relative Entropy)\index{Relative Entropy}其公式如下: \parinterval 如果同一个随机变量$X$上有两个概率分布$\funp{P}(x)$$\funp{Q}(x)$,那么可以使用{\small\bfnew{Kullback-Leibler距离}}\index{Kullback-Leibler距离}{\small\bfnew{KL距离}}\index{KL距离}(KL Distance\index{KL Distance})来衡量这两个分布的不同(也称作KL 散度)。这种度量就是{\small\bfnew{相对熵}}\index{相对熵}(Relative Entropy)\index{Relative Entropy}其公式如下:
\begin{eqnarray} \begin{eqnarray}
\funp{D}_{\textrm{KL}}(\funp{P}\parallel \funp{Q}) & = & \sum_{x \in X} [ \funp{P}(x)\log \frac{\funp{P}(x) }{ \funp{Q}(x) } ] \nonumber \\ \funp{D}_{\textrm{KL}}(\funp{P}\parallel \funp{Q}) & = & \sum_{x \in X} [ \funp{P}(x)\log \frac{\funp{P}(x) }{ \funp{Q}(x) } ] \nonumber \\
& = & \sum_{x \in X }[ \funp{P}(x)(\log \funp{P}(x)-\log \funp{Q}(x))] & = & \sum_{x \in X }[ \funp{P}(x)(\log \funp{P}(x)-\log \funp{Q}(x))]
...@@ -305,7 +304,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -305,7 +304,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\sectionnewpage \sectionnewpage
\section{掷骰子游戏} \section{掷骰子游戏}
\parinterval 在阐述统计建模方法前,先看一个有趣的实例(图\ref{fig:2-5})。掷骰子,一个生活中比较常见的游戏,掷一个骰子,玩家猜一个数字,猜中就算赢按照常识来说,随便选一个数字,获胜的概率是一样的,即所有选择的获胜概率都是$1/6$。因此这个游戏玩家很难获胜,除非运气很好。假设进行一次游戏,玩家随意选了一个数字,比如是1。当投掷30次骰子(如图\ref{fig:2-5}),发现运气不错,命中7次,好于预期($7/30 > 1/6$)。 \parinterval 在阐述统计建模方法前,先看一个有趣的实例(图\ref{fig:2-5})。掷骰子,一个生活中比较常见的游戏,掷一个骰子,玩家猜一个数字,猜中就算赢按照常识来说,随便选一个数字,获胜的概率是一样的,即所有选择的获胜概率都是$1/6$。因此这个游戏玩家很难获胜,除非运气很好。假设进行一次游戏,玩家随意选了一个数字,比如是1。当投掷30次骰子(如图\ref{fig:2-5}),发现运气不错,命中7次,好于预期($7/30 > 1/6$)。
\vspace{-0.5em} \vspace{-0.5em}
%---------------------------------------------- %----------------------------------------------
...@@ -318,7 +317,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -318,7 +317,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 此时玩家的胜利似乎只能来源于运气。不过,这里的假设“随便选一个数字,获胜的概率是一样的”本身就是一个概率模型,它对骰子六个面的出现做了均匀分布假设: \parinterval 此时玩家的胜利似乎只能来源于运气。不过,这里的假设“随便选一个数字,获胜的概率是一样的”本身就是一个概率模型,它对骰子六个面的出现做了均匀分布假设:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(\text{1})=\funp{P}(\text{2})= \ldots =\funp{P}(\text{5})=\funp{P}(\text{6})=1/6 \funp{P}(\text{1})=\funp{P}(\text{2})= \ldots =\funp{P}(\text{5})=\funp{P}(\text{6})=1/6
\label{eq:2-17} \label{eq:2-17}
...@@ -336,13 +335,13 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -336,13 +335,13 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\label{eq:2-18} \label{eq:2-18}
\end{eqnarray} \end{eqnarray}
\noindent 这里,$\theta_1 \sim \theta_5$可以被看作是模型的参数,因此这个模型的自由度是5。对于这样的模型,参数确定了,模型也就确定了。但是一个新的问题出现了,在定义骰子每个面的概率后,如何求出具体的概率值呢?一种常用的方法是,从大量实例中学习模型参数,这个方法也是常说的{\small\bfnew{参数估计}}\index{参数估计}(Parameter Estimation)\index{Parameter Estimation}。可以将这个不均匀的骰子先实验性地掷很多次,这可以被看作是独立同分布的若干次采样。比如投掷$X$ 次,发现1出现$X_1$ 次,2出现$X_2$ 次,以此类推,可以得到各个面出现的次数。假设掷骰子中每个面出现的概率符合多项式分布,那么通过简单的概率论知识可以知道每个面出现概率的极大似然估计为: \noindent 这里,$\theta_1 \sim \theta_5$可以被看作是模型的参数,因此这个模型的自由度是5。对于这样的模型,参数确定了,模型也就确定了。但是一个新的问题出现了,在定义骰子每个面的概率后,如何求出具体的概率值呢?一种常用的方法是,从大量实例中学习模型参数,这个方法也是常说的{\small\bfnew{参数估计}}\index{参数估计}(Parameter Estimation)\index{Parameter Estimation}。可以将这个不均匀的骰子先实验性地掷很多次,这可以被看作是独立同分布的若干次采样。比如投掷骰子$X$次,发现1出现$X_1$ 次,2出现$X_2$ 次,以此类推,可以得到各个面出现的次数。假设掷骰子中每个面出现的概率符合多项式分布,那么通过简单的概率论知识可以知道每个面出现概率的极大似然估计为:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(i)=\frac {X_i}{X} \funp{P}(i)=\frac {X_i}{X}
\label{eq:2-19} \label{eq:2-19}
\end{eqnarray} \end{eqnarray}
\parinterval$X$足够大时,$\frac{X_i}{X}$可以无限逼近$\funp{P}(i)$的真实值,因此可以通过大量的实验推算出掷骰子各个面的概率的准确估计值。 \parinterval$X$足够大时,$\frac{X_i}{X}$可以无限逼近$\funp{P}(i)$的真实值,因此可以通过大量的实验推算出掷骰子各个面的概率的准确估计值。
\parinterval 回归到原始的问题,如果在正式开始游戏前,预先掷骰子30次,得到如图\ref{fig:2-6}的结果。 \parinterval 回归到原始的问题,如果在正式开始游戏前,预先掷骰子30次,得到如图\ref{fig:2-6}的结果。
...@@ -430,13 +429,13 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -430,13 +429,13 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\label{eq:2-20} \label{eq:2-20}
\end{eqnarray} \end{eqnarray}
\noindent 其中,$V$为词汇表。本质上,这个方法和计算单词出现概率$\funp{P}(w_i)$的方法是一样的。但是这里的问题是:当$m$较大时,词串$w_1 w_2 \ldots w_m$可能非常低频,甚至在数据中没有出现过。这时,由于$\textrm{count}(w_1 w_2 \ldots w_m) \approx 0$,公式\eqref{eq:seq-mle}的结果会不准确,甚至产生0概率的情况。这是观测低频事件时经常出现的问题。对于这个问题,另一种思路是对多个联合出现的事件进行独立性假设,这里可以假设$w_1$$w_2\ldots w_m$的出现是相互独立的,于是: \noindent 其中,$V$为词汇表。本质上,这个方法和计算单词出现概率$\funp{P}(w_i)$的方法是一样的。但是这里的问题是:当$m$较大时,词串$w_1 w_2 \ldots w_m$可能非常低频,甚至在数据中没有出现过。这时,由于$\textrm{count}(w_1 w_2 \ldots w_m) \approx 0$,公式\eqref{eq:seq-mle}的结果会不准确,甚至产生0概率的情况。这是观测低频事件时经常出现的问题。对于这个问题,另一种思路是对多个联合出现的事件进行独立性假设,这里可以假设$w_1$$w_2\ldots w_m$的出现是相互独立的,于是:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(w_1 w_2 \ldots w_m) & = & \funp{P}(w_1) \funp{P}(w_2) \ldots \funp{P}(w_m) \label{eq:seq-independ} \funp{P}(w_1 w_2 \ldots w_m) & = & \funp{P}(w_1) \funp{P}(w_2) \ldots \funp{P}(w_m) \label{eq:seq-independ}
\label{eq:2-21} \label{eq:2-21}
\end{eqnarray} \end{eqnarray}
\noindent 这样,单词序列的出现的概率被转化为每个单词概率的乘积。由于单词的概率估计是相对准确的,因此整个序列的概率会比较合理。但是,这种方法的独立性假设也破坏了句子中单词之间的依赖关系,造成概率估计结果的偏差。那如何更加合理的计算一个单词序列的概率呢?下面即将介绍的$n$-gram语言建模方法可以很好地回答这个问题。 \noindent 这样,单词序列的出现的概率被转化为每个单词概率的乘积。由于单词的概率估计是相对准确的,因此整个序列的概率会比较合理。但是,这种独立性假设也破坏了句子中单词之间的依赖关系,造成概率估计结果的偏差。那如何更加合理的计算一个单词序列的概率呢?下面介绍的$n$-gram语言建模方法可以很好地回答这个问题。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SECTION % NEW SECTION
...@@ -471,7 +470,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -471,7 +470,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\parinterval 这样,$w_1 w_2 \ldots w_m$的生成可以被看作是逐个生成每个单词的过程,即首先生成$w_1$,然后根据$w_1$再生成$w_2$,然后根据$w_1 w_2$再生成$w_3$,以此类推,直到根据所有前$m-1$个词生成序列的最后一个单词$w_m$。这个模型把联合概率$\funp{P}(w_1 w_2 \ldots w_m)$分解为多个条件概率的乘积,虽然对生成序列的过程进行了分解,但是模型的复杂度和以前是一样的,比如,$\funp{P}(w_m|w_1 w_2 \ldots w_{m-1})$ 仍然不好计算。 \parinterval 这样,$w_1 w_2 \ldots w_m$的生成可以被看作是逐个生成每个单词的过程,即首先生成$w_1$,然后根据$w_1$再生成$w_2$,然后根据$w_1 w_2$再生成$w_3$,以此类推,直到根据所有前$m-1$个词生成序列的最后一个单词$w_m$。这个模型把联合概率$\funp{P}(w_1 w_2 \ldots w_m)$分解为多个条件概率的乘积,虽然对生成序列的过程进行了分解,但是模型的复杂度和以前是一样的,比如,$\funp{P}(w_m|w_1 w_2 \ldots w_{m-1})$ 仍然不好计算。
\parinterval 换一个角度看,$\funp{P}(w_m|w_1 w_2 \ldots w_{m-1})$体现了一种基于“历史”的单词生成模型,也就是把前面生成的所有单词作为“历史”,并参考这个“历史”生成当前单词。但是这个“历史”的长度和整个序列长度是相关的,也是一种长度变化的历史序列。为了化简问题,一种简单的想法是使用定长历史,比如,每次只考虑前面$n-1$个历史单词来生成当前单词。这就是$n$-gram语言模型,其中$n$-gram 表示$n$个连续单词构成的单元,也被称作{\small\bfnew{n元语法单元}}\index{n元语法单元}。这个模型的数学描述如下: \parinterval 换一个角度看,$\funp{P}(w_m|w_1 w_2 \ldots w_{m-1})$体现了一种基于“历史”的单词生成模型,也就是把前面生成的所有单词作为“历史”,并参考这个“历史”生成当前单词。但是这个“历史”的长度和整个序列长度是相关的,也是一种长度变化的历史序列。为了化简问题,一种简单的想法是使用定长历史,比如,每次只考虑前面$n-1$个历史单词来生成当前单词。这就是$n$-gram语言模型,其中$n$-gram 表示$n$个连续单词构成的单元,也被称作{\small\bfnew{n元语法单元}}\index{n元语法单元}。这个模型的数学描述如下:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(w_m|w_1 w_2 \ldots w_{m-1}) = \funp{P}(w_m|w_{m-n+1} \ldots w_{m-1}) \funp{P}(w_m|w_1 w_2 \ldots w_{m-1}) = \funp{P}(w_m|w_{m-n+1} \ldots w_{m-1})
\label{eq:2-23} \label{eq:2-23}
...@@ -523,8 +522,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -523,8 +522,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\parinterval $n$-gram语言模型的使用非常简单。可以直接用它来对词序列出现的概率进行计算。比如,可以使用一个2-gram语言模型计算一个句子出现的概率,其中单词之间用斜杠分隔,如下: \parinterval $n$-gram语言模型的使用非常简单。可以直接用它来对词序列出现的概率进行计算。比如,可以使用一个2-gram语言模型计算一个句子出现的概率,其中单词之间用斜杠分隔,如下:
\begin{eqnarray} \begin{eqnarray}
& &\funp{P}_{2-\textrm{gram}}{(\textrm{确实/现在/数据/很 & &\funp{P}_{2\textrm{-gram}}{(\textrm{确实/现在/数据/很/多})} \nonumber \\
/多})} \nonumber \\
&= & \funp{P}(\textrm{确实}) \times \funp{P}(\textrm{现在}|\textrm{确实})\times \funp{P}(\textrm{数据}|\textrm{现在}) \times \nonumber \\ &= & \funp{P}(\textrm{确实}) \times \funp{P}(\textrm{现在}|\textrm{确实})\times \funp{P}(\textrm{数据}|\textrm{现在}) \times \nonumber \\
& & \funp{P}(\textrm{}|\textrm{数据})\times \funp{P}(\textrm{}|\textrm{}) & & \funp{P}(\textrm{}|\textrm{数据})\times \funp{P}(\textrm{}|\textrm{})
\label{eq:2-25} \label{eq:2-25}
...@@ -540,7 +538,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x ...@@ -540,7 +538,7 @@ F(x)=\int_{-\infty}^x f(x)\textrm{d}x
\parinterval 对于$n$-gram语言模型,每个$\funp{P}(w_m|w_{m-n+1} \ldots w_{m-1})$都可以被看作是模型的{\small\bfnew{参数}}\index{参数}(Parameter\index{Parameter})。而$n$-gram语言模型的一个核心任务是估计这些参数的值,即参数估计。通常,参数估计可以通过在数据上的统计得到。一种简单的方法是:给定一定数量的句子,统计每个$n$-gram 出现的频次,并利用公式\eqref{eq:2-24}得到每个参数$\funp{P}(w_m|w_{m-n+1} \ldots w_{m-1})$的值。这个过程也被称作模型的{\small\bfnew{训练}}\index{训练}(Training\index{训练})。对于自然语言处理任务来说,统计模型的训练是至关重要的。在本书后面的内容中也会看到,不同的问题可能需要不同的模型以及不同的模型训练方法,并且很多研究工作也都集中在优化模型训练的效果上。 \parinterval 对于$n$-gram语言模型,每个$\funp{P}(w_m|w_{m-n+1} \ldots w_{m-1})$都可以被看作是模型的{\small\bfnew{参数}}\index{参数}(Parameter\index{Parameter})。而$n$-gram语言模型的一个核心任务是估计这些参数的值,即参数估计。通常,参数估计可以通过在数据上的统计得到。一种简单的方法是:给定一定数量的句子,统计每个$n$-gram 出现的频次,并利用公式\eqref{eq:2-24}得到每个参数$\funp{P}(w_m|w_{m-n+1} \ldots w_{m-1})$的值。这个过程也被称作模型的{\small\bfnew{训练}}\index{训练}(Training\index{训练})。对于自然语言处理任务来说,统计模型的训练是至关重要的。在本书后面的内容中也会看到,不同的问题可能需要不同的模型以及不同的模型训练方法,并且很多研究工作也都集中在优化模型训练的效果上。
\parinterval 回到$n$-gram语言模型上。前面所使用的参数估计方法并不完美,因为它无法很好地处理低频或者未见现象。比如,在式\eqref{eq:2-25}所示的例子中,如果语料中从没有“确实”和“现在”两个词连续出现的情况,即$\textrm{count}(\textrm{确实}/\textrm{现在})=0$。 那么使用2-gram 计算句子“确实/现在/数据/很多”的概率时,会出现如下情况: \parinterval 回到$n$-gram语言模型上。前面所使用的参数估计方法并不完美,因为它无法很好地处理低频或者未见现象。比如,在式\eqref{eq:2-25}所示的例子中,如果语料中从没有“确实”和“现在”两个词连续出现的情况,即$\textrm{count}(\textrm{确实}/\textrm{现在})=0$。 那么使用2-gram 计算句子“确实/现在/数据/很/多”的概率时,会出现如下情况:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(\textrm{现在}|\textrm{确实}) & = & \frac{\textrm{count}(\textrm{确实}/\textrm{现在})}{\textrm{count}(\textrm{确实})} \nonumber \\ \funp{P}(\textrm{现在}|\textrm{确实}) & = & \frac{\textrm{count}(\textrm{确实}/\textrm{现在})}{\textrm{count}(\textrm{确实})} \nonumber \\
& = & \frac{0}{\textrm{count}(\textrm{确实})} \nonumber \\ & = & \frac{0}{\textrm{count}(\textrm{确实})} \nonumber \\
...@@ -747,7 +745,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -747,7 +745,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\subsection{语言模型的评价} \subsection{语言模型的评价}
\parinterval 在使用语言模型时,往往需要知道模型的质量。{\small\sffamily\bfseries{困惑度}}\index{困惑度}(Perplexity\index{Perplexity},PPL)是一种衡量语言模型的好坏的指标。对于一个真实的词序列$ w_1\dots w_m $,困惑度被定义为 \parinterval 在使用语言模型时,往往需要知道模型的质量。{\small\sffamily\bfseries{困惑度}}\index{困惑度}(Perplexity\index{Perplexity},PPL)是一种衡量语言模型的好坏的指标。对于一个真实的词序列$ w_1\dots w_m $,困惑度被定义为
\begin{eqnarray} \begin{eqnarray}
{\rm{PPL}}&=&{\rm P}{(w_1\dots w_m)}^{- \frac{1}{m}} {\rm{PPL}}&=&{\rm P}{(w_1\dots w_m)}^{- \frac{1}{m}}
\label{eq:5-65} \label{eq:5-65}
...@@ -776,7 +774,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll} ...@@ -776,7 +774,7 @@ c_{\textrm{KN}}(\cdot) = \left\{\begin{array}{ll}
\begin{itemize} \begin{itemize}
\vspace{0.5em} \vspace{0.5em}
\item 预测输入句子的可能性。比如,有如下两个句子 \item 预测输入句子的可能性。比如,有如下两个句子
\vspace{0.8em} \vspace{0.8em}
\hspace{10em} The boy caught the cat. \hspace{10em} The boy caught the cat.
......
...@@ -8,8 +8,8 @@ ...@@ -8,8 +8,8 @@
\node[anchor=west,hide](yn-1)at([xshift=2em]dots.east){$y_{m-1}$}; \node[anchor=west,hide](yn-1)at([xshift=2em]dots.east){$y_{m-1}$};
\node[anchor=west,hide](yn)at([xshift=2em]yn-1.east){$y_m$}; \node[anchor=west,hide](yn)at([xshift=2em]yn-1.east){$y_m$};
\node[anchor=north,draw,line width=1pt,inner sep=2pt,fill=red!30,minimum height=2em,minimum width=12em](see)at ([yshift=-3em,xshift=2em]y3.south){$\mathbf{X}=(x_1,x_2,\ldots,x_{m-1},x_m)$}; \node[anchor=north,draw,line width=1pt,inner sep=2pt,fill=red!30,minimum height=2em,minimum width=12em](see)at ([yshift=-3em,xshift=2em]y3.south){${X}=(x_1,x_2,\ldots,x_{m-1},x_m)$};
\node[anchor=south,font=\footnotesize] at ([yshift=1em,xshift=2em]y3.north){待预测的隐状态序列}; \node[anchor=south,font=\footnotesize] at ([yshift=1em,xshift=2em]y3.north){待预测的隐状态序列};
\node[anchor=north,font=\footnotesize] at ([yshift=-1em]see.south){可见状态序列}; \node[anchor=north,font=\footnotesize] at ([yshift=-1em]see.south){可见状态序列};
\draw[line width=1pt] (y1.east) -- (y2.west); \draw[line width=1pt] (y1.east) -- (y2.west);
......
...@@ -57,17 +57,17 @@ ...@@ -57,17 +57,17 @@
\end{pgfonlayer} \end{pgfonlayer}
\node [anchor=north west] (math1) at ([xshift=2em]treebank.north east) {$\funp{P}$(VP $\to$ VV NN)}; \node [anchor=north west] (math1) at ([xshift=2em]treebank.north east) {$\funp{P}$(VP $\to$ VV NN)};
\node [anchor=north west] (math1part2) at ([xshift=-1em,yshift=0.2em]math1.south west) {$=\frac{\textrm{“VP”和“VV NN”同时出现的次数=1}}{\textrm{“VP”出现的次数}=4}$}; \node [anchor=north west] (math1part2) at ([xshift=-1em,yshift=0.2em]math1.south west) {$=\frac{\textrm{VP和VV NN同时出现的次数=1}}{\textrm{VP出现的次数}=4}$};
\node [anchor=north west] (math1part3) at ([yshift=0.2em]math1part2.south west){$=\frac{1}{4}$}; \node [anchor=north west] (math1part3) at ([yshift=0.2em]math1part2.south west){$=\frac{1}{4}$};
\node [anchor=north west] (math2) at ([yshift=-6em]math1.north west) {$\funp{P}$(NP $\to$ NN)}; \node [anchor=north west] (math2) at ([yshift=-6em]math1.north west) {$\funp{P}$(NP $\to$ NN)};
\node [anchor=north west] (math2part2) at ([xshift=-1em,yshift=0.2em]math2.south west) {$=\frac{\textrm{“NP”和“NN”同时出现的次数=2}}{\textrm{“NP”出现的次数}=3}$}; \node [anchor=north west] (math2part2) at ([xshift=-1em,yshift=0.2em]math2.south west) {$=\frac{\textrm{NP和NN同时出现的次数=2}}{\textrm{NP出现的次数}=3}$};
\node [anchor=north west] (math2part3) at ([yshift=0.2em]math2part2.south west){$=\frac{2}{3}$}; \node [anchor=north west] (math2part3) at ([yshift=0.2em]math2part2.south west){$=\frac{2}{3}$};
\node [anchor=north west] (math3) at ([yshift=-6em]math2.north west) {$\funp{P}$(IP $\to$ NP NP)}; \node [anchor=north west] (math3) at ([yshift=-6em]math2.north west) {$\funp{P}$(IP $\to$ NP NP)};
\node [anchor=north west] (math3part2) at ([xshift=-1em,yshift=0.2em]math3.south west) {$=\frac{\textrm{“IP”和“NP NP”同时出现的次数=0}}{\textrm{“IP”出现的次数}=3}$}; \node [anchor=north west] (math3part2) at ([xshift=-1em,yshift=0.2em]math3.south west) {$=\frac{\textrm{IP和NP NP同时出现的次数=0}}{\textrm{IP出现的次数}=3}$};
\node [anchor=north west] (math3part3) at ([yshift=0.2em]math3part2.south west){$=\frac{0}{3}$}; \node [anchor=north west] (math3part3) at ([yshift=0.2em]math3part2.south west){$=\frac{0}{3}$};
\begin{pgfonlayer}{background} \begin{pgfonlayer}{background}
......
...@@ -2,15 +2,15 @@ ...@@ -2,15 +2,15 @@
\tikzstyle{unit} = [draw,circle,line width=0.8pt,align=center,fill=green!30,minimum size=1em] \tikzstyle{unit} = [draw,circle,line width=0.8pt,align=center,fill=green!30,minimum size=1em]
\node[minimum width=3em,minimum height=1.8em] (o) at (0,0){}; \node[minimum width=3em,minimum height=1.8em] (o) at (0,0){};
\node[anchor=north,inner sep=1pt,font=\footnotesize] (state_A) at ([xshift=-0em,yshift=-1em]o.south){藏状态A}; \node[anchor=north,inner sep=1pt,font=\footnotesize] (state_A) at ([xshift=-0em,yshift=-1em]o.south){含状态$A$};
\node[anchor=north,inner sep=1pt,font=\footnotesize] (state_B) at ([yshift=-1.6em]state_A.south){藏状态B}; \node[anchor=north,inner sep=1pt,font=\footnotesize] (state_B) at ([yshift=-1.6em]state_A.south){含状态$B$};
\node[anchor=north,inner sep=1pt,font=\footnotesize] (state_C) at ([yshift=-1.6em]state_B.south){藏状态C}; \node[anchor=north,inner sep=1pt,font=\footnotesize] (state_C) at ([yshift=-1.6em]state_B.south){含状态$C$};
\node[anchor=north,inner sep=1pt,font=\footnotesize] (state_D) at ([yshift=-1.6em]state_C.south){藏状态D}; \node[anchor=north,inner sep=1pt,font=\footnotesize] (state_D) at ([yshift=-1.6em]state_C.south){含状态$D$};
\node[anchor=west,inner sep=1pt,font=\footnotesize] (c1) at ([yshift=0.2em,xshift=2em]o.east){T}; \node[anchor=west,inner sep=1pt,font=\footnotesize] (c1) at ([yshift=0.2em,xshift=2em]o.east){$T$};
\node[anchor=west,inner sep=1pt,font=\footnotesize] (c2) at ([xshift=5em]c1.east){F}; \node[anchor=west,inner sep=1pt,font=\footnotesize] (c2) at ([xshift=5em]c1.east){$F$};
\node[anchor=west,inner sep=1pt,font=\footnotesize] (c3) at ([xshift=5em]c2.east){F}; \node[anchor=west,inner sep=1pt,font=\footnotesize] (c3) at ([xshift=5em]c2.east){$F$};
\node[anchor=west,inner sep=1pt,font=\footnotesize] (c4) at ([xshift=5em]c3.east){T}; \node[anchor=west,inner sep=1pt,font=\footnotesize] (c4) at ([xshift=5em]c3.east){$T$};
\node[anchor=south,font=\scriptsize] (cl1) at (c1.north) {时刻1}; \node[anchor=south,font=\scriptsize] (cl1) at (c1.north) {时刻1};
\node[anchor=south,font=\scriptsize] (cl2) at (c2.north) {时刻2}; \node[anchor=south,font=\scriptsize] (cl2) at (c2.north) {时刻2};
\node[anchor=south,font=\scriptsize] (cl3) at (c3.north) {时刻3}; \node[anchor=south,font=\scriptsize] (cl3) at (c3.north) {时刻3};
......
...@@ -74,7 +74,7 @@ ...@@ -74,7 +74,7 @@
语言学家: & 不对 && 不对 \\ 语言学家: & 不对 && 不对 \\
我们: & 似乎对了 & 比较肯定 & 不太可能 \\ 我们: & 似乎对了 & 比较肯定 & 不太可能 \\
分析器: & $\textrm{P}=0.2$ & $\textrm{P}=0.6$ & $\textrm{P}=0.1$ 分析器: & $\funp{P}=0.2$ & $\funp{P}=0.6$ & $\funp{P}=0.1$
\end{tabular} \end{tabular}
%--------------------------------------------------------------------- %---------------------------------------------------------------------
......
...@@ -2,13 +2,13 @@ ...@@ -2,13 +2,13 @@
\begin{scope} \begin{scope}
\node[minimum width=3em,minimum height=1.5em] (o) at (0,0){}; \node[minimum width=3em,minimum height=1.5em] (o) at (0,0){};
\node[anchor=west,inner sep=0pt] (ca) at ([yshift=0.2em,xshift=1.4em]o.east){\scriptsize\bfnew{硬币A}}; \node[anchor=west,inner sep=0pt] (ca) at ([yshift=0.2em,xshift=1.4em]o.east){\scriptsize\bfnew{硬币$\boldsymbol A$}};
\node[anchor=west,inner sep=0pt] (cb) at ([xshift=1.4em]ca.east){\scriptsize\bfnew{硬币B}}; \node[anchor=west,inner sep=0pt] (cb) at ([xshift=1.4em]ca.east){\scriptsize\bfnew{硬币$\boldsymbol B$}};
\node[anchor=west,inner sep=0pt] (cc) at ([xshift=1.4em]cb.east){\scriptsize\bfnew{硬币C}}; \node[anchor=west,inner sep=0pt] (cc) at ([xshift=1.4em]cb.east){\scriptsize\bfnew{硬币$\boldsymbol C$}};
\node[anchor=north,inner sep=0pt] (ra) at ([yshift=-0.6em,xshift=-0.4em]o.south){\scriptsize\bfnew{硬币A}}; \node[anchor=north,inner sep=0pt] (ra) at ([yshift=-0.6em,xshift=-0.4em]o.south){\scriptsize\bfnew{硬币$\boldsymbol A$}};
\node[anchor=north,inner sep=0pt] (rb) at ([yshift=-1.4em]ra.south){\scriptsize\bfnew{硬币B}}; \node[anchor=north,inner sep=0pt] (rb) at ([yshift=-1.4em]ra.south){\scriptsize\bfnew{硬币$\boldsymbol B$}};
\node[anchor=north,inner sep=0pt] (rc) at ([yshift=-1.4em]rb.south){\scriptsize\bfnew{硬币C}}; \node[anchor=north,inner sep=0pt] (rc) at ([yshift=-1.4em]rb.south){\scriptsize\bfnew{硬币$\boldsymbol C$}};
\node[anchor=north,inner sep=0pt] (n11) at ([yshift=-0.9em]ca.south){\small{$\frac{1}{3}$}}; \node[anchor=north,inner sep=0pt] (n11) at ([yshift=-0.9em]ca.south){\small{$\frac{1}{3}$}};
\node[anchor=north,inner sep=0pt] (n21) at ([yshift=-1em]n11.south){\small{$\frac{1}{3}$}}; \node[anchor=north,inner sep=0pt] (n21) at ([yshift=-1em]n11.south){\small{$\frac{1}{3}$}};
...@@ -38,9 +38,9 @@ ...@@ -38,9 +38,9 @@
\node[anchor=west,inner sep=0pt] (ca) at ([yshift=0.2em,xshift=1.4em]o.east){\scriptsize\bfnew{正面}}; \node[anchor=west,inner sep=0pt] (ca) at ([yshift=0.2em,xshift=1.4em]o.east){\scriptsize\bfnew{正面}};
\node[anchor=west,inner sep=0pt] (cb) at ([xshift=1.4em]ca.east){\scriptsize\bfnew{反面}}; \node[anchor=west,inner sep=0pt] (cb) at ([xshift=1.4em]ca.east){\scriptsize\bfnew{反面}};
\node[anchor=north,inner sep=0pt] (ra) at ([yshift=-0.6em,xshift=-0.4em]o.south){\scriptsize\bfnew{硬币A}}; \node[anchor=north,inner sep=0pt] (ra) at ([yshift=-0.6em,xshift=-0.4em]o.south){\scriptsize\bfnew{硬币$\boldsymbol A$}};
\node[anchor=north,inner sep=0pt] (rb) at ([yshift=-1.5em]ra.south){\scriptsize\bfnew{硬币B}}; \node[anchor=north,inner sep=0pt] (rb) at ([yshift=-1.5em]ra.south){\scriptsize\bfnew{硬币$\boldsymbol B$}};
\node[anchor=north,inner sep=0pt] (rc) at ([yshift=-1.5em]rb.south){\scriptsize\bfnew{硬币C}}; \node[anchor=north,inner sep=0pt] (rc) at ([yshift=-1.5em]rb.south){\scriptsize\bfnew{硬币$\boldsymbol C$}};
\node[anchor=north,inner sep=0pt] (n11) at ([yshift=-1.2em]ca.south){\footnotesize{$0.3$}}; \node[anchor=north,inner sep=0pt] (n11) at ([yshift=-1.2em]ca.south){\footnotesize{$0.3$}};
\node[anchor=north,inner sep=0pt] (n21) at ([yshift=-1.7em]n11.south){\footnotesize{$0.5$}}; \node[anchor=north,inner sep=0pt] (n21) at ([yshift=-1.7em]n11.south){\footnotesize{$0.5$}};
...@@ -57,6 +57,6 @@ ...@@ -57,6 +57,6 @@
\begin{pgfonlayer}{background} \begin{pgfonlayer}{background}
\node [rectangle,inner sep=0.5em,rounded corners=2pt,fill=red!10] [fit = (o)(n32)(rc)(cb) ] (box1) {}; \node [rectangle,inner sep=0.5em,rounded corners=2pt,fill=red!10] [fit = (o)(n32)(rc)(cb) ] (box1) {};
\end{pgfonlayer} \end{pgfonlayer}
\node[anchor=south] at (box1.north){\scriptsize{发射概率$\funp{P}$(可见状态|隐状态)}}; \node[anchor=south] at (box1.north){\scriptsize{发射概率$\funp{P}$(可见状态|隐状态)}};
\end{scope} \end{scope}
\end{tikzpicture} \end{tikzpicture}
\ No newline at end of file
\relax
\providecommand\zref@newlabel[2]{}
\providecommand\hyper@newdestlabel[2]{}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {chapter}{\numberline {1}词法分析和语法分析基础}{11}{chapter.1}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.1}问题概述}{11}{section.1.1}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.1}{\ignorespaces 机器翻译系统的结构\relax }}{12}{figure.caption.3}\protected@file@percent }
\providecommand*\caption@xref[2]{\@setref\relax\@undefined{#1}}
\newlabel{fig:3.1-1}{{1.1}{12}{机器翻译系统的结构\relax }{figure.caption.3}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {机器翻译系统被看作一个黑盒}}}{12}{figure.caption.3}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {机器翻译系统 = 前/后处理 + 翻译引擎}}}{12}{figure.caption.3}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.2}{\ignorespaces 汉语句子“猫喜欢吃鱼”的分析结果(分词和句法分析)\relax }}{12}{figure.caption.4}\protected@file@percent }
\newlabel{fig:3.1-2}{{1.2}{12}{汉语句子“猫喜欢吃鱼”的分析结果(分词和句法分析)\relax }{figure.caption.4}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.2}中文分词}{13}{section.1.2}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.3}{\ignorespaces 一个简单的预处理流程\relax }}{13}{figure.caption.5}\protected@file@percent }
\newlabel{fig:3.2-1}{{1.3}{13}{一个简单的预处理流程\relax }{figure.caption.5}{}}
\zref@newlabel{mdf@pagelabel-1}{\default{1.2}\page{14}\abspage{14}\mdf@pagevalue{14}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.1}基于词典的分词方法}{14}{subsection.1.2.1}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.4}{\ignorespaces 基于词典进行分词的实例\relax }}{15}{figure.caption.6}\protected@file@percent }
\newlabel{fig:3.2-2}{{1.4}{15}{基于词典进行分词的实例\relax }{figure.caption.6}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.5}{\ignorespaces 交叉型分词歧义\relax }}{15}{figure.caption.7}\protected@file@percent }
\newlabel{fig:3.2-3}{{1.5}{15}{交叉型分词歧义\relax }{figure.caption.7}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.2.2}基于统计的分词方法}{16}{subsection.1.2.2}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{1. 统计模型的学习与推断}{16}{section*.8}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.6}{\ignorespaces 基于统计的自动分词流程\relax }}{16}{figure.caption.9}\protected@file@percent }
\newlabel{fig:3.2-4}{{1.6}{16}{基于统计的自动分词流程\relax }{figure.caption.9}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{2. 全概率分词方法}{16}{section*.10}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.7}{\ignorespaces 基于1-gram语言模型的中文分词实例\relax }}{17}{figure.caption.11}\protected@file@percent }
\newlabel{fig:3.2-5}{{1.7}{17}{基于1-gram语言模型的中文分词实例\relax }{figure.caption.11}{}}
\newlabel{eq:3.2-1}{{1.1}{17}{2. 全概率分词方法}{equation.1.2.1}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.3}命名实体识别}{18}{section.1.3}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.1}序列标注任务}{18}{subsection.1.3.1}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.8}{\ignorespaces BIO和BIOES格式对比\relax }}{19}{figure.caption.12}\protected@file@percent }
\newlabel{fig:3.3-1}{{1.8}{19}{BIO和BIOES格式对比\relax }{figure.caption.12}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {BIO格式标注命名实体}}}{19}{figure.caption.12}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {BIOES格式标注命名实体}}}{19}{figure.caption.12}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.2}基于特征的统计学习}{19}{subsection.1.3.2}\protected@file@percent }
\newlabel{sec3:feature}{{1.3.2}{19}{基于特征的统计学习}{subsection.1.3.2}{}}
\@writefile{lot}{\defcounter {refsection}{0}\relax }\@writefile{lot}{\contentsline {table}{\numberline {1.1}{\ignorespaces 命名实体识别中常用的特征\relax }}{20}{table.caption.13}\protected@file@percent }
\newlabel{tab:3.3-1}{{1.1}{20}{命名实体识别中常用的特征\relax }{table.caption.13}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.3}基于概率图模型的方法}{21}{subsection.1.3.3}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{1. 隐马尔可夫模型}{21}{section*.14}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.9}{\ignorespaces “抛硬币”游戏中的转移概率和发射概率\relax }}{22}{figure.caption.15}\protected@file@percent }
\newlabel{fig:3.3-2}{{1.9}{22}{“抛硬币”游戏中的转移概率和发射概率\relax }{figure.caption.15}{}}
\newlabel{eq:joint-prob-xy}{{1.2}{22}{1. 隐马尔可夫模型}{equation.1.3.2}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.10}{\ignorespaces 抛硬币的隐马尔可夫模型实例\relax }}{23}{figure.caption.16}\protected@file@percent }
\newlabel{fig:3.3-3}{{1.10}{23}{抛硬币的隐马尔可夫模型实例\relax }{figure.caption.16}{}}
\newlabel{eq:3.3-1}{{1.3}{23}{1. 隐马尔可夫模型}{equation.1.3.3}{}}
\newlabel{eq:3.3-2}{{1.4}{23}{1. 隐马尔可夫模型}{equation.1.3.4}{}}
\newlabel{eq:3.3-3}{{1.5}{24}{1. 隐马尔可夫模型}{equation.1.3.5}{}}
\newlabel{eq:markov-sequence-argmax}{{1.6}{24}{1. 隐马尔可夫模型}{equation.1.3.6}{}}
\newlabel{eq:3.3-4}{{1.6}{24}{1. 隐马尔可夫模型}{equation.1.3.6}{}}
\newlabel{eq:3.3-5}{{1.7}{24}{1. 隐马尔可夫模型}{equation.1.3.7}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.11}{\ignorespaces 基于隐马尔可夫模型的命名实体识别(解码过程)\relax }}{24}{figure.caption.17}\protected@file@percent }
\newlabel{fig:3.3-4}{{1.11}{24}{基于隐马尔可夫模型的命名实体识别(解码过程)\relax }{figure.caption.17}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{2. 条件随机场}{24}{section*.18}\protected@file@percent }
\newlabel{eq:3.3-6}{{1.8}{24}{2. 条件随机场}{equation.1.3.8}{}}
\newlabel{eq:3.3-7}{{1.9}{24}{2. 条件随机场}{equation.1.3.8}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.12}{\ignorespaces 隐马尔可夫实例\relax }}{25}{figure.caption.19}\protected@file@percent }
\newlabel{fig:3.3-5}{{1.12}{25}{隐马尔可夫实例\relax }{figure.caption.19}{}}
\newlabel{eq:3.3-8}{{1.10}{25}{2. 条件随机场}{equation.1.3.10}{}}
\newlabel{eq:3.3-9}{{1.11}{26}{2. 条件随机场}{equation.1.3.11}{}}
\newlabel{eq:3.3-10}{{1.12}{26}{2. 条件随机场}{equation.1.3.12}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.13}{\ignorespaces 条件随机场模型处理序列问题\relax }}{26}{figure.caption.20}\protected@file@percent }
\newlabel{fig:3.3-6}{{1.13}{26}{条件随机场模型处理序列问题\relax }{figure.caption.20}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.3.4}基于分类器的方法}{27}{subsection.1.3.4}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.14}{\ignorespaces HMM、CRF、分类算法三种方法对比\relax }}{27}{figure.caption.21}\protected@file@percent }
\newlabel{fig:3.3-7}{{1.14}{27}{HMM、CRF、分类算法三种方法对比\relax }{figure.caption.21}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(a)}{\ignorespaces {HMM处理序列标注}}}{27}{figure.caption.21}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(b)}{\ignorespaces {CRF处理序列标注}}}{27}{figure.caption.21}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {subfigure}{\numberline{(c)}{\ignorespaces {分类模型处理序列标注}}}{27}{figure.caption.21}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{1. 分类任务与分类器}{27}{section*.22}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsubsection}{2. 经典的分类模型}{28}{section*.23}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.4}句法分析(短语结构分析)}{29}{section.1.4}\protected@file@percent }
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.1}句法树}{29}{subsection.1.4.1}\protected@file@percent }
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.15}{\ignorespaces 短语结构树(左)和依存树(右)\relax }}{30}{figure.caption.24}\protected@file@percent }
\newlabel{fig:3.4-1}{{1.15}{30}{短语结构树(左)和依存树(右)\relax }{figure.caption.24}{}}
\zref@newlabel{mdf@pagelabel-2}{\default{1.4.1}\page{30}\abspage{30}\mdf@pagevalue{30}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.2}上下文无关文法}{31}{subsection.1.4.2}\protected@file@percent }
\zref@newlabel{mdf@pagelabel-3}{\default{1.4.2}\page{31}\abspage{31}\mdf@pagevalue{31}}
\newlabel{eq:3.4-1}{{1.13}{31}{上下文无关文法}{equation.1.4.13}{}}
\newlabel{eq:3.4-2}{{1.13}{31}{上下文无关文法}{equation.1.4.13}{}}
\newlabel{eq:3.4-3}{{1.13}{31}{上下文无关文法}{equation.1.4.13}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.16}{\ignorespaces 一个示例文法的规则集\relax }}{32}{figure.caption.25}\protected@file@percent }
\newlabel{fig:3.4-2}{{1.16}{32}{一个示例文法的规则集\relax }{figure.caption.25}{}}
\zref@newlabel{mdf@pagelabel-4}{\default{1.4.2}\page{32}\abspage{32}\mdf@pagevalue{32}}
\zref@newlabel{mdf@pagelabel-5}{\default{1.4.2}\page{32}\abspage{32}\mdf@pagevalue{32}}
\zref@newlabel{mdf@pagelabel-6}{\default{1.4.2}\page{33}\abspage{33}\mdf@pagevalue{33}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.17}{\ignorespaces 上下文无关文法推导实例\relax }}{33}{figure.caption.26}\protected@file@percent }
\newlabel{fig:3.4-3}{{1.17}{33}{上下文无关文法推导实例\relax }{figure.caption.26}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.18}{\ignorespaces 同一棵句法树对应的不同规则推导\relax }}{34}{figure.caption.27}\protected@file@percent }
\newlabel{fig:3.4-4}{{1.18}{34}{同一棵句法树对应的不同规则推导\relax }{figure.caption.27}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.19}{\ignorespaces 如何选择最佳的句法分析结果 - 专家、普通人和句法分析器的视角\relax }}{34}{figure.caption.28}\protected@file@percent }
\newlabel{fig:3.4-5}{{1.19}{34}{如何选择最佳的句法分析结果 - 专家、普通人和句法分析器的视角\relax }{figure.caption.28}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.20}{\ignorespaces 不同推导(句法树)对应的概率值\relax }}{35}{figure.caption.29}\protected@file@percent }
\newlabel{fig:3.4-6}{{1.20}{35}{不同推导(句法树)对应的概率值\relax }{figure.caption.29}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {subsection}{\numberline {1.4.3}规则和推导的概率}{35}{subsection.1.4.3}\protected@file@percent }
\zref@newlabel{mdf@pagelabel-7}{\default{1.4.3}\page{35}\abspage{35}\mdf@pagevalue{35}}
\newlabel{eq:3.4-4}{{1.13}{35}{规则和推导的概率}{equation.1.4.13}{}}
\newlabel{eq:3.4-5}{{1.14}{36}{规则和推导的概率}{equation.1.4.14}{}}
\newlabel{eq:3.4-6}{{1.15}{36}{规则和推导的概率}{equation.1.4.15}{}}
\newlabel{eq:3.4-7}{{1.15}{36}{规则和推导的概率}{equation.1.4.15}{}}
\newlabel{eq:3.4-8}{{1.16}{36}{规则和推导的概率}{equation.1.4.16}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.21}{\ignorespaces 上下文无关文法规则概率估计\relax }}{37}{figure.caption.30}\protected@file@percent }
\newlabel{fig:3.4-7}{{1.21}{37}{上下文无关文法规则概率估计\relax }{figure.caption.30}{}}
\@writefile{lof}{\defcounter {refsection}{0}\relax }\@writefile{lof}{\contentsline {figure}{\numberline {1.22}{\ignorespaces 统计句法分析的流程\relax }}{37}{figure.caption.31}\protected@file@percent }
\newlabel{fig:3.4-8}{{1.22}{37}{统计句法分析的流程\relax }{figure.caption.31}{}}
\@writefile{toc}{\defcounter {refsection}{0}\relax }\@writefile{toc}{\contentsline {section}{\numberline {1.5}小结及深入阅读}{37}{section.1.5}\protected@file@percent }
\newlabel{sec3:summary}{{1.5}{37}{小结及深入阅读}{section.1.5}{}}
\@setckpt{Chapter3/chapter3}{
\setcounter{page}{39}
\setcounter{equation}{17}
\setcounter{enumi}{0}
\setcounter{enumii}{0}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{9}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{1}
\setcounter{section}{5}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{22}
\setcounter{table}{1}
\setcounter{tabx@nest}{0}
\setcounter{listtotal}{0}
\setcounter{listcount}{0}
\setcounter{liststart}{0}
\setcounter{liststop}{0}
\setcounter{citecount}{0}
\setcounter{citetotal}{0}
\setcounter{multicitecount}{0}
\setcounter{multicitetotal}{0}
\setcounter{instcount}{45}
\setcounter{maxnames}{3}
\setcounter{minnames}{1}
\setcounter{maxitems}{3}
\setcounter{minitems}{1}
\setcounter{citecounter}{0}
\setcounter{maxcitecounter}{0}
\setcounter{savedcitecounter}{0}
\setcounter{uniquelist}{0}
\setcounter{uniquename}{0}
\setcounter{refsection}{0}
\setcounter{refsegment}{0}
\setcounter{maxextratitle}{0}
\setcounter{maxextratitleyear}{0}
\setcounter{maxextraname}{2}
\setcounter{maxextradate}{0}
\setcounter{maxextraalpha}{0}
\setcounter{abbrvpenalty}{50}
\setcounter{highnamepenalty}{50}
\setcounter{lownamepenalty}{25}
\setcounter{maxparens}{3}
\setcounter{parenlevel}{0}
\setcounter{mincomprange}{10}
\setcounter{maxcomprange}{100000}
\setcounter{mincompwidth}{1}
\setcounter{afterword}{0}
\setcounter{savedafterword}{0}
\setcounter{annotator}{0}
\setcounter{savedannotator}{0}
\setcounter{author}{0}
\setcounter{savedauthor}{0}
\setcounter{bookauthor}{0}
\setcounter{savedbookauthor}{0}
\setcounter{commentator}{0}
\setcounter{savedcommentator}{0}
\setcounter{editor}{0}
\setcounter{savededitor}{0}
\setcounter{editora}{0}
\setcounter{savededitora}{0}
\setcounter{editorb}{0}
\setcounter{savededitorb}{0}
\setcounter{editorc}{0}
\setcounter{savededitorc}{0}
\setcounter{foreword}{0}
\setcounter{savedforeword}{0}
\setcounter{holder}{0}
\setcounter{savedholder}{0}
\setcounter{introduction}{0}
\setcounter{savedintroduction}{0}
\setcounter{namea}{0}
\setcounter{savednamea}{0}
\setcounter{nameb}{0}
\setcounter{savednameb}{0}
\setcounter{namec}{0}
\setcounter{savednamec}{0}
\setcounter{translator}{0}
\setcounter{savedtranslator}{0}
\setcounter{shortauthor}{0}
\setcounter{savedshortauthor}{0}
\setcounter{shorteditor}{0}
\setcounter{savedshorteditor}{0}
\setcounter{labelname}{0}
\setcounter{savedlabelname}{0}
\setcounter{institution}{0}
\setcounter{savedinstitution}{0}
\setcounter{lista}{0}
\setcounter{savedlista}{0}
\setcounter{listb}{0}
\setcounter{savedlistb}{0}
\setcounter{listc}{0}
\setcounter{savedlistc}{0}
\setcounter{listd}{0}
\setcounter{savedlistd}{0}
\setcounter{liste}{0}
\setcounter{savedliste}{0}
\setcounter{listf}{0}
\setcounter{savedlistf}{0}
\setcounter{location}{0}
\setcounter{savedlocation}{0}
\setcounter{organization}{0}
\setcounter{savedorganization}{0}
\setcounter{origlocation}{0}
\setcounter{savedoriglocation}{0}
\setcounter{origpublisher}{0}
\setcounter{savedorigpublisher}{0}
\setcounter{publisher}{0}
\setcounter{savedpublisher}{0}
\setcounter{language}{0}
\setcounter{savedlanguage}{0}
\setcounter{origlanguage}{0}
\setcounter{savedoriglanguage}{0}
\setcounter{pageref}{0}
\setcounter{savedpageref}{0}
\setcounter{textcitecount}{0}
\setcounter{textcitetotal}{0}
\setcounter{textcitemaxnames}{0}
\setcounter{biburlbigbreakpenalty}{100}
\setcounter{biburlbreakpenalty}{200}
\setcounter{biburlnumpenalty}{0}
\setcounter{biburlucpenalty}{0}
\setcounter{biburllcpenalty}{0}
\setcounter{smartand}{1}
\setcounter{bbx:relatedcount}{0}
\setcounter{bbx:relatedtotal}{0}
\setcounter{parentequation}{0}
\setcounter{notation}{0}
\setcounter{dummy}{0}
\setcounter{problem}{0}
\setcounter{exerciseT}{0}
\setcounter{exampleT}{0}
\setcounter{vocabulary}{0}
\setcounter{definitionT}{0}
\setcounter{mdf@globalstyle@cnt}{0}
\setcounter{mdfcountframes}{0}
\setcounter{mdf@env@i}{0}
\setcounter{mdf@env@ii}{0}
\setcounter{mdf@zref@counter}{7}
\setcounter{Item}{0}
\setcounter{Hfootnote}{9}
\setcounter{Hy@AnnotLevel}{0}
\setcounter{bookmark@seq@number}{0}
\setcounter{caption@flags}{0}
\setcounter{continuedfloat}{0}
\setcounter{cp@cnt}{0}
\setcounter{cp@tempcnt}{0}
\setcounter{subfigure}{0}
\setcounter{lofdepth}{1}
\setcounter{subtable}{0}
\setcounter{lotdepth}{1}
\setcounter{@pps}{0}
\setcounter{@ppsavesec}{0}
\setcounter{@ppsaveapp}{0}
\setcounter{tcbbreakpart}{0}
\setcounter{tcblayer}{0}
\setcounter{tcolorbox@number}{0}
\setcounter{section@level}{1}
}
...@@ -60,7 +60,7 @@ ...@@ -60,7 +60,7 @@
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 类似地,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英语译文之后,还有一个额外的步骤来把部分英语单词的大小写恢复出来,比如,上例中句首单词“Cats”的首字母要大写。 \parinterval 类似地,机器翻译输出的结果也可以包含同样的信息。甚至系统输出英语译文之后,还有一个额外的步骤来把部分英语单词的大小写恢复出来,比如,句首单词的首字母要大写。
\parinterval 一般来说,在送入机器翻译系统前需要对文字序列进行处理和加工,这个过程被称为{\small\bfnew{预处理}}\index{预处理}(Preprocessing)\index{Preprocessing}。类似地,在机器翻译模型输出译文后进行的处理被称作{\small\bfnew{后处理}}\index{后处理}(Postprocessing)\index{Postprocessing}。这两个过程对机器翻译性能影响很大,比如,对于神经机器翻译系统来说,不同的分词策略可能会造成翻译性能的天差地别。 \parinterval 一般来说,在送入机器翻译系统前需要对文字序列进行处理和加工,这个过程被称为{\small\bfnew{预处理}}\index{预处理}(Preprocessing)\index{Preprocessing}。类似地,在机器翻译模型输出译文后进行的处理被称作{\small\bfnew{后处理}}\index{后处理}(Postprocessing)\index{Postprocessing}。这两个过程对机器翻译性能影响很大,比如,对于神经机器翻译系统来说,不同的分词策略可能会造成翻译性能的天差地别。
...@@ -220,7 +220,7 @@ $计算这种切分的概率值。 ...@@ -220,7 +220,7 @@ $计算这种切分的概率值。
\parinterval 经过充分训练的统计模型$\funp{P}(\cdot)$就是我们所说的分词模型。对于输入的新句子$S$,通过这个模型找到最佳的分词结果输出。假设输入句子$S$是“确实现在数据很多”,可以通过列举获得不同切分方式的概率,其中概率最高的切分方式,就是系统的目标输出。 \parinterval 经过充分训练的统计模型$\funp{P}(\cdot)$就是我们所说的分词模型。对于输入的新句子$S$,通过这个模型找到最佳的分词结果输出。假设输入句子$S$是“确实现在数据很多”,可以通过列举获得不同切分方式的概率,其中概率最高的切分方式,就是系统的目标输出。
\parinterval 这种分词方法也被称作基于1-gram语言模型的分词,或全概率分词\upcite{刘挺1998最大概率分词问题及其解法,丁洁2010基于最大概率分词算法的中文分词方法研究}。全概率分词最大的优点在于方法简单、效率高,因此被广泛应用在工业界系统里。它本质上就是一个1-gram语言模型,因此可以直接复用$n$-gram语言模型的训练方法和未登录词处理方法。与传统$n$-gram语言模型稍有不同的是,分词的预测过程需要找到一个在给定字符串所有可能切分中1-gram语言模型得分最高的切分。因此,可以使用{\chaptertwo}中所描述的搜索算法实现这个预测过程,也可以使用动态规划方法快速找到最优切分结果。由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此不会对相关搜索算法进行进一步介绍,有兴趣的读者可以参考{\chaptertwo}和本章\ref{sec3:summary}节的相关文献做进一步深入研究。 \parinterval 这种分词方法也被称作基于1-gram语言模型的分词,或全概率分词\upcite{刘挺1998最大概率分词问题及其解法,丁洁2010基于最大概率分词算法的中文分词方法研究}。全概率分词最大的优点在于方法简单、效率高,因此被广泛应用在工业界系统里。它本质上就是一个1-gram语言模型,因此可以直接复用$n$-gram语言模型的训练方法和未登录词处理方法。与传统$n$-gram语言模型稍有不同的是,分词的预测过程需要找到一个在给定字符串所有可能切分中1-gram语言模型得分最高的切分。因此,可以使用{\chaptertwo}中所描述的搜索算法实现这个预测过程,也可以使用动态规划方法\upcite{bellman1966dynamic}快速找到最优切分结果。由于本节的重点是介绍中文分词的基础方法和统计建模思想,因此不会对相关搜索算法进行进一步介绍,有兴趣的读者可以参考{\chaptertwo}和本章\ref{sec3:summary}节的相关文献做进一步深入研究。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SECTION % NEW SECTION
...@@ -260,7 +260,7 @@ $计算这种切分的概率值。 ...@@ -260,7 +260,7 @@ $计算这种切分的概率值。
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
% %
\parinterval\ref{fig:3.3-1}给出了不同标注格式所对应的标注结果。可以看出文本序列中的非命名实体直接被标注为“O”,而命名实体的标注则被分为了两部分:位置和命名实体类别,图中的“B”、“I”、“E”等标注出了位置信息,而“CIT”和“CNT”则标注出了命名实体类别(“CIT”表示城市,“CNT”表示国家)。可以看到,命名实体的识别结果可以通过BIO、BIOES这类序列标注结果归纳出来:例如在BIOES格式中,标签“B-CNT”后面的标签只会是“I-CNT”或“E-CNT”,而不会是其他的标签。同时,在命名实体识别任务中涉及到实体边界的确定,而“BIO”或“BIOES”的标注格式本身就暗含着边界问题:在“BIO”格式下,实体左边界只能在“B”的左边,右边界只能在“B”或“I”的右边;在“BIOES”格式下,实体左边界只能在“B”或“S”的左边,右边界只能在“E”和“S”的右边 \parinterval\ref{fig:3.3-1}给出了不同标注格式所对应的标注结果。可以看出文本序列中的非命名实体直接被标注为“O”,而命名实体的标注则被分为了两部分:位置和命名实体类别,图中的“B”、“I”、“E”等标注出了位置信息,而“CIT”和“CNT”则标注出了命名实体类别(“CIT”表示城市,“CNT”表示国家)。可以看到,命名实体的识别结果可以通过BIO、BIOES这类序列标注结果归纳出来:例如在BIOES格式中,标签“B-CNT”后面的标签只会是“I-CNT”或“E-CNT”,而不会是其他的标签。同时,在命名实体识别任务中涉及到实体边界的确定,而“BIO”或“BIOES”的标注格式本身就暗含着边界问题:在“BIO”格式下,实体左边界只能在“B”的左侧,右边界只能在“B”或“I”的右侧;在“BIOES”格式下,实体左边界只能在“B”或“S”的左侧,右边界只能在“E”和“S”的右侧
\parinterval 需要注意的是,虽然图\ref{fig:3.3-1}中的命名实体识别以单词为基本单位进行标注,但真实系统中也可以在字序列上进行命名实体识别,其方法与基于词序列的命名实体识别是一样的。因此,这里仍然以基于词序列的方法为例进行介绍。 \parinterval 需要注意的是,虽然图\ref{fig:3.3-1}中的命名实体识别以单词为基本单位进行标注,但真实系统中也可以在字序列上进行命名实体识别,其方法与基于词序列的命名实体识别是一样的。因此,这里仍然以基于词序列的方法为例进行介绍。
...@@ -328,11 +328,11 @@ $计算这种切分的概率值。 ...@@ -328,11 +328,11 @@ $计算这种切分的概率值。
\parinterval 隐马尔可夫模型是一种经典的序列模型\upcite{Baum1966Statistical,baum1970maximization,1996Hidden}。它在语音识别、自然语言处理的很多领域得到了广泛的应用。隐马尔可夫模型的本质就是概率化的马尔可夫过程,这个过程隐含着状态间转移和可见状态生成的概率。 \parinterval 隐马尔可夫模型是一种经典的序列模型\upcite{Baum1966Statistical,baum1970maximization,1996Hidden}。它在语音识别、自然语言处理的很多领域得到了广泛的应用。隐马尔可夫模型的本质就是概率化的马尔可夫过程,这个过程隐含着状态间转移和可见状态生成的概率。
\parinterval 这里用一个简单的“抛硬币”游戏来对这些概念进行说明:假设有三枚质地不同的硬币A、B、C,已知这三个硬币抛出正面的概率分别为0.3、0.5、0.7,在游戏中,游戏发起者在上述三枚硬币中选择一枚硬币上抛,每枚硬币被挑选到的概率可能会受上次被挑选的硬币的影响,且每枚硬币正面向上的概率都各不相同。不停的重复挑选硬币、上抛硬币的过程,会得到一串硬币的正反序列,例如:抛硬币6次,得到:正正反反正反。游戏挑战者通过观察6次后获得的硬币正反序列,猜测每次选择的究竟是哪一枚硬币。 \parinterval 这里用一个简单的“抛硬币”游戏来对这些概念进行说明:假设有三枚质地不同的硬币$A$$B$$C$,已知这三个硬币抛出正面的概率分别为0.3、0.5、0.7,在游戏中,游戏发起者在上述三枚硬币中选择一枚硬币上抛,每枚硬币被挑选到的概率可能会受上次被挑选的硬币的影响,且每枚硬币正面向上的概率都各不相同。不停的重复挑选硬币、上抛硬币的过程,会得到一串硬币的正反序列,例如:抛硬币6次,得到:正正反反正反。游戏挑战者通过观察6次后获得的硬币正反序列,猜测每次选择的究竟是哪一枚硬币。
\parinterval 在上面的例子中,每次挑选并上抛硬币后得到的“正面”或“反面”即为“可见状态”,再次挑选并上抛硬币会获得新的“可见状态”,这个过程即为“状态的转移”,经过6次反复挑选上抛后得到的硬币正反序列叫做可见状态序列,由每个回合的可见状态构成。此外,在这个游戏中还暗含着一个会对最终“可见状态序列”产生影响的“隐含状态序列”\ \dash \ 每次挑选的硬币形成的序列,例如CBABCA \parinterval 在上面的例子中,每次挑选并上抛硬币后得到的“正面”或“反面”即为“可见状态”,再次挑选并上抛硬币会获得新的“可见状态”,这个过程即为“状态的转移”,经过6次反复挑选上抛后得到的硬币正反序列叫做可见状态序列,由每个回合的可见状态构成。此外,在这个游戏中还暗含着一个会对最终“可见状态序列”产生影响的“隐含状态序列”\ \dash \ 每次挑选的硬币形成的序列,例如$CBABCA$
\parinterval 实际上,隐马尔科夫模型在处理序列问题时的关键依据是两个至关重要的概率关系,并且这两个概率关系也始终贯穿于“抛硬币”的游戏中。一方面,隐马尔可夫模型中用{\small\bfnew{发射概率}}\index{发射概率}(Emission Probability)\index{Emission Probability}来描述隐含状态和可见状态之间存在的输出概率(即A、B、C 抛出正面的输出概率为0.3、0.5、0.7),同样的,隐马尔可夫模型还会描述系统隐含状态的{\small\bfnew{转移概率}}\index{转移概率}(Transition Probability)\index{Transition Probability},在这个例子中,A 的下一个状态是A、B、C 的概率都是1/3,B、C 的下一个状态是A、B、C 的转移概率也同样是1/3。图\ref{fig:3.3-2}展示了在“抛硬币”游戏中的转移概率和发射概率,它们都可以被看做是条件概率矩阵。 \parinterval 实际上,隐马尔科夫模型在处理序列问题时的关键依据是两个至关重要的概率关系,并且这两个概率关系也始终贯穿于“抛硬币”的游戏中。一方面,隐马尔可夫模型中用{\small\bfnew{发射概率}}\index{发射概率}(Emission Probability)\index{Emission Probability}来描述隐含状态和可见状态之间存在的输出概率(即$A$$B$$C$抛出正面的输出概率为0.3、0.5、0.7),同样的,隐马尔可夫模型还会描述系统隐含状态的{\small\bfnew{转移概率}}\index{转移概率}(Transition Probability)\index{Transition Probability},在这个例子中,$A$的下一个状态是$A$$B$$C$的概率都是1/3,$B$$C$的下一个状态是$A$$B$$C$的转移概率也同样是1/3。图\ref{fig:3.3-2}展示了在“抛硬币”游戏中的转移概率和发射概率,它们都可以被看做是条件概率矩阵。
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -356,7 +356,6 @@ $计算这种切分的概率值。 ...@@ -356,7 +356,6 @@ $计算这种切分的概率值。
\end{itemize} \end{itemize}
于是,联合概率$\funp{P}(\seq{X},\seq{Y})$可以被定义为: 于是,联合概率$\funp{P}(\seq{X},\seq{Y})$可以被定义为:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(\seq{X},\seq{Y}) & = & \funp{P}(\seq{X}|\seq{Y})\funp{P}(\seq{Y}) \nonumber \\ \funp{P}(\seq{X},\seq{Y}) & = & \funp{P}(\seq{X}|\seq{Y})\funp{P}(\seq{Y}) \nonumber \\
& = & \funp{P}(x_1,...,x_m|y_1,...,y_m) \funp{P}(y_1,...,y_m) \nonumber \\ & = & \funp{P}(x_1,...,x_m|y_1,...,y_m) \funp{P}(y_1,...,y_m) \nonumber \\
...@@ -435,7 +434,7 @@ $计算这种切分的概率值。 ...@@ -435,7 +434,7 @@ $计算这种切分的概率值。
\begin{figure}[htp] \begin{figure}[htp]
\centering \centering
\input{./Chapter3/Figures/figure-ner-based-on-hmm} \input{./Chapter3/Figures/figure-ner-based-on-hmm}
\caption{基于隐马尔可夫模型的命名实体识别(解码过程)} \caption{基于隐马尔可夫模型的命名实体识别}
\label{fig:3.3-4} \label{fig:3.3-4}
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
...@@ -446,7 +445,7 @@ $计算这种切分的概率值。 ...@@ -446,7 +445,7 @@ $计算这种切分的概率值。
\subsubsection{2. 条件随机场} \subsubsection{2. 条件随机场}
\parinterval 隐马尔可夫模型有一个很强的假设:一个隐含状态出现的概率仅由上一个隐含状态决定。这个假设也会带来一些问题,举个例子:在某个隐马尔可夫模型中,隐含状态集合为\{$A, B, C, D$\},可见状态集合为\{$T, F$\},其中隐含状态A可能的后继隐含状态集合为\{$A, B$\},隐含状态B可能的后继隐含状态集合为\{$A, B, C, D$\},于是有: \parinterval 隐马尔可夫模型有一个很强的假设:一个隐含状态出现的概率仅由上一个隐含状态决定。这个假设也会带来一些问题,举个例子:在某个隐马尔可夫模型中,隐含状态集合为\{$A, B, C, D$\},可见状态集合为\{$T, F$\},其中隐含状态$A$可能的后继隐含状态集合为\{$A, B$\},隐含状态$B$可能的后继隐含状态集合为\{$A, B, C, D$\},于是有:
\begin{eqnarray} \begin{eqnarray}
\funp{P}(A|A)+\funp{P}(A|B) & = & 1 \label{eq:3.3-6} \\ \funp{P}(A|A)+\funp{P}(A|B) & = & 1 \label{eq:3.3-6} \\
...@@ -455,7 +454,7 @@ $计算这种切分的概率值。 ...@@ -455,7 +454,7 @@ $计算这种切分的概率值。
\noindent 其中,$\funp{P}(b|a)$表示由状态$a$转移到状态$b$的概率,由于式(\ref{eq:3.3-6})中的分式数量少于式(\ref{eq:3.3-7}),这就导致在统计中获得的$\funp{P}(A|A)$$\funp{P}(A|B)$的值很可能会比$\funp{P}(A|B)$$\funp{P}(B|B)$$\funp{P}(C|B)$$\funp{P}(D|B)$要大。 \noindent 其中,$\funp{P}(b|a)$表示由状态$a$转移到状态$b$的概率,由于式(\ref{eq:3.3-6})中的分式数量少于式(\ref{eq:3.3-7}),这就导致在统计中获得的$\funp{P}(A|A)$$\funp{P}(A|B)$的值很可能会比$\funp{P}(A|B)$$\funp{P}(B|B)$$\funp{P}(C|B)$$\funp{P}(D|B)$要大。
\parinterval\ref{fig:3.3-5}展示了一个具体的例子,有一个可见状态序列T F F T,假设初始隐含状态是A,图中线上的概率值是对应的转移概率与发射概率的乘积,比如图中隐含状态A开始,下一个隐含状态是A 且可见状态是F 的概率是0.45,下一个隐含状态是B 且可见状态是F的概率是0.55。图中可以看出,由于有较大的值,当可见状态序列为T F F T时,隐马尔可夫计算出的最有可能的隐含状态序列为A A A A。但是如果对训练集进行统计可能会发现,当可见序列为T F F T 时,对应的隐含状态是A A A A的概率可能是比较大的,但也可能是比较小的。这个例子中出现预测偏差的主要原因是:由于比其他状态转移概率要大得多,隐含状态的预测一直停留在状态A \parinterval\ref{fig:3.3-5}展示了一个具体的例子,有一个可见状态序列$T F F T$,假设初始隐含状态是$A$,图中线上的概率值是对应的转移概率与发射概率的乘积,比如图中隐含状态$A$开始,下一个隐含状态是$A$且可见状态是$F$的概率是0.45,下一个隐含状态是$B$且可见状态是$F$的概率是0.55。图中可以看出,由于有较大的值,当可见状态序列为$T F F T$时,隐马尔可夫计算出的最有可能的隐含状态序列为$A A A A$。但是如果对训练集进行统计可能会发现,当可见序列为$T F F T$ 时,对应的隐含状态是$A A A A$的概率可能是比较大的,但也可能是比较小的。这个例子中出现预测偏差的主要原因是:由于比其他状态转移概率要大得多,隐含状态的预测一直停留在状态$A$
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
...@@ -532,7 +531,7 @@ Z(\seq{X})=\sum_{\seq{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y ...@@ -532,7 +531,7 @@ Z(\seq{X})=\sum_{\seq{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y
\parinterval 无论在日常生活中还是在研究工作中,都会遇到各种各样的分类问题,例如挑选西瓜时需要区分“好瓜”和“坏瓜”、编辑看到一篇新闻稿件时要对稿件进行分门别类。事实上,在机器学习中,对“分类任务”的定义会更宽泛而并不拘泥于“类别”的概念,在对样本进行预测时,只要预测标签集合是有限的且预测标签是离散的,就可认定其为分类任务。 \parinterval 无论在日常生活中还是在研究工作中,都会遇到各种各样的分类问题,例如挑选西瓜时需要区分“好瓜”和“坏瓜”、编辑看到一篇新闻稿件时要对稿件进行分门别类。事实上,在机器学习中,对“分类任务”的定义会更宽泛而并不拘泥于“类别”的概念,在对样本进行预测时,只要预测标签集合是有限的且预测标签是离散的,就可认定其为分类任务。
\parinterval 具体来说,分类任务目标是训练一个可以根据输入数据预测离散标签的{\small\bfnew{分类器}}\index{分类器}(Classifier\index{Classifier}),也可称为分类模型。在有监督的分类任务中\footnote{与之相对应的,还有无监督、半监督分类任务,不过这些内容不是本书讨论的重点。读者可以参看参考文献\upcite{周志华2016机器学习,李航2019统计学习方法}对相关概念进行了解。},训练数据集合通常由形似$(\seq{x}_i,y_i)$的带标注数据构成,$\seq{x}_i=(x_i^1,x_i^2,\ldots,x_i^k)$作为分类器的输入数据(通常被称作一个训练样本),其中$x_i^j$表示样本$\seq{x}_i$的第$j$个特征;$y_i$作为输入数据对应的{\small\bfnew{标签}}\index{标签}(Label)\index{Label},反映了输入数据对应的“类别”。若标签集合大小为$n$,则分类任务的本质是通过对训练数据集合的学习,建立一个从$k$ 维样本空间到$n$维标签空间的映射关系。更确切地说,分类任务的最终目标是学习一个条件概率分布$\funp{P}(y|\seq{x})$,这样对于输入$\seq{x}$可以找到概率最大的$y$作为分类结果输出。 \parinterval 具体来说,分类任务目标是训练一个可以根据输入数据预测离散标签的{\small\bfnew{分类器}}\index{分类器}(Classifier\index{Classifier}),也可称为分类模型。在有监督的分类任务中\footnote{与之相对应的,还有无监督、半监督分类任务,不过这些内容不是本书讨论的重点。读者可以参看参考文献\upcite{周志华2016机器学习,李航2019统计学习方法}对相关概念进行了解。},训练数据集合通常由形似$(\boldsymbol{x_i},y_i)$的带标注数据构成,$\boldsymbol{x_i}=(x_{i1},x_{i2},\ldots,x_{ik})$作为分类器的输入数据(通常被称作一个训练样本),其中$x_{ij}$表示样本$\boldsymbol{x_i}$的第$j$个特征;$y_i$作为输入数据对应的{\small\bfnew{标签}}\index{标签}(Label)\index{Label},反映了输入数据对应的“类别”。若标签集合大小为$n$,则分类任务的本质是通过对训练数据集合的学习,建立一个从$k$ 维样本空间到$n$维标签空间的映射关系。更确切地说,分类任务的最终目标是学习一个条件概率分布$\funp{P}(y|\boldsymbol{x})$,这样对于输入$\boldsymbol{x}$可以找到概率最大的$y$作为分类结果输出。
\parinterval 与概率图模型一样,分类模型中也依赖特征定义。其定义形式与\ref{sec3:feature}节的描述一致,这里不再赘述。分类任务一般根据类别数量分为二分类任务和多分类任务,二分类任务是最经典的分类任务,只需要对输出进行非零即一的预测。多分类任务则可以有多种处理手段,比如,可以将其“拆解”为多个二分类任务求解,或者直接让模型输出多个类别中的一个。在命名实体识别中,往往会使用多类别分类模型。比如,在BIO标注下,有三个类别(B、I和O)。一般来说,类别数量越大分类的难度也越大。比如,BIOES标注包含5个类别,因此使用同样的分类器,它要比BIO标注下的分类问题难度大。另一方面,更多的类别有助于准确的刻画目标问题。因此在实践中需要在类别数量和分类难度之间找到一种平衡。 \parinterval 与概率图模型一样,分类模型中也依赖特征定义。其定义形式与\ref{sec3:feature}节的描述一致,这里不再赘述。分类任务一般根据类别数量分为二分类任务和多分类任务,二分类任务是最经典的分类任务,只需要对输出进行非零即一的预测。多分类任务则可以有多种处理手段,比如,可以将其“拆解”为多个二分类任务求解,或者直接让模型输出多个类别中的一个。在命名实体识别中,往往会使用多类别分类模型。比如,在BIO标注下,有三个类别(B、I和O)。一般来说,类别数量越大分类的难度也越大。比如,BIOES标注包含5个类别,因此使用同样的分类器,它要比BIO标注下的分类问题难度大。另一方面,更多的类别有助于准确的刻画目标问题。因此在实践中需要在类别数量和分类难度之间找到一种平衡。
...@@ -626,7 +625,7 @@ Z(\seq{X})=\sum_{\seq{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y ...@@ -626,7 +625,7 @@ Z(\seq{X})=\sum_{\seq{Y}}\exp(\sum_{i=1}^m\sum_{j=1}^k\lambda_{j}F_{j}(y_{i-1},y
\parinterval 句法树是对句子的一种抽象,这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。 \parinterval 句法树是对句子的一种抽象,这种树形结构表达了一种对句子结构的归纳过程,比如,从树的叶子开始,把每一个树节点看作一次抽象,最终形成一个根节点。那这个过程如何用计算机来实现呢?这就需要使用到形式文法。
\parinterval 形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义\upcite{chomsky2002syntactic},形式文法分为四种类型:无限制文法(0型文法)、上下文有关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是{\small\bfnew{上下文无关文法}}\index{上下文无关文法}(Context-Free Grammar)\index{Context-Free Grammar}。上下文无关文法的具体形式如下: \parinterval 形式文法是分析自然语言的一种重要工具。根据乔姆斯基的定义\upcite{chomsky1957syntactic},形式文法分为四种类型:无限制文法(0型文法)、上下文有关文法(1型文法)、上下文无关文法(2型文法)和正规文法(3型文法)。不同类型的文法有不同的应用,比如,正规文法可以用来描述有限状态自动机,因此也会被使用在语言模型等系统中。对于短语结构分析问题,常用的是{\small\bfnew{上下文无关文法}}\index{上下文无关文法}(Context-Free Grammar)\index{Context-Free Grammar}。上下文无关文法的具体形式如下:
%------------------------------------------- %-------------------------------------------
\vspace{0.5em} \vspace{0.5em}
......
...@@ -266,7 +266,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -266,7 +266,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-3}中,$\funp{P}(d,\seq{t}|\seq{s})$表示翻译推导的概率。公式\ref{eq:7-3}把翻译问题转化为翻译推导的生成问题。但是,由于翻译推导的数量十分巨大\footnote[3]{如果把推导看作是一种树结构,推导的数量与词串的长度成指数关系。},公式\ref{eq:7-3}的右端需要对所有可能的推导进行枚举并求和,这几乎是无法计算的。 \parinterval 公式\eqref{eq:7-3}中,$\funp{P}(d,\seq{t}|\seq{s})$表示翻译推导的概率。公式\eqref{eq:7-3}把翻译问题转化为翻译推导的生成问题。但是,由于翻译推导的数量十分巨大\footnote[3]{如果把推导看作是一种树结构,推导的数量与词串的长度成指数关系。},公式\eqref{eq:7-3}的右端需要对所有可能的推导进行枚举并求和,这几乎是无法计算的。
\parinterval 对于这个问题,常用的解决办法是利用一个化简的模型来近似完整的模型。如果把翻译推导的全体看作一个空间$D$,可以从$D$中选取一部分样本参与计算,而不是对整个$D$进行计算。比如,可以用最好的$n$个翻译推导来代表整个空间$D$。令$D_{n\textrm{-best}}$表示最好的$n$个翻译推导所构成的空间,于是可以定义: \parinterval 对于这个问题,常用的解决办法是利用一个化简的模型来近似完整的模型。如果把翻译推导的全体看作一个空间$D$,可以从$D$中选取一部分样本参与计算,而不是对整个$D$进行计算。比如,可以用最好的$n$个翻译推导来代表整个空间$D$。令$D_{n\textrm{-best}}$表示最好的$n$个翻译推导所构成的空间,于是可以定义:
\begin{eqnarray} \begin{eqnarray}
...@@ -274,7 +274,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -274,7 +274,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\label{eq:7-4} \label{eq:7-4}
\end{eqnarray} \end{eqnarray}
\parinterval 进一步,把公式\ref{eq:7-4}带入公式\ref{eq:7-2},可以得到翻译的目标为: \parinterval 进一步,把公式\eqref{eq:7-4}带入公式\eqref{eq:7-2},可以得到翻译的目标为:
\begin{eqnarray} \begin{eqnarray}
\hat{\seq{t}} = \arg\max_{\seq{t}} \sum_{d \in D_{n\textrm{-best}}} \funp{P}(d,\seq{t}|\seq{s}) \hat{\seq{t}} = \arg\max_{\seq{t}} \sum_{d \in D_{n\textrm{-best}}} \funp{P}(d,\seq{t}|\seq{s})
\label{eq:7-5} \label{eq:7-5}
...@@ -292,7 +292,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -292,7 +292,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\label{eq:7-7} \label{eq:7-7}
\end{eqnarray} \end{eqnarray}
\parinterval 值得注意的是,翻译推导中蕴含着译文的信息,因此每个翻译推导都与一个译文对应。因此可以把公式\ref{eq:7-7}所描述的问题重新定义为: \parinterval 值得注意的是,翻译推导中蕴含着译文的信息,因此每个翻译推导都与一个译文对应。因此可以把公式\eqref{eq:7-7}所描述的问题重新定义为:
\begin{eqnarray} \begin{eqnarray}
\hat{d} = \arg\max_{d} \funp{P}(d,\seq{t}|\seq{s}) \hat{d} = \arg\max_{d} \funp{P}(d,\seq{t}|\seq{s})
\label{eq:7-8} \label{eq:7-8}
...@@ -304,7 +304,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -304,7 +304,7 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\label{eq:7-9} \label{eq:7-9}
\end{eqnarray} \end{eqnarray}
\parinterval 注意,公式\ref{eq:7-8}-\ref{eq:7-9}和公式\ref{eq:7-7}本质上是一样的。它们也构成了统计机器翻译中最常用的方法\ \dash \ Viterbi方法\upcite{DBLP:journals/tit/Viterbi67}。在后面机器翻译的解码中还会看到它们的应用。而公式\ref{eq:7-5}也被称作$n$-best方法,常常作为Viterbi方法的一种改进。 \parinterval 注意,公式\eqref{eq:7-8}-\eqref{eq:7-9}和公式\eqref{eq:7-7}本质上是一样的。它们也构成了统计机器翻译中最常用的方法\ \dash \ Viterbi方法\upcite{DBLP:journals/tit/Viterbi67}。在后面机器翻译的解码中还会看到它们的应用。而公式\eqref{eq:7-5}也被称作$n$-best方法,常常作为Viterbi方法的一种改进。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -325,14 +325,14 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c ...@@ -325,14 +325,14 @@ d = {(\bar{s}_{\bar{a}_1},\bar{t}_1)} \circ {(\bar{s}_{\bar{a}_2},\bar{t}_2)} \c
\label{eq:7-11} \label{eq:7-11}
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-11}是一种典型的{\small\bfnew{对数线性模型}}\index{对数线性模型}(Log-linear Model)\index{Log-linear Model}。所谓“对数线性”体现在对多个量求和后进行指数运算($\textrm{exp}(\cdot)$),这相当于对多个因素进行乘法。公式\ref{eqa4.10}的右端是一种归一化操作。分子部分可以被看作是一种对翻译推导$d$的对数线性建模。具体来说,对于每个$d$,用$M$个特征对其进行描述。每个特征用函数$h_i (d,\seq{t},\seq{s})$表示,它对应一个权重$\lambda_i$,表示特征$i$的重要性。$\sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s})$表示了对这些特征的线性加权和,值越大表示模型得分越高,相应的$d$$\seq{t}$的质量越高。公式\ref{eqa4.10}的分母部分实际上不需要计算,因为其值与求解最佳推导的过程无关。把公式\ref{eqa4.10}带入公式\ref{eq:7-8}得到: \parinterval 公式\eqref{eq:7-11}是一种典型的{\small\bfnew{对数线性模型}}\index{对数线性模型}(Log-linear Model)\index{Log-linear Model}。所谓“对数线性”体现在对多个量求和后进行指数运算($\textrm{exp}(\cdot)$),这相当于对多个因素进行乘法。公式\eqref{eqa4.10}的右端是一种归一化操作。分子部分可以被看作是一种对翻译推导$d$的对数线性建模。具体来说,对于每个$d$,用$M$个特征对其进行描述,每个特征用函数$h_i (d,\seq{t},\seq{s})$表示,它对应一个权重$\lambda_i$,表示特征$i$的重要性。$\sum_{i=1}^{M} \lambda_i \cdot h_i (d,\seq{t},\seq{s})$表示了对这些特征的线性加权和,值越大表示模型得分越高,相应的$d$$\seq{t}$的质量越高。公式\eqref{eqa4.10}的分母部分实际上不需要计算,因为其值与求解最佳推导的过程无关。把公式\eqref{eqa4.10}带入公式\eqref{eq:7-8}得到:
\begin{eqnarray} \begin{eqnarray}
\hat{d} &=& \arg\max_{d} \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \nonumber \\ \hat{d} &=& \arg\max_{d} \frac{\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))}{\sum_{d',\seq{t}'} \textrm{exp}(\textrm{score}(d',\seq{t}',\seq{s}))} \nonumber \\
&=& \arg\max_{d}\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s})) &=& \arg\max_{d}\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))
\label{eq:7-12} \label{eq:7-12}
\end{eqnarray} \end{eqnarray}
\parinterval 公式\ref{eq:7-12}中,$\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$表示指数化的模型得分,记为$\textrm{mscore}(d,\seq{t},\seq{s}) = \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$。于是,翻译问题就可以被描述为:找到使函数$\textrm{mscore}(d,\seq{t},\seq{s})$达到最大的$d$。由于,$\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$$\textrm{score}(d,\seq{t},\seq{s})$是单调一致的,因此有时也直接把$\textrm{score}(d,\seq{t},\seq{s})$当做模型得分。 \parinterval 公式\eqref{eq:7-12}中,$\ \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$表示指数化的模型得分,记为$\textrm{mscore}(d,\seq{t},\seq{s}) = \textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$。于是,翻译问题就可以被描述为:找到使函数$\textrm{mscore}(d,\seq{t},\seq{s})$达到最大的$d$。由于,$\textrm{exp}(\textrm{score}(d,\seq{t},\seq{s}))$$\textrm{score}(d,\seq{t},\seq{s})$是单调一致的,因此有时也直接把$\textrm{score}(d,\seq{t},\seq{s})$当做模型得分。
%---------------------------------------------------------------------------------------- %----------------------------------------------------------------------------------------
% NEW SUB-SECTION % NEW SUB-SECTION
...@@ -583,7 +583,7 @@ dr = start_i-end_{i-1}-1 ...@@ -583,7 +583,7 @@ dr = start_i-end_{i-1}-1
\label{eq:7-16} \label{eq:7-16}
\end{eqnarray} \end{eqnarray}
\noindent 其中,$o_i$表示(目标语言)第$i$个短语的调序方向,$\mathbf{o}=\{o_i\}$表示短语序列的调序方向,$K$表示短语的数量。短语之间的调序概率是由双语短语以及短语对齐决定的,$o$表示调序的种类,可以取M、S、D 中的任意一种。而整个句子调序的好坏就是把相邻的短语之间的调序概率相乘(对应取log后的加法)。这样,公式\ref{eq:7-16}把调序的好坏定义为新的特征,对于M、S、D总共就有三个特征。除了当前短语和前一个短语的调序特征,还可以定义当前短语和后一个短语的调序特征,即将上述公式中的$a_{i-1}$换成$a_{i+1}$。 于是,又可以得到三个特征。因此在MSD调序中总共可以有6个特征。 \noindent 其中,$o_i$表示(目标语言)第$i$个短语的调序方向,$\mathbf{o}=\{o_i\}$表示短语序列的调序方向,$K$表示短语的数量。短语之间的调序概率是由双语短语以及短语对齐决定的,$o$表示调序的种类,可以取M、S、D 中的任意一种。而整个句子调序的好坏就是把相邻的短语之间的调序概率相乘(对应取log后的加法)。这样,公式\eqref{eq:7-16}把调序的好坏定义为新的特征,对于M、S、D总共就有三个特征。除了当前短语和前一个短语的调序特征,还可以定义当前短语和后一个短语的调序特征,即将上述公式中的$a_{i-1}$换成$a_{i+1}$。 于是,又可以得到三个特征。因此在MSD调序中总共可以有6个特征。
\parinterval 具体实现时,通常使用词对齐对两个短语间的调序关系进行判断。图\ref{fig:7-22}展示了这个过程。先判断短语的左上角和右上角是否存在词对齐,再根据其位置对调序类型进行划分。每个短语对应的调序概率都可以用相对频次估计进行计算。而MSD调序模型也相当于在短语表中的每个双语短语后添加6个特征。不过,调序模型一般并不会和短语表一起存储,因此在系统中通常会看到两个独立的模型文件,分别保存短语表和调序模型。 \parinterval 具体实现时,通常使用词对齐对两个短语间的调序关系进行判断。图\ref{fig:7-22}展示了这个过程。先判断短语的左上角和右上角是否存在词对齐,再根据其位置对调序类型进行划分。每个短语对应的调序概率都可以用相对频次估计进行计算。而MSD调序模型也相当于在短语表中的每个双语短语后添加6个特征。不过,调序模型一般并不会和短语表一起存储,因此在系统中通常会看到两个独立的模型文件,分别保存短语表和调序模型。
...@@ -665,7 +665,7 @@ dr = start_i-end_{i-1}-1 ...@@ -665,7 +665,7 @@ dr = start_i-end_{i-1}-1
\end{eqnarray} \end{eqnarray}
%公式-------------------------------------------------------------------- %公式--------------------------------------------------------------------
\noindent 其中,\textrm{Error}$(\cdot)$是错误率函数。\textrm{Error}$(\cdot)$的定义方式有很多,一般来说\textrm{Error}$(\cdot)$会与机器翻译的评价指标相关,例如,词错误率(WER)、位置错误率(PER)、BLEU 值、NIST值等都可以用于\textrm{Error}$(\cdot)$的定义。这里使用$1-$BLEU作为错误率函数,即$\textrm{Error}(\hat{\seq{D}},\seq{R}) = 1 - \textrm{BLEU}(\hat{\seq{D}},\seq{R})$。则公式\ref{eq:7-18}可改写为: \noindent 其中,\textrm{Error}$(\cdot)$是错误率函数。\textrm{Error}$(\cdot)$的定义方式有很多,一般来说\textrm{Error}$(\cdot)$会与机器翻译的评价指标相关,例如,词错误率(WER)、位置错误率(PER)、BLEU 值、NIST值等都可以用于\textrm{Error}$(\cdot)$的定义。这里使用$1-$BLEU作为错误率函数,即$\textrm{Error}(\hat{\seq{D}},\seq{R}) = 1 - \textrm{BLEU}(\hat{\seq{D}},\seq{R})$。则公式\eqref{eq:7-18}可改写为:
%公式-------------------------------------------------------------------- %公式--------------------------------------------------------------------
\begin{eqnarray} \begin{eqnarray}
\hat{\lambda} &=& \arg\min_{\lambda}\ (1 - \textrm{BLEU}(\hat{\seq{D}},\seq{R})) \nonumber \\ \hat{\lambda} &=& \arg\min_{\lambda}\ (1 - \textrm{BLEU}(\hat{\seq{D}},\seq{R})) \nonumber \\
...@@ -674,7 +674,7 @@ dr = start_i-end_{i-1}-1 ...@@ -674,7 +674,7 @@ dr = start_i-end_{i-1}-1
\end{eqnarray} \end{eqnarray}
%公式-------------------------------------------------------------------- %公式--------------------------------------------------------------------
\parinterval 需要注意的是, BLEU本身是一个不可微分函数。因此,无法使用梯度下降等方法对式\ref{eq:7-19}进行求解。那么如何能快速得到最优解?这里会使用一种特殊的优化方法,称作{\small\bfnew{线搜索}}\index{线搜索}(Line Search)\index{Line Search},它是Powell搜索的一种形式\upcite{powell1964an}。这种方法也构成了最小错误率训练的核心。 \parinterval 需要注意的是, BLEU本身是一个不可微分函数。因此,无法使用梯度下降等方法对式\eqref{eq:7-19}进行求解。那么如何能快速得到最优解?这里会使用一种特殊的优化方法,称作{\small\bfnew{线搜索}}\index{线搜索}(Line Search)\index{Line Search},它是Powell搜索的一种形式\upcite{powell1964an}。这种方法也构成了最小错误率训练的核心。
\parinterval 首先,重新看一下特征权重的搜索空间。按照前面的介绍,如果要进行暴力搜索,需要把特征权重的取值按小的间隔进行划分。这样,所有特征权重的取值可以用图\ref{fig:7-23}的网格来表示。 \parinterval 首先,重新看一下特征权重的搜索空间。按照前面的介绍,如果要进行暴力搜索,需要把特征权重的取值按小的间隔进行划分。这样,所有特征权重的取值可以用图\ref{fig:7-23}的网格来表示。
...@@ -687,11 +687,11 @@ dr = start_i-end_{i-1}-1 ...@@ -687,11 +687,11 @@ dr = start_i-end_{i-1}-1
\end{figure} \end{figure}
%------------------------------------------- %-------------------------------------------
\parinterval 其中横坐标为所有的$M$个特征函数,纵坐标为权重可能的取值。假设每个特征都有$V$种取值,那么遍历所有特征权重取值的组合有$M^V$种。每组$\lambda = \{\lambda_i\}$的取值实际上就是一个贯穿所有特征权重的折线,如图\ref{fig:7-23}中间线所展示的路径。当然,可以通过枚举得到很多这样的折线(图\ref{fig:7-23}右)。假设计算BLEU的时间开销为$B$,那么遍历所有的路径的时间复杂度为$O(M^V \cdot B)$,由于$V$可能很大,而且$B$往往也无法忽略,因此这种计算方式的时间成本是极高的。如果考虑对每一组特征权重都需要重新解码得到$n$-best译文,那么基于这种简单枚举的方法是无法使用的。 \parinterval 其中横坐标为所有的$M$个特征函数,纵坐标为权重可能的取值。假设每个特征都有$V$种取值,那么遍历所有特征权重取值的组合有$M^V$种。每组$\lambda = \{\lambda_i\}$的取值实际上就是一个贯穿所有特征权重的折线,如图\ref{fig:7-23}中间线所展示的路径。当然,可以通过枚举得到很多这样的折线(图\ref{fig:7-23}右)。假设计算BLEU的时间开销为$B$,那么遍历所有的路径的时间复杂度为$O(M^V \cdot B)$,由于$V$可能很大,而且$B$往往也无法忽略,因此这种计算方式的时间成本是极高的。如果考虑对每一组特征权重都需要重新解码得到$n$-best译文,那么基于这种简单枚举的方法是无法使用的。
\parinterval 对全搜索的一种改进是使用局部搜索。循环处理每个特征,每一次只调整一个特征权重的值,找到使BLEU达到最大的权重。反复执行该过程,直到模型达到稳定状态(例如BLEU不再降低)。 \parinterval 对全搜索的一种改进是使用局部搜索。循环处理每个特征,每一次只调整一个特征权重的值,找到使BLEU达到最大的权重。反复执行该过程,直到模型达到稳定状态(例如BLEU不再降低)。
\parinterval\ref{fig:7-24}左侧展示了这种方法。其中色部分为固定住的权重,相应的虚线部分为当前权重所有可能的取值,这样搜索一个特征权重的时间复杂度为$O(V \cdot B)$。而整个算法的时间复杂度为$O(L \cdot V \cdot B)$,其中$L$为循环访问特征的总次数。这种方法也被称作{\small\bfnew{格搜索}}\index{格搜索}(Grid Search)\index{Grid Search} \parinterval\ref{fig:7-24}左侧展示了这种方法。其中色部分为固定住的权重,相应的虚线部分为当前权重所有可能的取值,这样搜索一个特征权重的时间复杂度为$O(V \cdot B)$。而整个算法的时间复杂度为$O(L \cdot V \cdot B)$,其中$L$为循环访问特征的总次数。这种方法也被称作{\small\bfnew{格搜索}}\index{格搜索}(Grid Search)\index{Grid Search}
%---------------------------------------------- %----------------------------------------------
\begin{figure}[htp] \begin{figure}[htp]
......
...@@ -847,25 +847,28 @@ ...@@ -847,25 +847,28 @@
%%%%% chapter 3------------------------------------------------------ %%%%% chapter 3------------------------------------------------------
@inproceedings{ng2002discriminative, @inproceedings{ng2002discriminative,
title ={On discriminative vs. generative classifiers: A comparison of logistic regression and naive bayes}, author = {Andrew Y. Ng and
author ={Ng, Andrew Y and Jordan, Michael I}, Michael I. Jordan},
pages ={841--848}, title = {On Discriminative vs. Generative Classifiers: {A} comparison of logistic
year ={2002} regression and naive Bayes},
pages = {841--848},
publisher = {{MIT} Press},
year = {2001},
} }
@proceedings{huang2008advanced, @inproceedings{huang2008coling,
title = {Coling 2008: Advanced Dynamic Programming in Computational Linguistics: Theory, Algorithms and Applications - Tutorial notes}, author = {Huang, Liang},
title = {Coling 2008: Advanced Dynamic Programming in Computational Linguistics: Theory, Algorithms and Applications-Tutorial notes},
year = {2008}, year = {2008},
address = {Manchester, UK}, publisher = {International Conference on Computational Linguistics},
publisher = {Coling 2008 Organizing Committee},
} }
@book{aho1972theory, @book{aho1972theory,
author = {Alfred V. Aho and author = {Aho, Alfred V and
Jeffrey D. Ullman}, Ullman, Jeffrey D},
title = {The theory of parsing, translation, and compiling. 2: Compiling}, title = {The theory of parsing, translation, and compiling},
publisher = {Prentice-Hall}, publisher = {Prentice-Hall Englewood Cliffs, NJ},
year = {1973}, year = {1973},
} }
...@@ -874,7 +877,7 @@ ...@@ -874,7 +877,7 @@
author={Rau, Lisa F}, author={Rau, Lisa F},
pages={29--30}, pages={29--30},
year={1991}, year={1991},
organization={IEEE Computer Society} publisher={IEEE Conference on Artificial Intelligence Application},
} }
@article{张小衡1997中文机构名称的识别与分析, @article{张小衡1997中文机构名称的识别与分析,
...@@ -887,11 +890,16 @@ ...@@ -887,11 +890,16 @@
year={1997}, year={1997},
} }
@article{lample2016neural, @inproceedings{lample2016neural,
title={Neural architectures for named entity recognition}, author = {Guillaume Lample and
author={Lample, Guillaume and Ballesteros, Miguel and Subramanian, Sandeep and Kawakami, Kazuya and Dyer, Chris}, Miguel Ballesteros and
journal={arXiv preprint arXiv:1603.01360}, Sandeep Subramanian and
year={2016} Kazuya Kawakami and
Chris Dyer},
title = {Neural Architectures for Named Entity Recognition},
pages = {260--270},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2016},
} }
@article{Baum1966Statistical, @article{Baum1966Statistical,
...@@ -912,7 +920,6 @@ ...@@ -912,7 +920,6 @@
number={1}, number={1},
pages={164--171}, pages={164--171},
year={1970}, year={1970},
publisher={JSTOR}
} }
@article{1977Maximum, @article{1977Maximum,
...@@ -926,19 +933,13 @@ ...@@ -926,19 +933,13 @@
@article{1967Error, @article{1967Error,
title={Error bounds for convolutional codes and an asymptotically optimum decoding algorithm}, title={Error bounds for convolutional codes and an asymptotically optimum decoding algorithm},
author={ Viterbi, Andrew J. }, author={ Viterbi, Andrew J. },
journal={IEEE Trans.informat.theory}, journal={IEEE Transactions on Information Theory},
volume={13}, volume={13},
number={2}, number={2},
pages={260-269}, pages={260-269},
year={1967}, year={1967},
} }
@article{lafferty2001conditional,
title={Conditional random fields: Probabilistic models for segmenting and labeling sequence data},
author={Lafferty, John and McCallum, Andrew and Pereira, Fernando CN},
year={2001}
}
@article{harrington2013机器学习实战, @article{harrington2013机器学习实战,
title={机器学习实战}, title={机器学习实战},
author={Harrington, Peter}, author={Harrington, Peter},
...@@ -951,41 +952,36 @@ ...@@ -951,41 +952,36 @@
author = {Brants, Thorsten}, author = {Brants, Thorsten},
month = apr, month = apr,
year = {2000}, year = {2000},
address = {Seattle, Washington, USA},
publisher = {Association for Computational Linguistics}, publisher = {Association for Computational Linguistics},
doi = {10.3115/974147.974178},
pages = {224--231}, pages = {224--231},
} }
@inproceedings{tsuruoka-tsujii-2005-chunk, @inproceedings{tsuruoka-tsujii-2005-chunk,
title = {Chunk Parsing Revisited}, title = {Chunk Parsing Revisited},
author = {Tsuruoka, Yoshimasa and author = {Yoshimasa Tsuruoka and
Tsujii, Jun{'}ichi}, Jun'ichi Tsujii},
month = oct, month = oct,
year = {2005}, year = {2005},
address = {Vancouver, British Columbia}, publisher = {Annual Meeting of the Association for Computational Linguistics},
publisher = {Association for Computational Linguistics},
pages = {133--140}, pages = {133--140},
} }
@inproceedings{li-etal-2003-news-oriented, @inproceedings{li-etal-2003-news-oriented,
title = {News-Oriented Automatic {C}hinese Keyword Indexing}, title = {News-Oriented Automatic Chinese Keyword Indexing},
author = {Li, Sujian and author = {Li, Sujian and
Wang, Houfeng and Wang, Houfeng and
Yu, Shiwen and Yu, Shiwen and
Xin, Chengsheng}, Xin, Chengsheng},
month = jul, month = jul,
year = {2003}, year = {2003},
address = {Sapporo, Japan}, publisher = {Annual Meeting of the Association for Computational Linguistics},
publisher = {Association for Computational Linguistics},
doi = {10.3115/1119250.1119263},
pages = {92--97}, pages = {92--97},
} }
@article{2015Bidirectional, @article{2015Bidirectional,
title={Bidirectional LSTM-CRF Models for Sequence Tagging}, title={Bidirectional LSTM-CRF Models for Sequence Tagging},
author={ Huang, Zhiheng and Xu, Wei and Yu, Kai }, author={ Huang, Zhiheng and Xu, Wei and Yu, Kai },
journal={Computer ence}, journal={CoRR},
year={2015}, year={2015},
} }
...@@ -1000,10 +996,13 @@ ...@@ -1000,10 +996,13 @@
} }
@inproceedings{vzukov2018named, @inproceedings{vzukov2018named,
title={Named entity recognition with parallel recurrent neural networks}, author = {Andrej Zukov Gregoric and
author={{\v{Z}}ukov-Gregori{\v{c}}, Andrej and Bachrach, Yoram and Coope, Sam}, Yoram Bachrach and
pages={69--74}, Sam Coope},
year={2018} title = {Named Entity Recognition With Parallel Recurrent Neural Networks},
pages = {69--74},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2018},
} }
@article{Li2020A, @article{Li2020A,
...@@ -1016,29 +1015,196 @@ ...@@ -1016,29 +1015,196 @@
year={2020}, year={2020},
} }
@article{devlin2018bert, @article{devlin2019bert,
title={Bert: Pre-training of deep bidirectional transformers for language understanding}, title={Bert: Pre-training of deep bidirectional transformers for language understanding},
author={Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina}, author={Devlin, Jacob and Chang, Ming-Wei and Lee, Kenton and Toutanova, Kristina},
journal={arXiv preprint arXiv:1810.04805}, year={2019},
year={2018} pages = {4171--4186},
} journal = {Annual Meeting of the Association for Computational Linguistics},
}
@article{conneau2019unsupervised, @inproceedings{conneau2019unsupervised,
title={Unsupervised cross-lingual representation learning at scale}, author = {Alexis Conneau and
author={Conneau, Alexis and Khandelwal, Kartikay and Goyal, Naman and Chaudhary, Vishrav and Wenzek, Guillaume and Guzm{\'a}n, Francisco and Grave, Edouard and Ott, Myle and Zettlemoyer, Luke and Stoyanov, Veselin}, Kartikay Khandelwal and
journal={arXiv preprint arXiv:1911.02116}, Naman Goyal and
year={2019} Vishrav Chaudhary and
Guillaume Wenzek and
Francisco Guzm{\'{a}}n and
Edouard Grave and
Myle Ott and
Luke Zettlemoyer and
Veselin Stoyanov},
title = {Unsupervised Cross-lingual Representation Learning at Scale},
pages = {8440--8451},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2020},
} }
@book{chomsky1993lectures, @book{chomsky1993lectures,
title={Lectures on government and binding: The Pisa lectures}, title={Lectures on government and binding: The Pisa lectures},
author={Chomsky, Noam}, author={Chomsky, Noam},
number={9},
year={1993}, year={1993},
publisher={Walter de Gruyter} publisher={Walter de Gruyter}
} }
@inproceedings{DBLP:conf/acl/SennrichHB16a,
author = {Rico Sennrich and
Barry Haddow and
Alexandra Birch},
title = {Neural Machine Translation of Rare Words with Subword Units},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2016},
}
@article{刘挺1998最大概率分词问题及其解法,
title={最大概率分词问题及其解法},
author={刘挺 and 吴岩 and 王开铸},
journal={哈尔滨工业大学学报},
number={06},
pages={37-41},
year={1998},
}
@article{丁洁2010基于最大概率分词算法的中文分词方法研究,
title={基于最大概率分词算法的中文分词方法研究},
author={丁洁},
journal={科技信息},
number={21},
pages={I0075--I0075},
year={2010}
}
@book{1995University,
title = {University of Sheffield: Description of the LaSIE-II system as used for MUC-7},
author = {Kevin Humphreys and
Robert J. Gaizauskas and
Saliha Azzam and
Charles Huyck and
Brian Mitchell and
Hamish Cunningham and
Yorick Wilks},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {1995},
}
@inproceedings{krupka1998isoquest,
title={IsoQuest Inc.: Description of the NetOwl™ Extractor System as Used for MUC-7},
author={Krupka, George and Hausman, Kevin},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year={1998}
}
@inproceedings{DBLP:conf/muc/BlackRM98,
author = {William J. Black and
Fabio Rinaldi and
David Mowatt},
title = {{FACILE:} Description of the {NE} System Used for {MUC-7}},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {1998},
}
@article{1996Hidden,
title={Hidden Markov models.},
author={ Eddy, Sean R },
journal={Current Opinion in Structural Biology},
volume={6},
number={3},
pages={361-5},
year={1996},
}
@inproceedings{lafferty2001conditional,
author = {John D. Lafferty and
Andrew McCallum and
Fernando C. N. Pereira},
title = {Conditional Random Fields: Probabilistic Models for Segmenting and
Labeling Sequence Data},
pages = {282--289},
publisher = {proceedings of the Eighteenth International Conference on Machine
Learning},
year = {2001},
}
@book{kapur1989maximum,
title={Maximum-entropy models in science and engineering},
author={Kapur, Jagat Narain},
year={1989},
publisher={John Wiley \& Sons}
}
@article{1998Support,
title={Support vector machines},
author={Hearst, Marti A. and Dumais, Susan T and Osuna, Edgar and Platt, John and Scholkopf, Bernhard},
journal={IEEE Intelligent Systems \& Their Applications},
volume={13},
number={4},
pages={18-28},
year={1998},
}
@article{2011Natural,
title={Natural Language Processing (almost) from Scratch},
author={ Collobert, Ronan and Weston, Jason and Bottou, Léon and Karlen, Michael and Kavukcuoglu, Koray and Kuksa, Pavel },
journal={Journal of Machine Learning Research},
volume={12},
number={1},
pages={2493-2537},
year={2011},
}
@book{manning2008introduction,
title={Introduction to information retrieval},
author={Manning, Christopher D and Sch{\"u}tze, Hinrich and Raghavan, Prabhakar},
year={2008},
publisher={Cambridge university press}
}
@article{berger1996maximum,
title={A maximum entropy approach to natural language processing},
author={Berger, Adam and Della Pietra, Stephen A and Della Pietra, Vincent J},
journal={Computational linguistics},
volume={22},
number={1},
pages={39--71},
year={1996}
}
@article{mitchell1996m,
title={Machine Learning},
author={Mitchell, Tom},
journal={McCraw Hill},
year={1996}
}
@inproceedings{DBLP:conf/acl/OchN02,
author = {Franz Josef Och and
Hermann Ney},
title = {Discriminative Training and Maximum Entropy Models for Statistical
Machine Translation},
pages = {295--302},
publisher = {Annual Meeting of the Association for Computational Linguistics},
year = {2002},
}
@incollection{mohri2008speech,
title={Speech recognition with weighted finite-state transducers},
author={Mohri, Mehryar and Pereira, Fernando and Riley, Michael},
pages={559--584},
year={2008},
publisher={Springer}
}
@article{bellman1966dynamic,
title={Dynamic programming},
author={Bellman, Richard},
journal={Science},
volume={153},
number={3731},
pages={34--37},
year={1966},
publisher={American Association for the Advancement of Science}
}
%%%%% chapter 3------------------------------------------------------ %%%%% chapter 3------------------------------------------------------
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论