Git Product home page Git Product logo

niutrans / mtbook Goto Github PK

View Code? Open in Web Editor NEW
2.7K 2.7K 761.0 90.3 MB

《机器翻译:基础与模型》肖桐 朱靖波 著 - Machine Translation: Foundations and Models

Home Page: https://opensource.niutrans.com/mtbook/index.html

TeX 100.00% Shell 0.01%
deep-learning machine-learning machine-translation natural-language-processing neural-machine-translation statistical-machine-translation tex

mtbook's Introduction

机器翻译:基础与模型

Machine Translation: Foundations and Models

作者:肖桐 (Tong Xiao) 朱靖波 (Jingbo Zhu)

单位:东北大学自然语言处理实验室 (NEUNLPLab) / 小牛翻译 (NiuTrans Research)

顾问:姚天顺 (Tianshun Yao) 王宝库 (Baoku Wang)

网站:https://opensource.niutrans.com/mtbook/homepage.html

GitHub:https://github.com/NiuTrans/MTBook

百度网盘: https://pan.baidu.com/s/1a0OG5Qnb9WGlitPsvbtx6A 提取码:MTBK

纸质版:green_book:: 京东 当当

豆瓣评分:pencil2:: 豆瓣

这是一个教程,目的是对机器翻译的基础知识和建模方法进行较为系统的介绍,并在此基础上对机器翻译的一些前沿技术展开讨论(前身为《机器翻译:统计建模与深度学习方法》)。其内容被编纂成书,可以供计算机、人工智能相关专业高年级本科生及研究生学习之用,亦可作为自然语言处理,特别是机器翻译相关研究人员的参考资料。本书用tex编写,所有源代码均已开放。

本书共分为四个部分,每部分由若干章节组成,章节的顺序参考了机器翻译技术发展的时间脉络,同时兼顾了机器翻译知识体系的内在逻辑。各部分的主要关系如下(如果无法显示图片可以稍后再试):

内容

封面、前言和目录

Part I 机器翻译基础

  1. 机器翻译简介
  1. 统计语言建模基础
  1. 词法分析和语法分析基础
  1. 翻译质量评价

Part II 统计机器翻译

  1. 基于词的机器翻译建模
  1. 基于扭曲度和繁衍率的模型
  1. 基于短语的模型
  1. 基于句法的模型

Part III 神经机器翻译

  1. 人工神经网络和神经语言建模
  1. 基于循环神经网络的模型
  1. 基于卷积神经网络的模型
  1. 基于自注意力的模型

Part IV 机器翻译前沿

  1. 神经机器翻译模型训练
  1. 神经机器翻译模型推断
  1. 神经机器翻译结构优化
  1. 低资源神经机器翻译
  1. 多模态、多层次机器翻译
  1. 机器翻译应用技术

随笔

Part V 附录

参考文献

索引

注:本书的pdf版本可以从GitHub仓库获取https://github.com/NiuTrans/MTBook/blob/master/mt-book.pdf

源代码

本书的tex源代码地址为:https://github.com/NiuTrans/MTBook/tree/master/src

编译前需要安装MikTeX,并在MikTeX Console中下载并更新编译所需宏包。之后,编译src目录下的mt-book-xelatex.tex即可得到pdf文件,编译指令如下:

xelatex mt-book-xelatex
biber mt-book-xelatex
makeindex mt-book-xelatex
xelatex mt-book-xelatex
xelatex mt-book-xelatex

在编译中可能会遇到内存不足的问题,可以通过以下方式解决:

Windows下使用MiKTeX或CTEX

  1. 运行cmd打开命令行窗口,输入:initexmf --edit-config-file=xelatex

  2. 在弹出的文件中输入以下内容:main_memory=5000000 extra_mem_bot=5000000 font_mem_size=5000000 pool_size=5000000 buf_size=5000000

  3. 在cmd窗口输入: initexmf --dump=xelatex 更新latex格式文件

TeXLive & MacTeX(Linux,OS X等)

  1. 打开texmf.cnf文件,更改其内容为:main_memory=5000000 extra_mem_bot=5000000 font_mem_size=5000000 pool_size=5000000 buf_size=5000000

  2. 调用texhash更新latex格式文件

注1:编译tex文件会依赖一些宏包。如果有任何编译错误,建议将宏包更新至最新版本。

注2:部分系统可能需要安装中文字体,在网站https://www.wfonts.com/搜索字体,如:SimSun(宋体)和Microsoft YaHei(微软雅黑),安装字体即可。

引用

肖桐 朱靖波,机器翻译:基础与模型,电子工业出版社, 2021.

bib文件

@book{xiao-and-zhu-mtbook-2021,
      title = {机器翻译:基础与模型},
      publisher = {电子工业出版社},
      year = {2021},
      author = {肖桐 and 朱靖波},
      address = {北京},
      isbn = {9787121335198}
}

课件

本教程部分章节的课件已开放(我们对部分章节进行了合并,课件的顺序与书中章节的顺序并不完全一致)。pdf版本的地址为https://github.com/NiuTrans/MTBook/tree/master/slides

开源协议

本书的开源内容基于The Creative Commons Attribution-NonCommercial 4.0 Unported License(link

更新历史

2021年8月25日 勘误与部分内容修正 V0.32

2021年2月1日 修复大量的文字错误 V0.31

2021年2月1日 《机器翻译:基础与模型》,完整版 V0.3

2020年12月1日 《机器翻译:基础与模型》(更名后),基础篇 V0.2

2020年5月21日 《机器翻译:统计建模与深度学习方法》,第一版 V0.1

致谢

感谢为本书做出贡献的小牛团队(部分)成员

曹润柘、曾信、孟霞、单韦乔、周涛、周书含、许诺、李北、许晨、林野、李垠桥、王子扬、刘辉、张裕浩、冯凯、罗应峰、魏冰浩、王屹超、李炎洋、胡驰、姜雨帆、田丰宁、刘继强、张哲旸、陈贺轩、牛蕊、杜权、张春良、王会珍、张俐、马安香、胡明涵

联系我们

有任何问题请联系xiaotong [at] mail.neu.edu.cn (肖桐) 或 caorz0628 [at] qq.com(曹润柘)

mtbook's People

Contributors

bigheadcrz avatar iszengxin avatar mengxia-mx avatar xiaotong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

mtbook's Issues

年代错误

文中1.2.2 机器翻译的萌芽部分:

"早在17 世纪,如Descartes、Leibniz、Cave Beck、Athanasius Kircher 和Johann Joachim Becher 等很多学者就提出采用机器词典(电子词典)来克服语言障碍的想法[4],这种想法在当时是很超前的。随着语言学、计算机科学等学科的发展,在19 世纪30 年代使用计算模型进行自动翻译的**开始萌芽,如当时法国科学家Georges Artsrouni 就提出用机器来进行翻译的想法。只是那时依然没有合适的实现手段,所以这种想法的合理性无法被证实。"

应将“19世纪30年代”改为“20世纪30年代”。

P93 实例 3.1

s = 机器 翻译 就 是 用 计算机 来 进行 翻译
t = machine translation is just translation by computer

第二个“翻译”是动词,但第二个“translation”是名词?

能否提供一个读者交流群

你好,很感谢你们为机器翻译领域带来一本这么优秀的书籍,读下来获益良多,我也在你们的实体书出版后买了一本,不知道有没有可能建一个微信群聊,方便读者和NiuTrans以及机器翻译领域的各位大牛进行持续的技术交流呢?

内存不足导致报错的问题

为什么我按照内存不足的解决方法执行了之后,还是不能够编译整个文档呢?还是会报错内存溢出

ensemle搜索策略

假如我已经训练了一堆模型,由于计算资源有限,有没有一种比较推荐的高效的搜索方法,能让我在这堆模型中找到一个比较好的ensemble组合呢?

P106 连乘表示法

公式3.19 中的连乘表示法和后面公式解释中的连乘表示法 不一致

部分Tex文件名大小写不一致

Chapter6\Chapter6.tex
Chapter7\Chapter7.tex
ChapterAppend\ChapterAppend.tex
与mt-book-xelatex.tex中139~141行中文件名大小写不一致,此问题导致在对文件名大小写敏感的操作系统(如大多数Linux)上编译会丢失章节

另外,Chapter1、2、3中所有对Figures的引用均为小写,同样会导致找不到src目录下文件;Chapter6、7也存在少量文件名大小写不符情况

CMD端编译出错

在CMD端执行xelatex mt-book-xelatex后报错如下:
Sorry, but xelatex did not succeed.

The log file hopefully contains the information to get MiKTeX going again:

C:\Users\lenovo\AppData\Local\MiKTeX\2.9\miktex\log\xelatex.log

dvipdfmx:fatal: File ended prematurely

No output PDF file written.

之前有两处出现”! Undefined control sequence.“

4.2 P149

“在桌子上的”应为‘on the table’

捉个typo

《机器翻译》的作者们与编辑们,您们好。阅读您们的著作受益匪浅,这里捉一个小typo。
17.2.2节 “其中的部分概念在后续介绍的端到端语言翻译中也会有所涉及”。 结合下文,语言翻译 应为 语音翻译。

Page 90-91 include Pig 3.4

机器翻译---词翻译模型中的第二个问题,1. 用比较整个句子的统计概率大小解决问题,明显每个词的翻译的最大概率词构成的句子的概率值最大,2.在词翻译模型中,机器是怎么学到的statisfied 后是with 而不是statisfied to.
3. 图3.4 中,在解决了第一个问题后,用统计枚举算,共54中可能。用最大概率计算,应该不是第一条路径最佳。
4.这个图的概率值有误。

谢谢辛苦的工作。

引入文件拼写错误

mt-book-xelatex.tex 文件
line 136,139-141
include 的文件名与实际不符
tex studio 中报错,建议修改实际文件名

在xelatex下无法编译通过

Windows下,使用texlive 2020中的xelatex编译无法通过
`! Undefined control sequence.
__xeCJK_patch_microtype_get_slot:

l.4826 }

? `

书中P294 疑问

屏幕截图 2021-06-16 195419

(C)应该是3阶张量,而且子张量维度应为 2x3 而不是3x2?

勘误:11.14 图片与标注不符

第 11 章图 11.14 中,图示左边的绿框表示 A 作为门控参数,右边 B 表示提取的特征,输出 y 的表达式应该是 $y=\sigma(A) \otimes B$,书中为 $y=A \otimes \sigma(B)$

后文中以 $y=A \otimes \sigma(B)$ 为准描述,应该修改图示为右边的绿框连接 sigmoid 运算。

image

4.1章 page135

p('红 茶'='red tea')=0.8*0.8=0.64
p('红茶'='black tea')=0.6

此处文字描述有误

Transformer mask

能否用矩阵的形式详细说明几种mask:encoder input padding mask,encoder self-attention mask,
decoder input padding mask, decoder masked self-attention mask, encoder-decoder attention mask 谢谢。
例如:zh-en
zh: 我 喜欢 深度学习 。
en: I love deep learning .
token emdding dim: 256

1:encoder input embedding(token embedding+positional embedding) shape: [6,256]
2:encoder input padding mask:[[1][1][1][1][0][0]]

1*2输入encoder layer
encoder self-attention mask:
[[0,0,0,0,-inf,-inf],[0,0,0,0,-inf,-inf],[0,0,0,0,-inf,-inf],[0,0,0,0,-inf,-inf],[-inf,-inf,-inf,-inf,-inf,-inf]]

3:decoder input embedding(token embedding+positional embedding) shape: [6,256]
4:decoder input padding mask:[[1][1][1][1][1][0]]

5:Future mask: [[1,0,0,0,0,0][1,1,0,0,0,0][1,1,1,0,0,0][1,1,1,1,0,0][1,1,1,1,1,0][1,1,1,1,1,1]]
decoder masked self-attention mask: 4 & 5 ????????????????????? 而不是简单的5
即:[[1,0,0,0,0,0][1,1,0,0,0,0][1,1,1,0,0,0][1,1,1,1,0,0][1,1,1,1,1,0][0,0,0,0,0,0]]
最后decoder masked self-attention mask+(-inf):
[[0,-inf,-inf,-inf,-inf,-inf][0,0,-inf,-inf,-inf,-inf][0,0,0,-inf,-inf,-inf][0,0,0,0,-inf,-inf][0,0,0,0,0,-inf][-inf,-inf,-inf,-inf,-inf,-inf]]

6: encoder decoder mask:[[1,1,1,1,0,0],[1,1,1,1,0,0],[1,1,1,1,0,0][1,1,1,1,0,0][1,1,1,1,0,0][0,0,0,0,0,0]]
然后encoder decoder mask+(-inf)=
[[0,0,0,0,-inf,-inf],[0,0,0,0,-inf,-inf],[0,0,0,0,-inf,-inf][0,0,0,0,-inf,-inf][0,0,0,0,-inf,-inf][-inf,-inf,-inf,-inf,-inf,-inf]]

书本P347页内容勘误

image

这个图中的 x 处 不是点乘,是Hadamard product,在数学公式10.9中,一般的表示符号是空心小圆圈和带实心点的空心小圆圈。所以公式10.9和其上一段的“点乘”中文描述可能需要修改。

勘误 章节 8.2.1 p224

"这项工作也获得了自然语言处理领域顶级会议 ACL2015 的最佳论文奖"
看了下索引88的文献, 它是2005年的最佳论文奖. https://aclanthology.org/P05-1033/

另外想说下一个小细节, 参考文献, index 之类的能不能放到左侧pdf目录中

请问神经机器翻译中,对于小语种的训练应该怎么做呢?

在神经机器翻译中,我已经收集到不少数据,但是出现的问题是,中文到英文准确度可以保证,当设置平行语句时总会出问题,并且在训练过程中,日语和韩语这两种语言与中文的转换并不准确,韩语与日语中有很多语法与中文语法不同,所以想请教一下大佬们,有没有好的建议,还有就是在训练中,如果一句话中加入表情,那么识别语种会有问题,并且表情符号也会被吞掉,以上这几个问题请问有没有好的解决办法呢?

补充smt中特征的介绍

感谢分享,能否在smt部分加一些特征的介绍。书里面的特征工程出现频次较高,但是没有特征的具体介绍。

语料很少怎么办?

在神经机器翻译中,如果数据很少,或者甚至没有平行语句的情况,还能训练翻译模型吗

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.