机器翻译

2024-04-06 06:36
文章标签 机器翻译

本文主要是介绍机器翻译,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

题源  需要用一个数组来进行队列中元素的标记

题目描述

小晨的电脑上安装了一个机器翻译软件,他经常用这个软件来翻译英语文章。

这个翻译软件的原理很简单,它只是从头到尾,依次将每个英文单词用对应的中文含义来替换。对于每个英文单词,软件会先在内存中查找这个单词的中文含义,如果内存中有,软件就会用它进行翻译;如果内存中没有,软件就会在外存中的词典内查找,查出单词的中文含义然后翻译,并将这个单词和译义放入内存,以备后续的查找和翻译。

假设内存中有 M 个单元,每单元能存放一个单词和译义。每当软件将一个新单词存入内存前,如果当前内存中已存入的单词数不超过 M−1,软件会将新单词存入一个未使用的内存单元;若内存中已存入 M 个单词,软件会清空最早进入内存的那个单词,腾出单元来,存放新单词。

假设一篇英语文章的长度为 N 个单词。给定这篇待译文章,翻译软件需要去外存查找多少次词典?假设在翻译开始前,内存中没有任何单词。

输入格式

共 2 行。每行中两个数之间用一个空格隔开。

第一行为两个正整数 M,N,代表内存容量和文章的长度。

第二行为 N 个非负整数,按照文章的顺序,每个数(大小不超过 1000)代表一个英文单词。文章中两个单词是同一个单词,当且仅当它们对应的非负整数相同。

输出格式

一个整数,为软件需要查词典的次数。

输入输出样例

输入 #1复制

3 7
1 2 1 5 4 4 1

输出 #1复制

5

说明/提示

样例解释

整个查字典过程如下:每行表示一个单词的翻译,冒号前为本次翻译后的内存状况:

  1. 1:查找单词 1 并调入内存。
  2. 1 2:查找单词 2 并调入内存。
  3. 1 2:在内存中找到单词 1。
  4. 1 2 5:查找单词 5 并调入内存。
  5. 2 5 4:查找单词 4 并调入内存替代单词 1。
  6. 2 5 4:在内存中找到单词 4。
  7. 5 4 1:查找单词 1 并调入内存替代单词 2。

共计查了 55 次词典。

数据范围

  • 对于 10% 的数据有M=1,N≤5;
  • 对于100% 的数据有 1≤M≤100,1≤N≤1000。
#include<bits/stdc++.h>
using namespace std;
int n,m,t;
int sg[1010]={0},num=0;//sg用于标记,num用于计数
queue<int> q;
int main()
{cin>>m>>n;for(int i=1;i<=n;i++){cin>>t;if(sg[t]==1){//如果队列中有这个元素,则下一个continue;}if(q.size()<m){//如果队列中元素不足m则继续pushq.push(t);sg[t]=1;num++;//计数加一}else{//队列中元素如果大于msg[q.front()]=0;//将队头元素的标记重置为0q.pop();//出队q.push(t);//再次将新元素入队sg[t]=1;//标记新元素num++;}}cout<<num;return 0;
}

这篇关于机器翻译的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/879254

相关文章

NLP-机器翻译:数据集介绍及预处理

1.8 million的文章超过650k手动编写的文章摘要超过1.5 million 的人工标记的文章,标记包括 人物,地点,组织,标题,主题超过275k使用算法生成标记的文章用于解析xml文件的java工具 语料库中有650k个手动编写的文章摘要,这个可以用于文档摘要生成算法的评估, 参考资料: New York Times Corpus 介绍 (未完待续) The New Yo

【王树森】RNN模型与NLP应用(7/9):机器翻译与Seq2Seq模型(个人向笔记)

Machine Translation Data 做机器学习任务的第一步都是处理数据,我们首先需要准备机器翻译的数据。由于我们是学习用途,因此拿一个小规模数据集即可:http://www.manythings.org/anki/下面的数据集中:一个英语句子对应多个德语句子,如果翻译的时候能命中其中的一个则算作完全正确。 1. Preprocessing 将大写全部转化为小写去掉标点符号

机器翻译 -- Neural Machine Translation

本文是基于吴恩达老师《深度学习》第五课第三周练习题所做。 0.背景介绍  为探究机器翻译的奥秘,我们首先从日期翻译着手。本程序所需的第三方库、数据集及辅助程序,可点击此处下载。 from keras.layers import Bidirectional, Concatenate, Permute, Dot, Input, LSTM, Multiplyfrom keras.layers i

机器翻译技术学习笔记

由于NL2SQL和知识图谱问答任务的需要,学习了一段时间翻译模型,把经验记载在这篇文章里面。 1、数据越多效果越好? 不一定 语料质量,领域属性都会对效果有影响 基数小提升显著、基数大提升微弱甚至降低 2、如何构建词表: 3、模型选择: 并行计算能力弱,信息抽取能力弱。 gated cnn position embedding 引入卷积,提高并行化能力 非线性计算

跨语言翻译的突破:使用强化学习与人类反馈提升机器翻译质量

在人工智能领域,知识问答系统的性能优化一直是研究者们关注的焦点。现有的系统通常面临知识更新频繁、检索成本高、以及用户提问多样性等挑战。尽管采用了如RAG(Retrieval-Augmented Generation)和微调等技术,但它们各有利弊,例如RAG在知识内容多的情况下检索成本高,而微调则面临算力成本高和训练效果不稳定的问题。 为了克服这些难题,研究者们开始探索使用强化学习与人类反馈(RL

大神出新品,吴恩达开源机器翻译智能体项目

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。 针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。 合集: 《大模型面试宝典》(2024版) 正式发布! 持续火爆!《AIGC 面试宝典》已圈粉无数! 前段时间,随着 GPT-4o、Sora 的陆续问世,多模态模型在生

AI机器翻译数据预处理步骤

之前在进行机器翻译时,一般除了与句子长度做了长度限制外,几乎没有做任何额外的操作,直接暴力的使用BPE算法对语料进行预处理。接触的都是BPE子词级别的,我们都知道,bpe算法的强大性,30000个子词几乎可以表示词典中所有的单词。但是如果我们要用词级别的翻译,那词典太大了,在机器翻译中词典受限的情况下,很多词就会变为未登录词。为了让词典尽可能的能囊括更多的单词,必须对双语语料进行预处理操作。 关

Python调用各大机器翻译其中阿里云、微软、ChatGPT

一、Python调用阿里云机器翻译api 阿里云机器翻译api的调用比较繁琐,申请过程也较复杂,其翻译质量倒时一般,大家可以有选择地使用以下代码: from alibabacloud_alimt20181012.client import Client as alimt20181012Clientfrom alibabacloud_tea_openapi import models as o

机器翻译常用指标BLEU

诸神缄默不语-个人CSDN博文目录 文章目录 什么是BLEU指标?BLEU指标的原理BLEU的计算公式BLEU指标的Python实现 什么是BLEU指标? BLEU(Bilingual Evaluation Understudy)指标是一种评估机器翻译质量的方法,广泛用于自然语言处理领域,特别是在机器翻译任务中。它通过计算机器翻译输出与人工翻译参考之间的相似度来评估翻译质量。B

技术界与翻译界的交锋:机器翻译离我们还有多远? | 清华AI Time

来源:大数据文摘 本文约4350字,建议阅读7分钟。 机器翻译对于人工翻译而言是威胁还是可利用工具?在多大程度上机器翻译又能帮助普通用户呢? 作为自然语言处理中一项非常重要的应用,现代意义上的机器翻译概念从上世纪40年代提出至今,经过了几代革新,现已初步实现了多场景的落地和应用。近几年随着机器翻译质量的提高,机器翻译代替人工翻译的声势逐