思源原创

监管机器翻译质量?且看阿里如何搭建翻译质量评估模型

随着机器翻译在真实场景中的应用越来越多,翻译质量评估模型也受到很大的关注。近日,阿里巴巴达摩院机器智能技术实验室的陈博兴博士向机器之心介绍了机器翻译质量评估竞赛与模型,他们凭借着 Feature Extractor-Quality Estimator 框架与完全注意力机制等方法在国际机器翻译大会 WMT 组织的质量评估竞赛上取得了优异的成绩。

阿里机器翻译团队在本次比赛中,参加了英语到德语和德语到英语两个语向的句子级别和词级别的七项质量评估任务,收获了六项世界冠军。其中,德语到英语的统计机器翻译评估任务中(German-English SMT),句子级别和词级别的预测任务分别取得第一名;英语到德语的统计机器翻译评估任务中 (English-German SMT),句子级别取得第一名,词级别的词预测和漏词预测分别取得第一名。同时,英语到德语的神经网络机器翻译评估任务中 (English-German NMT),词级别的词预测取得第一名。

对于翻译质量评测方法来说,可能读者最熟悉的就是 BLEU 值,它的核心思想即机器翻译的译文越接近人类专业译文,那么翻译的效果就越好。所以从本质上来说,BLEU 值仅仅只是在计算机翻译文与参考译文之间的相似性。此外,虽然 BLEU 值计算非常迅速,但它仅考虑词语层级的统计相似性,常忽略了语义和语法等特征。且其它如常用词、译文长度、同义词等很多情况都会影响到 BLEU 值的评判,因此它其实只能评估机器翻译模型与参考译文之间的大致相似度。

计算 BLEU 值最重要的是提供参考译文,参考译文质量越高,对于同一句原文的参考译文越多,翻译模型的度量就越准确。但很多情况下高质量参考译文很难获得,或者成本非常高,而且更多的实际运用场景中,用户输入的原文是无法及时提供参考译文的,这种情况下就需要一种没有参考译文也能评估翻译效果的方法。

Machine Translation Quality Estimation 就是这样一个由 WMT 发起的机器翻译质量评估比赛,它要求在不提供参考译文的情况下,根据原文和机器翻译译文评估译文质量的好坏。

除了竞赛,不需要参考译文的评估方法在实际中有非常广泛的应用,陈博兴表示这种自动评估方法可以评估译文的质量,用于判断译文是否可以直接发表,是否可以让读者理解,是否需要后续人工编辑,并辅助译员翻译。如果质量太差,那么这一句话就需要重新翻译且不适合做人工编辑,如果只需要少量改动,那就比较适合做人工编辑。甚至对于词语级别的译文评估方法,它能告诉我们到底哪一个词需要改进。此外,限制质量较差的机器翻译的译文输出、评估机器翻译模型效果等都需要这种不需要参考译文的评估方法。

翻译质量评估

翻译质量评估任务一般可分为两种,即句子级的评估和单词级的评估,阿里机器翻译团队这次参与的竞赛同样也分为这两种任务。其中句子级的质量评估需要使用回归模型给译文句子的整体水平打分,而单词级的任务需要分类模型标注每一个词到底翻译得好不好。完成这两种评估任务的方法也有许多,但总体上都是通过抽取原文与译文的特征,并计算它们之间的匹配程度。

以前常见的研究是使用手动抽取的质量评估特征,并馈送到回归或分类模型以得出译文的分数或类别。这些质量评估一般包括长度特征、语言特征和主题模型等特征,它们可能还会通过主成分分析和高斯过程等方法进行选择。

而自深度学习变得流行以来,很多研究者尝试使用深度神经网络自动抽取质量评估特征并完成评分。Kreutzer 等人首先在 2015 年提出基于窗口的 FNN 架构,它以窗口的方式抽取语义特征。在基于窗口的方法中,给定目标词,我们从原语和目标语的对应位置中获取双语窗口,其中目标语窗口的中心词就是该目标词,而原语窗口的中心词即目标词对应的原语词。所有双语窗口下的词将会以 one-hot 编码的方式馈送到输入层,并进一步计算出当前窗口的双语匹配程度。

Patel 等人随后在 2016 年提出基于循环神经网络架构的质量评估模型,在该模型中,他们将单词级的质量评估模型视为序列标注任务,且同样采用了基于双语上下文窗口的方法。其中上下文窗口的所有词需要作为输入,并借助循环神经网络建模它们之间的依赖性关系,并最后输出标注序列以判断每个单词是不是翻译正确。

随后很多研究者开始使用卷积神经网络、双向 LSTM 网络和注意力机制深度学习方法,Martins 等人在 2017 年结合神经网络模型与富特征线性模型在质量评估模型上获得了非常好的效果。但阿里采用的模型并不基于上下文窗口,他们参考了最近提出的自注意力机制和 Transfomer 机器翻译的模型框架,在前人研究的基础上提出了一种名为『Bilingual Expert』model (『双语专家』模型) 作为特征抽取器,联合基于神经网络的译文质量评估框架。后面我们将从这两方面重点关注这一框架,并探讨阿里达摩院对它们的优化。

特征抽取模型

特征抽取即从原文与译文语句中抽取足够的信息或特征,并用来进一步计算译文效果到底好不好。因此特征抽取是翻译评估模型的核心,特征的好坏直接影响了翻译评估的准确度。不过在理解特征抽取以前,我们先要了解整个『Bilingual Expert』based Feature Extractor + Quality Estimator 框架,这样才能知道为什么能通过神经网络抽取原文和译文的语言特征。

『Bilingual Expert』based Feature Extractor + Quality Estimator 由特征抽取模型和译文评估模型组成,因为这两个模型解决的是两个任务,所以它们能使用两种数据集进行训练。特征抽取模型在输入原句序列和目标句序列的条件下抽取质量评估特征,这一部分的训练需要使用一般的双语平行数据集。而特征抽取模型抽取的特征可继续用于评估翻译效果,这一部分需要使用质量评估(QE)数据集,该数据集不仅包括原句与译文句,同时还包括了标注的翻译质量。

阿里达摩院在这次竞赛中采用的结构,特征抽取模型与评估模型使用 Transformer 与双向 LSTM 的框架进行修正。

对于特征抽取,『Bilingual Expert』(图上右上框)模型构建了一种条件语言模型。简单而言,在给定原语句子所有词和目标语句除当前词以外的上下文,模型希望能使用这些词的信息预测出当前词。这一过程潜在的假设即条件语言模型与质量评估模型高度相关,它能传递有用的信息来执行质量评估任务。陈博兴表示,我们可以直观地理解为,如果译文的质量非常高,那么这种基于条件语言模型的词预测模型能基于原句子和目标句子的上下文准确预测出当前词。相反如果译文质量不高,那么模型很难基于上下文准确地预测出当前词。

给定原语句子和目标语句子的上下文,并预测目标语句子的当前词可以表述为如下方程式,阿里机器翻译团队使用了在《Attention is all you need》中提出的 Transformer 建模这一方程。

之所以将传统的双向 LSTM 模型替换为最近比较流行的 Transformer,陈博兴表示:「LSTM 是以递归方式进行的,适合序列建模任务,需要逐步递归才能获取全局信息。这就导致了计算过程很难并行,计算效率较低。因此我们采用了完全基于注意力机制的结构来处理序列模型的相关问题,这样不仅能挖掘序列内部的隐藏关系,同时还能提高并行效率。」

尽管使用 Transformer 构建词预测模型有更多的优势,但从 LSTM 出发能更好地理解词预测模型的过程。下图所示为基于 LSTM 的词预测模型,它期望能准确预测目标语句子中的第 j 个词。

如下对于原语句子 x,模型首先将每一个词都表征为词嵌入向量,然后再馈送到正向和反向两条 LSTM,每一个时间步需要同时结合正向和反向 LSTM 的隐藏状态并作为最终的输出。对于目标语句子 y,在第 j 个词之前的序列使用正向 LSTM 建模,而第 j 个词之后的序列使用反向的 LSTM 建模。最后在预测第 j 个词时,需要使用原语句子 x 的上下文向量 c_j(由注意力机制得出)、目标语前一个词及前面序列的语义信息、目标语后一个词及后面序列的语义信息。

阿里机器翻译团队采用 Transformer 的架构进行建模,该架构不仅在原文和译文端之间进行注意力机制的计算,同时原文和译文内部也引入自注意力的机制,使得两端深层的语义信息能够很好得被学习到。除此以外,『Multi-Head』注意力机制的结构能够使网络中每一层对不同位置的计算是并行的,大大提高了学习效率。陈博兴表示,在对原文进行编码的过程中,编码器由相同的两个模块构成,每一个模块都有两个子层级。其中第一个子层级是 Multi-Head 自注意机制,第二个子层级采用了全连接网络,其主要作用在于注意子层级的特征。同时,每一个子层级都会添加残差连接和层级归一化。

在对目标端解码的过程中,阿里机器翻译团队创新地进行了基于 Multi-head Attention 的双向解码。陈博兴表示,每个方向的解码器也由相同的两个模块堆叠而成。与编码器区别的是,每一个解码器模块都有三个子层组成。第一个和第三个子层分别与编码器的 Multi-Head 自注意力层和全连接层相同,而第二个子层采用了 Multi-Head Attention 机制,使用编码器的输出作为 Key 和 Value,使用解码模块第一个子层的输出作为 Query。与编码器类似的是,每一个子层同样会加上残差连接与层级归一化模块。该思想可以理解构造了一个双向的 Transformer,而其真正作用不是翻译系统中的解码器,而更像一个编码器或者特征表示器。

上图所示为 Transformer 原论文中介绍的网络架构,阿里机器翻译团队将其采用为『双语专家』条件语言模型的基础网络。Transformer 编码器的 Inputs 为原语句子序列 x,解码器输入的 Outputs 为目标语正向和逆向两个序列。此外,解码器中 Softmax 输出的概率表示目标端当前词预测。在阿里采用的架构中,编码器和解码器的层数都等于 2,即图中的 N=2。

每一次在预测目标语的当前词时,Transformer 需要使用正向与反向两部分信息。陈博兴表示若当前预测目标语的第 j 个词,对于正向序列而言,模型需要使用目标端第 j-1 个词的前向深层语义特征向量和第 j-1 个词的词向量。而对于反向序列而言,模型需要使用目标端第 j+1 个词的反向深层语义特征向量与第 j+1 个词的词向量。

总体而言,在阿里的模型中,利用预先训练的专家模型,先抽取基于模型隐层的一些 high level 表示信息,以及该词的前后词的词向量,最后再通过一个全连接层做一次线性变换。除此之外,阿里还构造了 mis-matching features。如下图所示,当某个翻译结果错误单词不多的时候,预训练模型会给出正确的单词预测分布,这和翻译结果激活的单词会存在一个 gap。这个 gap 是一个非常重要的特征,阿里机器翻译团队的实验显示就算只用这个特征去做下一步预测,也可以得到很好的结果。详细内容可以参考阿里机器翻译团队的论文:“Bilingual Expert” Can Find Translation Errors [1]。

其实阿里机器翻译团队采用的这种双向解码机制有非常优秀的属性,它相当于迁移了一部分语言的知识。最近很多研究者都提倡以语言模型作为预训练基础模型将语言知识迁移到不同的 NLP 任务,阿里采用的这个结构正好体现了这种想法。在预测第 j 个词时,j+1 和 j-1 两个深层语义特征向量都相当于使用预训练的语言模型抽取语言特征,而那两个词的词嵌入向量则保留了原始信息。

除了需要预测最可能的当前词,更重要的是需要通过质量评估特征向量为后续运算迁移足够的语言知识。因此阿里的模型从词预测模型中抽取了两种质量评估特征,除了深层语义特征外,考虑到目标端词预测的概率能表示当前词出现的可能性,还额外抽取了如下的 mis-matching 特征:

1. 深层语义特征:

  • 正向深层语义特征向量

  • 反向深层语义特征向量

  • 前一个词的词向量

  • 后一个词的词向量

2. Mis-matching 特征:

  • 目标端强制解码为当前词的概率信息 

  • 概率最高词语的概率信息 

  • 强制解码为当前词与解码为概率最高词的概率信息差异 

  • 当前词与预测词是否一致

其中正向和反向深层语义特征都从 Transformer 的解码器中抽出,正向语义特征  包含了原语序列的所有信息和目标语第 k 个词之前的语义信息,反向语义特征  包含了原语序列的所有信息和目标语第 k 个词之后的语义信息;同时,深层语义特征还包含第 k-1 个词的词义信息  和第 k+1 个词的词义信息 。在基于『双语专家』条件语言模型的词预测模型的预测解码环节,阿里机器翻译团队利用以上所有深层语义表达,重构了目标语 (Token Reconstruction)。所以如果我们强制解码为真实的词语,就可以取特征信息 。不强制解码,保留模型预测最可能出现的词语,我们就能得到特征信息 。剩下的两种特征则描述了 m_k 与 i_max 之间的关系。

质量评估模型

在抽取了质量评估特征后,它们可以与人工抽取的特征一起作为质量评估模型或 Quality Estimator 的输入来计算译文质量。不过既然基于条件语言模型特征抽取模型和质量评估模型有紧密的联系,那么为什么不能将这两个模型联合在一起实现端到端的训练呢?陈博兴表示如果做端到端的训练,很多人工添加的特征是无法使用的。此外,特征抽取模型广泛使用的平行语料与质量评估模型使用的 QE 数据集有比较大的不匹配性,联合训练可能会产生较差的性能。这一点也非常直观,平行语料只包含正确的目标语句子,而 QE 数据集同时包含正确与不正确的目标语句子。

正因为特征抽取模型和质量评估模型虽然高度相关,但还是两个独立的模型,所以我们能额外手动提取一些特征来提升模型效果。这些基础特征包括句长、标点符号数量、句子语言模型分数等,因此除了第一阶段提取的特征外,阿里还额外融合了 17 个人工提取的特征,与之前隐层合并结果再次合并作为预测条件。

若将所有特征向量都拼接在一起,且每一个特征向量视为一个时间步,那么我们就能以如下方式利用从原文与译文中抽取的语义信息。

阿里机器翻译团队采用的质量评估模型就是基于双向 LSTM,模型预测的目标即句子层面的翻译质量和单词层面的翻译对错。其实这两个任务除了评估阶段采用的架构不一样,其它如特征抽取等过程都是一样的。在句子层面中,biLSTM 编码的前向的最后一个时间步与后向的最后一个时间步的隐藏特征联合计算一个实数值以表示翻译质量,而在词语层面的评估任务中,biLSTM 编码对应的 目标端词的每一个时间步的前后向量隐藏特征联合计算一个值以将它们分类为 OK 或 BAD。

数据与应用

整个翻译评估系统需要使用两种数据,即词预测模型所使用的平行数据集和评估模型所使用的 QE 数据集。其中平行数据集可以在广泛的领域收集,我们的目的是训练一个能抽取语言语义信息的模型,这很类似于预训练一个强大的语言模型

而 WMT 组委会提供的 QE 训练数据只有 1 至 3 万,这对于训练一个强大的鲁棒性翻译质量评估模型是远远不够的。陈博兴表示阿里机器翻译团队在英德和德英语向上分别构造 了 30 万左右的 QE 训练伪数据。这部分数据与真实 QE 数据合并训练完质量评估基线模型后,会再使用真实的 QE 数据微调模型,即使用一个在大的数据集上预训练好的模型在真实场景数据上微调。

阿里机器翻译团队参考了一些 WMT Automatic Post-Editing (APE)任务的方法。采用了一种 round-trip translation 的技术。先从大量单语数据中筛选出领域相关的单语,作为人工后编辑译文 PE;同时用双语语料训练两个 MT 系统(例如,如果要做英语到德语的翻译质量评估,需要训练德语到英语和英语到德语的机器翻译系统)。将筛选的领域单语先通过一个 MT 系统生成原文 SRC;SRC 再通过另一个 MT 系统生成译文 MT。这样两次调取 MT 结果的方法,生成了一批原文,译文和人工后编辑译文组合的 APE 数据,称为 APE 训练伪数据。然后他们通过 TER 工具生成了对应的 HTER 分数和词标注,构造出了 QE 伪数据。为了更好地模拟真实数据,他们根据真实 QE 数据的 HTER 分布,从构造的伪数据中随机挑选出 30 万。这些伪数据先与真实的 QE 数据一起训练一个 Quality Estimator 的基础 Baseline 模型,再单独用真实的 QE 数据 fine tune 模型。

最后,开发这样一个翻译质量评估系统肯定是需要投入应用的。陈博兴表示翻译质量评估模型可以应用在很多业务上,例如它可以判断翻译系统给出的结果是不是足够优秀,能不能直接展示给用户。如果质量不行的话,译文就可能需要人工校对。这对阿里的商品翻译是非常重要的,因为如果产品品牌、买卖价格、产品描述等机器翻译出现了误差,那么很容易引起业务上的纠纷。

此外,由于 BLEU 值只能评估有参考译文的翻译结构,这种翻译质量评估系统能更广泛地辅助机器翻译或人工翻译。陈博兴表示该系统还可以更直接地评估数据,因为网上收集或购买的数据可能并不能保证质量,所以该系统可以充当过滤作用而确定能投入训练的高质量双语数据集。总而言之,阿里在利用高质量双语数据集与 QE 数据集训练质量评估模型后,它反过来可以评估其它双语数据,并将优秀的数据投入翻译模型的训练与质量评估系统的训练。

除了在 WMT 翻译质量评估上获得的荣誉,此前阿里达摩院机器智能自然语言智能团队还在 2017 年美国标准计量局英文实体识别,2018 年机器阅读理解首次超出人类回答精准率,2018 年 WMT 国际机器翻译大赛等技术大赛上获得十余个冠军。并以「让商业没有语言障碍」为理念,推动学术与工业界的融合创新。

参考文献:

  • “Bilingual Expert” Can Find Translation Errors, https://arxiv.org/pdf/1807.09433.pdf

  • Predictor-estimator: Neural quality estimation based on target word prediction for machine translation, Hyun Kim, Hun-Young Jung et al.

  • Attention is all you need, https://arxiv.org/abs/1706.03762

  •  Semi-supervised sequence tagging with bidirectional language models, https://arxiv.org/abs/1705.00108

  • Log-linear combinations of monolingual and bilingual neural machine translation models for automatic post-editing, https://arxiv.org/abs/1605.04800

工程翻译质量评估WMT达摩院阿里巴巴机器翻译
11
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

重构技术

代码重构(英语:Code refactoring)指对软件代码做任何更动以增加可读性或者简化结构而不影响输出结果。 软件重构需要借助工具完成,重构工具能够修改代码同时修改所有引用该代码的地方。在极限编程的方法学中,重构需要单元测试来支持。

词嵌入技术

词嵌入是自然语言处理(NLP)中语言模型与表征学习技术的统称。概念上而言,它是指把一个维数为所有词的数量的高维空间嵌入到一个维数低得多的连续向量空间中,每个单词或词组被映射为实数域上的向量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

机器翻译技术

机器翻译(MT)是利用机器的力量「自动将一种自然语言(源语言)的文本翻译成另一种语言(目标语言)」。机器翻译方法通常可分成三大类:基于规则的机器翻译(RBMT)、统计机器翻译(SMT)和神经机器翻译(NMT)。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

统计机器翻译技术

随着统计学的发展,研究者开始将统计模型应用于机器翻译,这种方法是基于对双语文本语料库的分析来生成翻译结果。这种方法被称为统计机器翻译(SMT)

特征抽取技术

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

主成分分析技术

在多元统计分析中,主成分分析(Principal components analysis,PCA)是一种分析、简化数据集的技术。主成分分析经常用于减少数据集的维数,同时保持数据集中的对方差贡献最大的特征。这是通过保留低阶主成分,忽略高阶主成分做到的。这样低阶成分往往能够保留住数据的最重要方面。但是,这也不是一定的,要视具体应用而定。由于主成分分析依赖所给数据,所以数据的准确性对分析结果影响很大。

主题模型技术

主题模型(Topic Model)在机器学习和自然语言处理等领域是用来在一系列文档中发现抽象主题的一种统计模型。直观来讲,如果一篇文章有一个中心思想,那么一些特定词语会更频繁的出现。比方说,如果一篇文章是在讲狗的,那“狗”和“骨头”等词出现的频率会高些。如果一篇文章是在讲猫的,那“猫”和“鱼”等词出现的频率会高些。而有些词例如“这个”、“和”大概在两篇文章中出现的频率会大致相等。但真实的情况是,一篇文章通常包含多种主题,而且每个主题所占比例各不相同。因此,如果一篇文章10%和猫有关,90%和狗有关,那么和狗相关的关键字出现的次数大概会是和猫相关的关键字出现次数的9倍。一个主题模型试图用数学框架来体现文档的这种特点。主题模型自动分析每个文档,统计文档内的词语,根据统计的信息来断定当前文档含有哪些主题,以及每个主题所占的比例各为多少。

堆叠技术

堆叠泛化是一种用于最小化一个或多个泛化器的泛化误差率的方法。它通过推导泛化器相对于所提供的学习集的偏差来发挥其作用。这个推导的过程包括:在第二层中将第一层的原始泛化器对部分学习集的猜测进行泛化,以及尝试对学习集的剩余部分进行猜测,并且输出正确的结果。当与多个泛化器一起使用时,堆叠泛化可以被看作是一个交叉验证的复杂版本,利用比交叉验证更为复杂的策略来组合各个泛化器。当与单个泛化器一起使用时,堆叠泛化是一种用于估计(然后纠正)泛化器的错误的方法,该泛化器已经在特定学习集上进行了训练并被询问了特定问题。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

推荐文章
该服务开放了吗?开源了吗?