机器翻译

中国机器翻译的世纪回顾

僤鯓⒐⒋嵵緔 提交于 2020-04-13 08:18:52
  在世界范围内,机器翻译的研究与开发已经走过了50年的历史。我国机器翻译的研究开始于1956年。1959年,中国的机器翻译研究者成功地进行了中国首次 机器翻译试验表演。中国是世界上第五个进行这种实验的国家。今年应是中国的机器翻译研究的40周年。在这时刻来作一番世纪回顾,更有其纪念的意义。   在进行技术层面的回顾之前,我愿就宏观方面做点介绍。首先,中国的机器翻译研究从一开始就得到了国家的高度重视。早在1956年它便以"机器翻译 "/"自然语言的数学理论"列入了当时的《科学发展纲要》。以后则列为"六五"、"七五",以及"863"等重大科 研项目。中国的机器翻译研究虽然也有过10年的停滞,但与国外不同,并不是由于对机器翻译研究本身的中断投资引起的。其次,中国的机器翻译研究从一开始 就具有多单位,多方面不同知识结构人员的协同攻关的特点。这是这项研究自身的特点所决定的,它需要至少计算机科学、数学、语言学等多方面知识。   70年代中期,我国机器翻译研究从停滞走向了复苏,是协同攻关的特点体现最充分的时期。当时在中国科技情报所的组织下集中了许多部委的研究人员在社 科院语言所的专家的具体指导下协同攻关。当时的理想是通过这样的大协作,开发出系统,培养一批人材,然后把系统带回各自的单位投入使用,并在使用过程 中继续完善。虽然遍地开花的良好愿望后来没有实现,但通过五年多的通力合作,开发出了系统

听机器翻译技术干货,尽在飞桨博士会第五期

混江龙づ霸主 提交于 2020-03-18 20:28:56
3 月,跳不动了?>>> 飞桨博士会是由百度开源深度学习平台飞桨(PaddlePaddle)发起的中国深度学习技术俱乐部,旨在打造深度学习核心开发者交流圈,助力会员拓展行业高端人脉、交流前沿技术。俱乐部为会员制,成员皆为博士生导师或博士,且具备深度学习多年研究和实践经验。 10月26日下午2点,第五期线下技术沙龙将在北京市海淀区西二旗百度大厦举办(详细定位可见文末地图),百度人工智能技术委员会主席何中军博士,将分享《机器同传进展与展望》。 【主讲人简介】 何中军,博士,百度人工智能技术委员会主席。长期从事机器翻译研究与开发,在领域权威会议发表论文30余篇,申请专利40余项。研发了全球首个互联网神经网络翻译系统、Wi-Fi翻译机、具有感知上下文和时延可控的语音到语音同传系统。曾获国家科技进步二等奖、中国电子学会科技进步一等奖、中国专利银奖、北京市科技进步二等奖、电子学会优秀科技工作者等多项奖励。 【本期分享亮点】 1.了解百度机器翻译技术最新成果 2.飞桨PaddlePaddle在语音技术方向的开发能力 3.获取同行业研究者交流机会,拓展高端人脉 4.成功参会可免费获得100小时Tesla V100 GPU计算资源 扫描 下图二维码 即可报名,欢迎加入飞桨博士会~ 【往期回顾】 飞桨博士会已成功举办四期线下技术沙龙,分别围绕NLP研究方向、CV研究方向展开技术交流。

一、认识NLP

泄露秘密 提交于 2020-03-17 01:46:34
NLP定义: NLP的challenge(挑战)是:语言有多种意思 解决方法:看句子的context(上下文) 机器翻译系统: 传统方法:构建语料库,输入一句话,想看这句话的意思,一个单词一个单词从语料库找意思,用统计分析方法求概率 传统方法的缺点: 可能出现语料库没有这个单词的情况(out of vocabulary)—(oov) 有一词多义的情况,不好区分意思 输出的语序不一定正确 解决方法: Mixed Word/Character Model: 把所有的oov分词,拆成字符,比如比如 Jessica,变成 J,e,s,s,i,c,a。其中 是Begin,Middle,End的标记。这样处理的好处就是消灭了全部的OOV。坏处就是文本序列变得非常长,对于性能敏感的系统,这是难以接受的维度增长 UNK处理 在训练数据充足的情况下,RNN模型可以轻松支持30k-80k的词表。在大多数情况下,扩大词表都是首选的方案 通过上下文分析一词多义的情况 对于输出的语序不对的情况,可以用语言模型进行判定,给定一个句子,判定从语法来看,最正确的概率 统计型机器翻译步骤 来源: CSDN 作者: 默默努力的人 链接: https://blog.csdn.net/weixin_43979941/article/details/104858052

动手学深度学习task4

感情迁移 提交于 2020-02-20 07:36:25
机器翻译 与seq2seq 由于机器翻译任务中输入输出都是不定长序列,我们可以使用编码器—解码器(encoder-decoder)或者seq2seq模型 。 注意力机制 attention模仿人类注意力,能让模型更关注数据的局部。 来源: CSDN 作者: 我是飞行模式 链接: https://blog.csdn.net/u012302260/article/details/104398275

Task4:机器翻译及相关技术

安稳与你 提交于 2020-02-20 02:58:55
机器翻译和数据集 机器翻译(MT):将一段文本从一种语言自动翻译为另一种语言,用神经网络解决这个问题通常称为神经机器翻译(NMT)。 主要特征:输出是单词序列而不是单个单词。 输出序列的长度可能与源序列的长度不同。 import os os.listdir ( '/home/kesci/input/' ) [‘fraeng6506’, ‘d2l9528’, ‘d2l6239’] import sys sys.path.append ( '/home/kesci/input/d2l9528/' ) import collections import d2l import zipfile from d2l.data.base import Vocab import time import torch import torch.nn as nn import torch.nn.functional as F from torch.utils import data from torch import optim 数据预处理 将数据集清洗、转化为神经网络的输入minbatch with open ( '/home/kesci/input/fraeng6506/fra.txt' , 'r' ) as f: raw_text = f.read ( ) print ( raw_text [ 0

TASK04-注意力机制-机器翻译-Transformer

人盡茶涼 提交于 2020-02-18 05:05:08
将注意力机制放到这里,以后会用到。 练习题放在最前面: 关于Transformer描述正确的是: 在训练和预测过程中,解码器部分均只需进行一次前向传播。 Transformer 内部的注意力模块均为自注意力模块。 解码器部分在预测过程中需要使用 Attention Mask。 自注意力模块理论上可以捕捉任意距离的依赖关系。 答案解释 选项1:训练过程1次,预测过程要进行句子长度次 选项2:Decoder 部分的第二个注意力层不是自注意力,key-value来自编码器而query来自解码器 选项3:不需要 选项4:正确,因为自注意力会计算句子内任意两个位置的注意力权重 2. 在Transformer模型中,注意力头数为h,嵌入向量和隐藏状态维度均为d,那么一个多头注意力层所含的参数量是: 4hd24hd^24hd2 (3h+1)d2(3h + 1)d^2(3h+1)d2 4d24d^24d2 3hd23hd^23hd2 答案解释 参考MultiHeadAttention模块的定义。 hhh个注意力头中,每个的参数量为3d23d^23d2,最后的输出层形状为hd×dhd \times dhd×d,所以参数量共为4hd24hd^24hd2。 3. 下列对于层归一化叙述错误的是: 层归一化有利于加快收敛,减少训练时间成本 层归一化对一个中间层的所有神经元进行归一化

浴谷P1540 机器翻译

痞子三分冷 提交于 2020-02-15 12:36:56
浴谷P1540 机器翻译 #include<bits/stdc++.h> using namespace std; int m; int n; queue<int> memory; bool inQueue[100003]; int main() { scanf("%d %d",&m,&n); int cnt=0; for(int i=0;i<n;i++){ int x; scanf("%d",&x); if(!inQueue[x]){ cnt++; memory.push(x); inQueue[x]=true; if(memory.size()>m){ inQueue[memory.front()]=false; memory.pop(); } } } cout<<cnt<<endl; return 0; } 来源: CSDN 作者: weixin_44026260 链接: https://blog.csdn.net/weixin_44026260/article/details/104309619

机器翻译【NOIP2010提高组】

百般思念 提交于 2020-02-15 12:35:22
时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 131072K,其他语言262144K 64bit IO Format: %lld 题目描述 小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。 这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。 假设内存中有 M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。 假设一篇英语文章的长度为N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。 输入描述: 输入共2 行。每行中两个数之间用一个空格隔开。 第一行为两个正整数M 和N,代表内存容量和文章的长度。 第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。 输出描述: 共1

洛谷 P1540 机器翻译

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

P1540 机器翻译

心已入冬 提交于 2020-02-10 11:57:21
题解: #include<iostream> #include<cmath> using namespace std; int main() { int m,n; cin>>m>>n; int a[n],b[m]; int ret=0; int c,c1=0; for(int i=0;i<n;i++){ cin>>a[i]; c=0; if(ret<m){ for(int j=0;j<ret;j++){ if(b[j]==a[i]){ c++; break; } } if(c==0){ b[ret]=a[i]; ret++; } }else{ for(int j=0;j<m;j++){ if(b[j]==a[i]){ c++; break; } } if(c==0){ b[c1]=a[i]; if(c1==m-1){ c1=0; }else{ c1++; } ret++; } } } cout<<ret<<endl; return 0; } 来源: https://www.cnblogs.com/lijiahui-123/p/12290259.html