目录
介绍
谷歌翻译工作得如此之好,它通常看起来很神奇。但这不是魔法——这是深度学习!
在本系列文章中,我们将向您展示如何使用深度学习来创建自动翻译系统。本系列可被视为分步教程,可帮助您理解和构建神经元机器翻译。
本系列假设您熟悉机器学习的概念:模型训练、监督学习、神经网络以及人工神经元、层和反向传播。
在上一篇文章中,我们介绍了构建基于 ML 的翻译器所需的主要理论概念。在本文中,我们将研究构建 AI 语言翻译器所需的工具。
工具和版本
多个框架提供用于深度学习(DL)的API。TensorFlow + Keras组合是迄今为止最流行的,但竞争框架,如PyTorch、Caffe和Theano,也被广泛使用。
这些框架通常对神经网络(NN)使用黑盒方法,因为它们可以执行大部分“魔术”,而无需您编写NN逻辑代码。还有其他构建神经网络的方法——例如,使用深度学习编译器。
下表列出了我们将使用的Python模块的版本。所有这些模块都可以使用pip命令末尾的==[version]标志显式安装。例如:“pip install tensorflow==2.0”。
我们正在编写的代码应该适用于任何操作系统,但请注意,我们使用的是Python 3,因此请确保已安装它。如果您的系统同时安装了Python 2和Python 3,则需要在下面的安装命令中运行pip3而不是pip:
模块 | 版本 |
TensorFlow | 2.3.1 |
Keras | 2.1.0 |
numpy | 1.18.1 |
pandas | 1.1.3 |
word2vec | 0.11.1 |
TensorFlow
TensorFlow是一个非常流行的用于神经网络构建的Python框架。
现在你可以通过运行来安装TensorFlow:
pip install tensorflow
TensorFlow包的下载和安装可能需要一些时间,因为它非常大——超过400 MB。
要验证TensorFlow是否已成功安装,请运行:
pip show tensorflow
输出应该类似于:
Name: tensorflow
Version: 2.3.1
Summary: TensorFlow is an open source machine learning framework for everyone.
Home-page: https://www.tensorflow.org/
Author: Google Inc.
Author-email: packages@tensorflow.org
License: Apache 2.0
Location: /usr/local/lib64/python3.6/site-packages
Requires: opt-einsum, tensorboard, termcolor, six, h5py, gast, tensorflow-estimator,
google-pasta, astunparse, wrapt, grpcio, absl-py, numpy, keras-preprocessing, protobuf, wheel
Required-by:
重要的是运行python3而不是简单的python(对于pip3和不一样pip)。通常,Python的默认安装会出现在Centos中,并且不能在我们的项目中使用。
Keras
Keras是一个运行在TensorFlow之上的深度学习API。Keras也可以运行在其他框架之上,例如Theano,但这里我们选择将其与TensorFlow相关联。
要安装Keras,请输入以下命令:
pip install keras
要检查Keras是否已成功安装,请键入:
pip list | grep Keras
Pandas
Pandas是一个用于数据操作和分析的Python API。除其他外,我们将需要它来为我们的DL模型准备训练数据。
可以使用pip3以下命令安装Pandas库:
pip install pandas
Word2Vec
我们需要Word2Vec进行词嵌入,以支持在我们的NN中创建嵌入层。其他工具,例如GloVe或BERT,也可以完成这项工作。BERT会更高效,但由于其上下文依赖性,集成起来要复杂得多,因此我们将使用Word2Vec来简化事情。
要安装Word2Vec,请运行:
pip install word2vec
我们安装的工具将使我们能够构建机器翻译(MT)软件。为了适应我们的拼图,我们将:
- 处理英语词典并让Word2Vec为英语创建自定义词嵌入系统。
- 使用Keras构建一个具有长短期记忆(LSTM)单元的序列到序列循环神经网络(RNN),它内置了我们需要的一切支持。
- 在LSTM序列到序列RNN的开头添加Word2Vec创建的嵌入层。
- 处理英语/俄语平行语料库:清理、格式化和标记化
- 使用处理过的英语/俄语平行语料库训练我们的DL模型。
- 用几个英语句子测试我们的NMT的翻译准确性。
我们正在构建的神经机器翻译系统的工作流程。
请记住,这并不是构建AI语言翻译系统的唯一方法。例如,我们可以使用门控循环单元(GRU)单元而不是LSTM单元。我们选择上述架构是因为它易于理解、易于训练并且运行良好。但是,一旦您了解了基础知识,还有很多东西需要探索。
下一步
在接下来的文章中,我们将代码中使用TensorFlow和Keras自动翻译系统。
https://www.codeproject.com/Articles/5299747/Tools-for-Building-AI-Language-Translation-Systems