这个方向在几个大厂应该都比较成熟了,比如有道翻译、百度翻译、Google翻译等等。我平时用的有道比较多,一般都是去翻译个英文文档之类的。因为有道做的词典比较专业,因此在英译汉或者汉译英的时候认可度能高点。

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

PS: 这个梗真的不是我黑谁!我也是从PPT上面看到的,觉得这个例子很不错.....

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

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

基于规则的机器翻译

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

根据翻译的方式可以分为:

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

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

可以看到翻译的质量很差,但是基于这种词规则的翻译,基本上可以辅助我们做一些翻译的工作;而且这种翻译也带来了机器翻译的0到1的飞跃

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

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

基于统计的机器翻译

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

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

we do chicken right

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

我们/做/鸡/右
我们/做/鸡/好吗
我们/干/鸡/怎么样
...

这样的结果有很多种...

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

最终挑选概率最高的翻译结果作为最终的输出。

总结来说大致的流程是:

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

基于实例的机器翻译

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

I gave zhangsan a pen
I gave lisi an apple

就可以抽取他们相似的部分,直接替换不一样的地方的词汇就行。这种翻译其实效果不太好,而且太偏领域背景...

基于神经网络的机器翻译

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

基本的意思就是我们会有很多的输入,这些输入经过一些中间处理,得到输出。得到的输出又可以作为下一个计算过程的输入...这样就组成了神经网络。

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

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

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

总结

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

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

自然语言处理入门——白话机器翻译原理相关推荐

  1. HanLP《自然语言处理入门》笔记--5.感知机模型与序列标注

    笔记转载于GitHub项目:https://github.com/NLP-LOVE/Introduction-NLP 5. 感知机分类与序列标注 第4章我们利用隐马尔可夫模型实现了第一个基于序列标注的 ...

  2. HanLP《自然语言处理入门》笔记--1.新手上路

    文章目录 1. 新手上路 1.1 自然语言与编程语言的比较 1.2 自然语言处理的层次 1.3 自然语言处理的流派 1.4 机器学习 1.5 语料库 1.6 开源工具 1.7 总结 1.8 GitHu ...

  3. 自然语言处理入门——新手上路

    目录 一.自然与语言与编程语言 二.自然语言处理的层次 三. 自然语言处理的流派 五.语料库 六.开源工具 七 总结 自然语言处理(NLP)是一门融合了计算机科学.人工智能以及语言学的交叉学科. 一. ...

  4. 《自然语言处理入门》不是 NLP 学习路上的万能药

    <自然语言处理入门>是图灵 2019 年 10 月出版的一本 NLP 领域的入门图书,作者是何晗(网名 hankcs,HanLP 作者.「码农场」博客博主).图书上架之后得到了广大的读者的 ...

  5. 【实战教程】NLP-Beginner:自然语言处理入门练习

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 今天给大家分享一门很好的NLP入门学习实战仓库,话不多说,学它!!! 此项目完成了 ...

  6. 自然语言处理入门(一)

    概念 (Natural Language Processing, 简称NLP)就是利用电子计算机为工具对人类特有的书面形式和口头形式的自然语言的信息进行各种类型处理和加工的技术,这种技术现在已经形成一 ...

  7. 自然语言处理入门(何晗):第一章

    第一章 新手上路 **自然语言处理(NLP)**是一门融合了计算机科学.人工智能以 及语言学的交叉学科, 这门学科研究的是如何通过机器学习等技术, 让计算机学会处理人类语言,乃至实现终极目标--理解人 ...

  8. PyTorch自然语言处理入门与实战 | 文末赠书

    文末赠书 注:本文选自人民邮电出版社出版的<PyTorch自然语言处理入门与实战>一书,略有改动.经出版社授权刊登于此. 处理中文与英文的一个显著区别是中文的词之间缺乏明确的分隔符.分词是 ...

  9. 自然语言处理入门读物

    自然语言处理入门读物 本文目前研二,已经接触自然语言处理有一年的时间(半路出家),下面写一点自己关于自然语言处理的心得(纯属个人见解),先从入门学习开始写吧. 书籍-理论篇 书籍是人类进步的阶梯,这个 ...

最新文章

  1. java中extends ,implements的顺序问题
  2. CodeMirror的使用方法
  3. Linux学习笔记三--vim
  4. Java(C#)基础差异-语法
  5. Java异常处理(2)--异常处理机制及自定义异常
  6. Do 32-bit build only with XCode 5.1
  7. oracle如何查看某个时间段调用的函数的异常信息_每天14点遭遇惊魂时刻,如何一步一步揪出真凶?...
  8. Idea导出可运行Jar包
  9. python发送html格式邮件,python 发送html格式邮件到qq(示例代码)
  10. VS2010对话框中使用MSChart控件
  11. 【招聘测评题】中的(行测)图形推理题基本逻辑总结(附例题)
  12. win10系统服务器不能创建对象,win10系统Activex部件不能创建对象的详细技巧
  13. Web_php_unserialize,XCTF-Web_php_unserialize
  14. 仿网易评论盖楼的留言板插件demo
  15. 靠这个方法,我终于月入3万!
  16. CSS中绝对定位导致页面混乱的原因以及解决办法
  17. 一个启动U盘装多系统引导,无需反复格式化,ISO/WIM等文件拷贝到U盘即可启动
  18. Matlab中的linspace()函数
  19. 微软C#中的CHART图表控件
  20. Java反射面试总结(一)

热门文章

  1. Mac使用技巧之快速显示桌面
  2. python-爬虫 爬取veryins网页2.0版
  3. Jupyter 快捷键表(Mac)
  4. 【GPLT】 2021CCCC天梯赛题解
  5. OpenCV下肤色检测代码
  6. [站点推荐]001.学习新技能的37个最佳网站(The 37 Best Websites To Learn Something New)
  7. 动态分配IP-DHCP协议详解
  8. leetcode(96)不同的二叉搜索树——卡塔兰数
  9. 【ELM回归预测】基于matlab粒子群算法优化ELM回归预测【含Matlab源码 1586期】
  10. 数字下变频(DDC)_数字上变频(DUC)