机器学习入门0005 tensorflow_NMT模型

本文介绍了如何使用TensorFlow的NMT模型进行聊天机器人、翻译等任务。通过下载并处理斯坦福大学的英语-越南语平行语料库进行训练,详细讲解了模型的训练、使用和参数调整,以及数据格式要求和集成到项目的方法。
摘要由CSDN通过智能技术生成

机器学习入门0005 tensorflow_NMT模型


1.简介

nmt(Neural Machine Translation)是一个序列到序列的模型。可以用来做【聊天机器人】,【翻译】,【关键词提取】,【文章摘要】,【图像描述】等功能。用法简单,只需要安装Tensorflow1.4+ 版本即可运行。这个地址是Tensorflow 官方github https://github.com/tensorflow/nmt,里面内容很全面。




2.运行官网github的例子

下面内容是从斯坦福大学下载英语到越南语的平行语料库,然后通过nmt模型使用语料库训练一个 英语-越南语 或者 越南语-英语 的翻译模型。

2.1  下载平行语料库

在控制台输入这个命令nmt/scripts/download_iwslt15.sh /tmp/nmt_data,就可以下载小的平行语料库了。这个命令需要在nmt目录外边执行,会把数据下载到/tmp/nmt_data/下,其实是8个文件。在国内,由于网络原因,这个命令下载总是会中止,很蛋疼。可以借助其他下载工具来下载(比如某雷,某度云盘,某旋风等),这些文件的地址是:

https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/train.en
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/train.vi
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2012.en
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2012.vi
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2013.en
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/tst2013.vi
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/vocab.en
https://nlp.stanford.edu/projects/nmt/data/iwslt15.en-vi/vocab.vi

下载完成后放在/tmp/nmt_data/下,也可以下载到

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 17
    评论
要训练一个相反的法-英翻译模型,需要修改load_data_nmt()函数中的以下部分: 1. 更改read_data_nmt()函数,以读取法语-英语平行语料库。 2. 更改tokenize_nmt()函数,以将法语和英语互换。 3. 将Vocab()函数中的source和target参数互换,以创建英语-法语词汇表。 4. 将build_array_nmt()函数中的source和target参数互换,以创建英语-法语数值序列。 下面是修改后的load_data_nmt()函数: ``` python def load_data_nmt(batch_size, num_steps, num_examples=600, min_freq=6): """返回相反的法语-英语翻译数据集的迭代器和词表""" text = d2l.preprocess_nmt(read_data_nmt_fr_en()) # 读取法语-英语平行语料库 target, source = d2l.tokenize_nmt(text, num_examples) # 将法语和英语互换 print("source", len(source)) tgt_vocab = d2l.Vocab(source, min_freq=6, # 创建英语-法语词汇表 reserved_tokens=['<pad>', '<bos>', '<eos>']) print("tgt_vocab", len(tgt_vocab)) src_vocab = d2l.Vocab(target, min_freq=6, # 创建法语-英语词汇表 reserved_tokens=['<pad>', '<bos>', '<eos>']) src_array, tgt_valid_len = d2l.build_array_nmt(source, src_vocab, num_steps) # 创建英语-法语数值序列 tgt_array, src_valid_len = d2l.build_array_nmt(target, tgt_vocab, num_steps) # 创建法语-英语数值序列 data_arrays = (src_array, src_valid_len, tgt_array, tgt_valid_len) data_iter = d2l.load_array(data_arrays, batch_size) return data_iter, src_vocab, tgt_vocab ``` 这个函数会返回法语-英语数据集的迭代器和英语-法语词汇表。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值