机器翻译

无监督机器翻译Word Translation without Parallel Data

匿名 (未验证) 提交于 2019-12-03 00:09:02
无监督机器翻译一 机器翻译 Word Translation without Parallel Data 基线方法 相似性度量方法 对抗训练 改进 结果比较 无监督模型选择的验证标准 机器翻译 目前主流的机器翻译模型都是有监督的,本文主要介绍无监督机器翻译。Facebook某课题组在无监督机器翻译方面发表了四篇论文,四篇论文一脉相承,层层深入,前一篇都是后一篇的基础,对于无监督机器翻译的学习有很大的帮助。今天先介绍第一篇,下面是这四篇论文的标题链接: Word Translation without Parallel Data - ICLR’18 Unsupervised Machine Translation Using Monolingual Corpora Only - ICLR’18 Phrase-Based & Neural Unsupervised Machine Translation - EMNLP’18 Cross-lingual Language Model Pretraining Word Translation without Parallel Data 文章前后脉络有些乱,其实仔细阅读发现文中主要是用无监督方法和有监督方法做对比,有监督方法又叫基线方法,文中叫Procrustes,该方法和三种相似度度量方法(NN、ISF、CSLS

通过pandas机器翻译数据集中提取英文数据(读取--切取--去重--保存)

匿名 (未验证) 提交于 2019-12-03 00:03:02
en cn Hi. 嗨。 Hi. 你好。 Run. 你用跑的。 Wait! 等等! Hello! 你好。 I try. 让我来。 I won! 我赢了。 Oh no! 不会吧。 Cheers! 乾杯! Got it? 你懂了吗? He ran. 他跑了。 Hop in. 跳进来。 I lost. 我迷失了。 I quit. 我退出。 I'm OK. 我没事。 Listen. 听着。 No way! 不可能! No way! 没门! Really? 你确定? Try it. 试试吧。 We try. 我们来试试。 Why me? 为什么是我? Ask Tom. 去问汤姆。 Be calm. 冷静点。 Be fair. 公平点。 Be kind. 友善点。 Be nice. 和气点。 Call me. 联系我。 Call us. 联系我们。 。。。。。。。。。。 import pandas as pd print("-----------------------读取所有列行(前五行)--------------------------") data = pd.read_csv("./data/zh_en.csv", encoding="utf-8", sep="\t") # 每列\t符号分隔 print(data.head()) print("---------------------

机器翻译

匿名 (未验证) 提交于 2019-12-02 23:57:01
题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有 M个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M-1 ,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为 N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 输入格式 共 2 2行。每行中两个数之间用一个空格隔开。 第一行为两个正整数 M,N ,代表内存容量和文章的长度。 第二行为 N个非负整数,按照文章的顺序,每个数(大小不超过 1000 )代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 输出格式 一个整数,为软件需要查词典的次数。 输入输出样例 输入 #1 3 7 1 2 1 5 4 4 1 输出 #1 5 说明/提示 每个测试点

机器翻译

蓝咒 提交于 2019-12-02 23:49:02
机器翻译 本教程源代码目录在 book/machine_translation ,初次使用请您参考 Book文档使用说明 。 # 说明 硬件要求 本文可支持在CPU、GPU下运行 对docker file cuda/cudnn的支持 如果您使用了本文配套的docker镜像,请注意:该镜像对GPU的支持仅限于CUDA 8,cuDNN 5 文档中代码和train.py不一致的问题 请注意:为使本文更加易读易用,我们拆分、调整了train.py的代码并放入本文。本文中代码与train.py的运行结果一致,如希望直接看到训练脚本输出效果,可运行 train.py 。 # 背景介绍 机器翻译(machine translation, MT)是用计算机来实现不同语言之间翻译的技术。被翻译的语言通常称为源语言(source language),翻译成的结果语言称为目标语言(target language)。机器翻译即实现从源语言到目标语言转换的过程,是自然语言处理的重要研究领域之一。 早期机器翻译系统多为基于规则的翻译系统,需要由语言学家编写两种语言之间的转换规则,再将这些规则录入计算机。该方法对语言学家的要求非常高,而且我们几乎无法总结一门语言会用到的所有规则,更何况两种甚至更多的语言。因此,传统机器翻译方法面临的主要挑战是无法得到一个完备的规则集合[ 1 ]。 为解决以上问题,统计机器翻译

[转] 深度学习中的注意力机制

南楼画角 提交于 2019-12-01 09:33:22
from: https://zhuanlan.zhihu.com/p/37601161 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理、语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影。所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要。 人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制。 图1 人类的视觉注意力 视觉注意力机制是人类视觉所特有的大脑信号处理机制。人类视觉通过快速扫描全局图像,获得需要重点关注的目标区域,也就是一般所说的注意力焦点,而后对这一区域投入更多注意力资源,以获取更多所需要关注目标的细节信息,而抑制其他无用信息。 这是人类利用有限的注意力资源从大量信息中快速筛选出高价值信息的手段,是人类在长期进化中形成的一种生存机制,人类视觉注意力机制极大地提高了视觉信息处理的效率与准确性。 图1形象化展示了人类在看到一副图像时是如何高效分配有限的注意力资源的,其中红色区域表明视觉系统更关注的目标,很明显对于图1所示的场景,人们会把注意力更多投入到人的脸部,文本的标题以及文章首句等位置。 深度学习中的注意力机制从本质上讲和人类的选择性视觉注意力机制类似,核心目标也是从众多信息中选择出对当前任务目标更关键的信息。 Encoder

【机器翻译】BLEU学习

徘徊边缘 提交于 2019-11-30 05:53:11
BLEU学习 简介 BLEU(bilingual evaluation understudy),是一种翻译结果的评估方法,主要概念来自于这篇 Bleu: a method for automatic evaluation of matchin translatrion 论文,本文主要学习和总结该论文及相关材料。 1. 评估标准 BLEU的思想基于一个前提: 机器翻译的结果越接近专业人士的翻译,结果越好 。为了评估翻译质量,需要将翻译结果与一个或多个人工翻译结果的接近程度量化。因此,评估系统需要两个维度: “接近程度”的数字度量(closeness metric) 人工翻译的高质量语料 其中接近程度的计算参考了语音识别中的单词错误率(word error rate)的度量方法,不过需要针对两个方面在算法上做修改:1、评估可能基于多条参考语料。2、允许一定范围的单词或者词序不同。算法改进的主要思想是使用不同长度短语与参考语料的匹配情况的加权平均。让我们从最简单的度量方法开始。 2. 基准版的BLEU度量方法 给定一个句子,会存在多个很好的翻译。这些翻译或选词不同或词序不同,但是我们还是可以很容易的区分出好的和不好的翻译。如: candidate 1: It is a guide to action which ensures that the military always obeys

无监督机器翻译Word Translation without Parallel Data

▼魔方 西西 提交于 2019-11-30 02:08:58
无监督机器翻译一 机器翻译 Word Translation without Parallel Data 基线方法 相似性度量方法 对抗训练 改进 结果比较 无监督模型选择的验证标准 机器翻译 目前主流的机器翻译模型都是有监督的,本文主要介绍无监督机器翻译。Facebook某课题组在无监督机器翻译方面发表了四篇论文,四篇论文一脉相承,层层深入,前一篇都是后一篇的基础,对于无监督机器翻译的学习有很大的帮助。今天先介绍第一篇,下面是这四篇论文的标题链接: Word Translation without Parallel Data - ICLR’18 Unsupervised Machine Translation Using Monolingual Corpora Only - ICLR’18 Phrase-Based & Neural Unsupervised Machine Translation - EMNLP’18 Cross-lingual Language Model Pretraining Word Translation without Parallel Data 文章前后脉络有些乱,其实仔细阅读发现文中主要是用无监督方法和有监督方法做对比,有监督方法又叫基线方法,文中叫Procrustes,该方法和三种相似度度量方法(NN、ISF、CSLS

[luogu1540]机器翻译 (模拟/vector练习)

不打扰是莪最后的温柔 提交于 2019-11-28 09:54:19
大水题 vector是个好东西qwq 下面应该附一下vector的使用 题目 题目背景 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 题目描述 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有M个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过M-1,软件会将新单词存入一个未使用的内存单元;若内存中已存入M个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为N个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 输入输出格式 输入格式: 共2行。每行中两个数之间用一个空格隔开。 第一行为两个正整数M,N,代表内存容量和文章的长度。 第二行为N个非负整数,按照文章的顺序,每个数(大小不超过1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 输出格式: 一个整数,为软件需要查词典的次数。 #include<bits/stdc+

『深度应用』NLP机器翻译深度学习实战课程·壹(RNN base)

南楼画角 提交于 2019-11-28 05:43:49
深度学习用的有一年多了,最近开始NLP自然处理方面的研发。刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程。 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内容:(更新ing) NLP机器翻译深度学习实战课程·零(基础概念) NLP机器翻译深度学习实战课程·壹(RNN base) NLP机器翻译深度学习实战课程·贰(RNN+Attention base) NLP机器翻译深度学习实战课程·叁(CNN base) NLP机器翻译深度学习实战课程·肆(Self-Attention base) NLP机器翻译深度学习实战课程·伍(应用部署) 本系列教程参考博客:https://me.csdn.net/chinatelecom08 开源地址: https://github.com/xiaosongshine/MNT_RNN_Keras 个人主页: http://www.yansongsong.cn/ 0. 项目背景 在上个文章中,我们已经简单介绍了NLP机器翻译,这次我们将用实战的方式讲解基于RNN的翻译模型。 0.1 基于RNN的seq2seq架构翻译模型介绍 seq2seq结构 基于RNN的seq2seq架构包含encoder和decoder,decoder部分又分train和inference两个过程,具体结构如下面两图所示: ​ ​ 可以看出结构很简单

On Using Very Large Target Vocabulary for Neural Machine Translation

限于喜欢 提交于 2019-11-28 00:53:58
neural machine translation的优点: (1)要求比较少的domain knowledge(比如说源语和目标语的特征) (2)joint tuned, 以往 phrase-based 系统是 tuned separately (3)要求少量的内存 尽管存在很多优点,但是也不可避免第存在缺点: target words受限, 随着target words 数量的增加,模型的训练复杂性增加 因为我的目的就是要了解机器翻译的大概流程,所以就大概说下目前机器翻译的做法,针对这样的做法,本文提出了那些改进: 因为目标语言的词汇量巨大,所以通常的做法是选取选取频率最高的K个词作为target vocabulary(通常也称为shortlist), K的选取范围30000到80000词之间, 其他不在shortlist中的词统称为UNK. 当只有一少部分的词作为UNK时,方法的效果就非常好,随着不在shortlist中的词的增加翻译的性能大幅下降。 但是如果一味地增加shortlist的单词量会使得计算的复杂性增加,主要体现在: 在计算Z的时候因为单词量巨大而使得训练难度增加。 为了解决这个问题,文章提出了一种 importance sampling 的方法,每次更新时,使用目标词汇集中的小部分子集,近似得到Z的值