(五)如何训练和测试AI语言翻译系统
目录
介绍
使用 LST单元进行训练和测试
现在有自我注意
下一步
在这里,我们将创建一个Keras标记器,它将从平行语料库中找到的单词中构建一个内部词汇表,使用Jupyter notebook训练和测试我们的模型,并尝试在启用自注意力的情况下运行我们的模型。
- 下载源文件 - 3.5 KB
介绍
谷歌翻译工作得如此之好,它通常看起来很神奇。但这不是魔法——这是深度学习!
在本系列文章中,我们将向您展示如何使用深度学习来创建自动翻译系统。本系列可被视为分步教程,可帮助您理解和构建神经元机器翻译。
本系列假设您熟悉机器学习的概念:模型训练、监督学习、神经网络以及人工神经元、层和反向传播。
在上一篇文章中,我们构建了一个基于深度学习的模型,用于从英语到俄语的自动翻译。在本文中,我们将训练和测试此模型。
使用 LST单元进行训练和测试
我们将开始训练和测试我们模型的核心:没有自我注意和词嵌入的LSTM单元。标准的Keras嵌入组件将提供从一组词到向量的编码。
模型训练包括几个具体的任务:
- 标记输入数据(预处理)
- 确定训练/自测数据比率
- 模型的训练
我们将首先准备输入(源)数据和输出(目标)数据,使其具有数值、固定大小的输入和输出模型。在此之前,我们无法将句子或单词提供给我们的Keras神经网络(NN)模型。
我们将首先创建一个Keras分词器,它将根据在平行语料库中找到的词构建一个内部词汇表。让我们将它包装在一个函数中:
### tokenizer ###
def tokenization(lines):#print(lines)tokenizer = Tokenizer()tokenizer.fit_on_texts(lines)return tokenizer
首先,我们必须使用fit_on_texts函数。
这个函数接受一个句子列表作为它的参数,并建立一个从最常见的词到索引的映射。它不编码句子,但准备了一个标记器来这样做。
然后,我们必须提供一种方法来编码我们的输入句子。让我们创建另一个函数来做到这一点:
### encode ###
def encode_sequences(tokenizer, length, lines):# integer encode sequencesseq = tokenizer.texts_to_sequences(lines)# pad sequences with 0 valuesseq = pad_sequences(seq, maxlen=length, padding='post')return seq
一旦我们初始化了标记器,我们将调用texts_to_sequences函数进行编码。以下代码从数字向量中检索单词:
temp = []for j in range(len(i)):t = get_word(i[j], ru_tokenizer)if j > 0:if (t == get_word(i[j-1], ru_tokenizer)) or (t == None):temp.append('')else:temp.append(t)else:if(t == None):temp.append('')else:temp.append(t)return ' '.join(temp)
让我们使用Jupyter notebook来训练和测试我们的模型。如果您在没有GPU的机器上运行,您可能希望在Colab上运行notebook,因为它提供了免费的支持GPU的notebook实例。
处理我们数据集的第一个条目将为我们提供训练数据中条目的准确结果,以及其他数据的近似交易。这让我们可以检查翻译器是否正常工作。
下表显示了英文输入数据,然后是理想的俄语翻译,最后是模型翻译:
俄语翻译器出奇的好,可能是因为我们用超过400,000个输入训练了模型。
当然,它仍然不如专业的自动翻译系统,可见挑战有多么艰巨。一些缺陷立即显现出来。例如,句子“你对我很好”被翻译为“ты был для мне очень мне”(“你对我来说非常好”)。
我们还可以通过简单地交换输出和输入数据来创建反向翻译(俄语到英语)。或者,为了试验其他语言,我们可以从Tatoeba项目加载任何其他训练集。
现在有自我注意
接下来让我们尝试在启用自注意力的情况下运行我们的模型。我们看到了喜忧参半的结果。在某些情况下,翻译接近完美(黄色),但在其他一些情况下,翻译没有提高,甚至在质量上不如没有自我注意的翻译(灰色)。
直觉上,这是有道理的。注意机制可以帮助模型关注句子中单词的重要性——句子越长,确定哪些单词重要和不重要就越容易。使用self-attention的翻译模型通常会提供更好的结果,但并非总是如此,尤其是在输入较短的情况下。
下一步
在接下来的文章我们会分析我们的模型所产生的结果,并讨论翻译普遍基于DL方法的潜力。
https://www.codeproject.com/Articles/5299749/How-to-Train-and-Test-an-AI-Language-Translation-S
(五)如何训练和测试AI语言翻译系统相关推荐
- (三)用于构建AI语言翻译系统的工具
目录 介绍 工具和版本 TensorFlow Keras Pandas Word2Vec 下一步 下载源文件 - 3.5 KB 介绍 谷歌翻译工作得如此之好,它通常看起来很神奇.但这不是魔法--这是深 ...
- (四)使用TensorFlow和Keras构建AI语言翻译
目录 介绍 导入库 构建模型组件 添加注意力机制 将模型放在一起 下一步 下载原文件 -- 3.5k 介绍 谷歌翻译工作得如此之好,它通常看起来很神奇.但这不是魔法--这是深度学习! 在本系列文章中, ...
- (2)esp8266多国语言翻译系统
http://bbs.mydigit.cn/simple/?t2649513.html 这个想法不错 原来只是想用esp8266搞一个百度的多国语言翻译系统出来的,只是为了尝试如何调用各种web ap ...
- (六)多语言人工智能语言翻译
目录 介绍 翻译多种语言 下一步 下载源文件 - 3.5 KB 介绍 谷歌翻译工作得如此之好,它通常看起来很神奇.但这不是魔法--这是深度学习! 在本系列文章中,我们将向您展示如何使用深度学习来创建自 ...
- Caffe学习系列(12):训练和测试自己的图片
学习caffe的目的,不是简单的做几个练习,最终还是要用到自己的实际项目或科研中.因此,本文介绍一下,从自己的原始图片到lmdb数据,再到训练和测试模型的整个流程. 一.准备数据 有条件的同学,可以去 ...
- Caffe新手教程傻瓜系列(9):训练和测试自己的图片
在深度学习的实际应用中,我们经常用到的原始数据是图片文件,如jpg,jpeg,png,tif等格式的,而且有可能图片的大小还不一致.而在caffe中经常使用的数据类型是lmdb或leveldb,因 ...
- 【12】Caffe学习系列:训练和测试自己的图片
一.准备数据 有条件的同学,可以去imagenet的官网http://www.image-net.org/download-images,下载imagenet图片来训练.验证码始终出不来需要翻墙(是g ...
- CIFAR10数据集训练及测试
一.数据集介绍 该数据集共有60000张彩色图像,这些图像是32*32,分为10个类,每类6000张图.这里面有50000张用于训练,构成了5个训练批,每一批10000张图:另外10000用于测试,单 ...
- AAAI'23 | 利用大规模辅助数据提升端到端语音翻译系统
每天给你送来NLP技术干货! 作者 | 张裕浩 单位 | 东北大学自然语言处理实验室 来自 | 机器翻译学堂 [导读]本文由论文原作者撰写,介绍作者团队设计的一种多阶段的预训练方法,利用有标注和无标注 ...
最新文章
- R语言基本描述性统计量函数
- 项目经理的10条项目管理心得
- iOS开发-开发总结(七)
- spring cloud gateway的stripPrefix配置
- 迷你版Spring MVC 实现
- python stdout_python 之sys.stdout小记
- Waymo无人车,每天能绕地球一圈
- 七乐彩中奖规则表_双色球第2020118期开奖结果出炉!你中奖了吗?
- Gcc编译选项 -E
- pdf需要简体中文语言支持包_收集全网最好用的PDF转Word工具,赶快收藏起来!...
- git常用使用命令个人总结
- javascript设计模式 使用ES6语法
- 结构专业规范大全_监理签字用语规范大全,就是这么专业!
- winserver 2016密钥
- 波士顿大学计算机硕士排名,GPA3.25却获波士顿大学计算机硕士录取
- 联想E431 win10+Unbutun+Deepin系统安装
- matlab中如何输入积分,在matlab中怎么输入特殊符号,Matlab的符号积分
- ubuntu 环境搭建问题归纳
- WindowsServer教程一:SSMS连接数据库相关配置
- 天大2021年秋学期考试《材料力学》离线作业考核试题
热门文章
- 晨风机器人对接php_php封装实现钉钉机器人报警接口的示例代码
- python读hadoop_python读取hdfs并返回dataframe教程
- android 模糊组件,Android实现局部模糊效果
- redhat怎样修改语言_硕士博士个人陈述(PS)辅导及修改服务带你极速前进!
- 设计灵感|独具中国韵味的海报设计
- 电商首焦素材的万能构图模板
- python3.7.4怎么运行_记一次win7在python3.7.4环境启动ride报错解决
- mysql数据库合并游戏合服_浅谈滚服游戏如果实现一键合服
- WinForm picturebox控件绑定BitMAP
- 使用mprotect系统调用来调试内存问题:memalign,aligned_alloc