天然语言处理扫盲·次日——白话机器翻译原理

因为最近要作一些天然语言处理的分享,可是我又不是科班出身,因此只能临时抱佛脚的学习如下基本的原理。可是因为底子很薄,因此只能凭借google和baidu有限的资料进行总结。这里不会看到太复杂的公式,由于公式层面我也理解不了....就当作是从0学习天然语言处理的过程的记录吧!html

更多内容参考:程序员

若是有哪里说的不对的,还请严厉指正,小博主必定虚心领教,仔细研究!以避免误导大众...

下面就步入正题吧!网络

这个方向在几个大厂应该都比较成熟了,好比有道翻译、百度翻译、Google翻译等等。我平时用的有道比较多,通常都是去翻译个英文文档之类的。由于有道作的词典比较专业,所以在英译汉或者汉译英的时候承认度能高点。app

咱们先来看看机器翻译是怎么被玩坏的吧!学习

PS: 这个梗真的不是我黑谁!我也是从PPT上面看到的,以为这个例子很不错.....搜索引擎

话说回来,在机器翻译的领域,有不少难点。好比,语言的复杂程度,上下文的关联等等。想一想看,一样是汉语,山东大汉和陕西小哥以及东北姑娘说出来的都是不同的;再想一想汉语中的博大精深,一样一段话,上下文不一样表达的含义也是不同的;再复杂点,涉及到两种语言的切换,就更恐怖了。google

目前业内主要的实现手段有基于规则的、基于实例的、基于统计的以及基于神经网络的,看着感受蒙蒙哒,咱们来具体的了解下吧:翻译

基于规则的机器翻译

基于规则的机器翻译,是最古老也是见效最快的一种翻译方式。code

根据翻译的方式能够分为:htm

  • 直接基于词的翻译
  • 结构转换的翻译
  • 中间语的翻译

从字面上理解,基于词的翻译就是直接把词进行翻译,可是也不是这么简单,会经过一些词性的变换、专业词汇的变换、位置的调整等一些规则,进行修饰。

能够看到翻译的质量不好,可是基于这种词规则的翻译,基本上能够辅助咱们作一些翻译的工做;并且这种翻译也带来了机器翻译的0到1的飞跃

那么基于结构转换 其实就是不只仅考虑单个词,而是考虑到短语的级别。好比根据端与do chicken有可能被翻译成烹饪鸡,那么整句话就好多了咱们烹饪鸡好吗

最后一种就是基于中间语的翻译,好比过去在金本位的年代,各国都有本身的货币。中国使用中国的货币,美国使用美国的货币,那么货币之间怎么等价呢?就能够兑换成黄金来衡量价值。这样就能够进行跨币种的买卖了..翻译也是如此,假若由两种语言没法直译,那么也能够先翻译成中间语,而后经过中间语进行两种语言的翻译。

基于统计的机器翻译

基于统计的机器翻译明显要比基于规则的高级的多,由于引入了一些数学的方法,整体上显得更加专业。那么咱们看看它是怎么作的吧!

首先,咱们有一段英文想要把它翻译成汉语:

we do chicken right

会根据每一个词或者短语,罗列它可能出现的翻译结果:

咱们/作/鸡/右
咱们/作/鸡/好吗
咱们/干/鸡/怎么样
...

这样的结果有不少种...

而后咱们须要一个大量的语料库,即有大量的文章...这些文章会提供 每一种翻译结果出现的几率,几率的计算方式多是使用隐马尔可夫模型,即本身算相邻词的几率,这个原理在《数学之美》中有介绍,感兴趣的能够去看看。

最终挑选几率最高的翻译结果做为最终的输出。

总结来讲大体的流程是:

所以能够看到,这种翻译方式依赖大量的语料库,所以大多数使用这种方式并且效果比较好的都是那种搜索引擎公司,好比Google和Baidu,他们依赖爬虫技术有互联网中大量的文本资料,基于这些文本资料能够获取大量的语料来源,从而为本身的翻译提供大量的依据数据。

基于实例的机器翻译

这种翻译也比较常见,通俗点说就是抽取句子的模式,当你输入一句话想要翻译的时候,会搜索相相似的语句,而后替换不同的词汇翻译。举个例子:

I gave zhangsan a pen
I gave lisi an apple

就能够抽取他们类似的部分,直接替换不同的地方的词汇就行。这种翻译其实效果不太好,并且太偏领域背景...

基于神经网络的机器翻译

在深度学习火起来后,这种方式愈来愈受关注。咱们先来了解下什么是神经网络:

基本的意思就是咱们会有不少的输入,这些输入通过一些中间处理,获得输出。获得的输出又能够做为下一个计算过程的输入...这样就组成了神经网络。

在机器翻译中主要使用的是循环神经网络,即上一次的输出能够做为此次的输入继续参与计算。这样有什么目的呢?

就是在翻译的过程当中,虽然是以句子为单位进行翻译的,可是每一句话都会对下一句话的翻译产生影响,这样就作出了上下文的感受....好比do chicken单纯的翻译有不少中翻译的结果。可是若是前面出现过厨师等这类的词句,那么这个单词就能够更倾向翻译成烹饪鸡

这种操做模式,在问答系统中也会遇到...以后会有所介绍.

总结

总结的来讲,若是想要快速搭建一个机器翻译的系统,能够先从基于规则开始,添加一些领域背景的知识,就能达到一个比较快速的效果。而基于统计的方法从数据获取的成本和模型的训练来讲,成本都很高...

针对机器翻译是否能代替人工翻译,知乎上面也有很多讨论,我这个门外汉也以为,暂时不太可能,不过机器翻译做为人工翻译的一种辅助手段仍是很必要的。好比那些非专业的翻译人士,如写论文的研究生、看前沿技术的程序员小朋友,这种机器翻译能够做为一种颇有效的阅读辅助的手段,由于大部分的时候,都是直接把某一段英文粘贴到翻译的输入框,而后按照翻译出来的结果,本身再组织理解...(我想大部分人都是这么用的吧~ 原谅我英语差)

那么机器翻译的扫盲就暂时介绍到这里了,以后会再研究下情感分析相关的内容...

参考

相关文章
相关标签/搜索