5 min read
24/05/2023
O que são redes neurais de tradução automática?
O processo de tradução de uma língua para outra não é um processo simples. Os profissionais de tradução e interpretação necessitam de anos de estudo para dominar uma língua e ser capazes de realizar traduções simultâneas. Criar um sistema computacional que faça este processo de forma automática é um desafio, uma vez que cada língua depende não só do seu vocabulário, mas também de normas e regras a serem processadas. Mas as redes neurais de tradução automática parecem ter descoberto a chave para podermos traduzir estruturas de forma inteligente para além de um grupo de palavras, imitando as estruturas sintáticas e gramaticais entre línguas não relacionadas.
Evolução da tradução automática
A tradução automática é um campo computacional que investiga o uso de ferramentas de software para traduzir texto ou linguagem falada. No início, as traduções baseavam-se na substituição de palavras atômicas de uma língua por outra, com pouca noção do contexto. São traduções mecânicas, "palavra por palavra", que, na maioria das vezes, não se adequavam ao contexto. Isso resultava em sistemas de tradução automática que só eram úteis para traduzir vocabulário ou entre línguas da mesma família e com estruturas semelhantes, mas nunca como uma forma confiável de interpretação para frases ou textos medianamente complexos, nos quais diferentes tipos de palavras são combinados: substantivos, adjetivos, advérbios, preposições, verbos, etc.
Com a evolução dos programas, surgiram novas ferramentas de software que permitem escolher uma profissão ou um sector específico sobre o qual se deseja realizar uma tradução. É possível delimitar melhor os aspectos de substituição de termos, uma vez que cada sector costuma utilizar determinadas palavras de uma forma concreta ou aplicada a processos específicos: palavras polissêmicas, expressões, nomenclaturas, etc. Seria como uma tradução de um determinado jargão https://www.significados.com.br/jargao/.
Pode interessar-lhe ler: Tudo o que você precisa saber sobre tradução automática
Um salto qualitativo no campo da tradução
Atualmente, num mundo cada vez mais globalizado, a sociedade mostra um grande interesse no desenvolvimento de sistemas de tradução automática. O valor de poder contar com ferramentas ou dispositivos que permitam traduções confiáveis de frases e expressões é vital para que os cidadãos possam viajar e se comunicar fluentemente. Para realizar esta tarefa, os avanços mais recentes baseiam-se na utilização de redes neurais como a melhor forma de automatizar qualquer tipo de processo que requeira aprendizagem. Estas redes fazem parte do campo da inteligência artificial e parecem oferecer resultados muito melhores do que a técnica dominante até recentemente, a tradução automática estatística.
No campo linguístico, as redes neurais de tradução automática estão oferecendo resultados verdadeiramente surpreendentes.
Computação e redes neurais
Em que consiste este modelo? Pode um computador ou um sistema informático reproduzir o processo de aprendizagem?
O conceito de rede neural não é realmente complicado e consiste em imitar o funcionamento das redes neurais de organismos vivos. No entanto, a criação dessa inteligência artificial, os pesos e a preponderância de cada um dos nós e seus relacionamentos são. Trata-se de um conjunto de nexos que trabalham em conjunto, sem que nenhum deles tenha uma tarefa específica atribuída a eles. Para tirar partido da forma como as redes neurais funcionam, deve-se levar em conta que o processo consiste em estabelecer uma série de parâmetros que, combinados, são capazes de produzir uma conclusão ou um resultado correto. Os programas devem ser capazes de aprender profundamente (deep learning) e ajustar o seu funcionamento ao longo do tempo.
O problema principal não é analisar os parâmetros que se desejam relacionar, mas como estabelecer a combinação entre os diferentes parâmetros no momento de originar uma resposta.
Biologia e computação: o germe das redes neurais
Se uma pessoa fosse convidada a calcular a raiz quadrada de 7 com várias decimais de precisão e sem a ajuda nem mesmo de um papel e uma caneta, seria impossível para qualquer um. Um computador pode fazer este tipo de cálculo matemático num instante e sem errar. É uma tarefa extremamente simples no campo da computação. Até uma simples calculadora pode fazer isso.
Mudando de perspectiva e colocando uma tarefa humana como ponto de partida, existem ações que qualquer pessoa pode realizar. Lançar uma moeda no ar ou reconhecer a diferença entre uma árvore e uma planta é um processo extremamente simples para qualquer humano (independentemente de certas limitações físicas ou cognitivas). No entanto, para uma máquina, qualquer um desses aspectos é realmente complexo. Deve aprender a reconhecer padrões, características, diferenças e chegar a uma conclusão.
Um computador, ao contrário de um ser vivo (não apenas os humanos), precisa realizar uma imensa quantidade de cálculos e tempo para processar parâmetros simples do ponto de vista biológico, como:
- Reconhecimento de padrões.
- Classificação de formas e objetos.
- Controle automático de aparelhos ou dispositivos.
Por exemplo, os melhores engenheiros dedicados ao desenvolvimento de radares e sistemas de sonar sentem verdadeira inveja de um simples morcego. A capacidade deste mamífero de determinar a velocidade relativa de uma presa, o seu tamanho e a posição dos obstáculos à sua volta é um verdadeiro milagre do ponto de vista computacional.
Este tipo de questões é a origem das redes neurais e da aprendizagem profunda. Este campo estuda a forma de relacionar conceitos e conseguir que as máquinas possam realizar processos de associação com a mesma rapidez que os seres vivos. Para isso, é necessário investigar quais as vantagens que o cérebro tem ao associar conceitos que os computadores encontram tão difíceis de identificar.
Curiosamente, as redes neurais são muito mais simples e lentas do que uma CPU. Além disso, não são totalmente confiáveis, já que nos processos cognitivos, muitas vezes, existem pontos de erro. Este facto é muito bem visto ao longo dos quebra-cabeças visuais que podem ser encontrados por toda a Internet. Sem ir mais longe, este "erro cognitivo" ou esta falha perceptiva pode ser exemplificada quando se observa um truque de magia. Até o mais simples aproveita os defeitos da capacidade visual para fazer crer que um objecto pode aparecer e desaparecer.
Tipos de redes neurais
1- Rede Neural Recurrente
Consiste nas relações de entrada e saída de conceitos. Baseia-se num algoritmo, que consiste numa entrada X e uma saída Y. Estas redes só podem aprender relações estáticas, nas quais se procura estabelecer uma ordem de previsão (entrada-saída), o que resulta em uma escala, uma "previsão de passo". A variável tempo precisa ser incorporada pela rede e, para isso, são aplicados dois parâmetros:
- Atraso (Delay).
-
Recorrência (Recurrence).
2- Rede Neuronal Convolucional
Estas redes trabalham modelado consecutivamente pequenas porções de informação de uma forma semelhante ao processo de percepção visual dos seres humanos.
A informação recebida é combinada em camadas, de modo que, na primeira camada, são detectadas as bordas e os seus padrões; e, nas camadas posteriores, são divididas as formas mais simples e aplicados os padrões relacionados com a posição, iluminação, etc. O resultado final ou "previsão" obtido é uma soma ponderada de toda a informação tratada e como foi processada.
Mais de meio século de investigação
As redes neurais não são um campo novo, pois seus primórdios remontam aos anos 40 e 50, com a infelicidade de não terem obtido bons resultados, devido à quantidade de recursos de computação necessários para treinar e executar uma rede com bons resultados. Este era o cenário há mais de meio século. No entanto, hoje em dia, existem sistemas de processamento de dados capazes de analisar milhões de variáveis ao mesmo tempo e sem ressentimentos.
Nos últimos anos, foram alcançados grandes avanços neste campo graças à melhoria dos sistemas informáticos para este tipo de processos.
Tradução simultânea 2.0
Ainda há um longo caminho a percorrer no desenvolvimento das redes neurais, mas já existem campos em que foram feitos avanços significativos. É o caso da tradução automática estatística. Conhecida em inglês como SMT (Statistical Machine Translation), consiste em propor a tradução com base em modelos estatísticos que estabelecem relações entre grupos de palavras. Quando um programa estatístico interpreta uma frase, ele terá em conta as palavras individuais, grupos delas, e graças ao modelo de linguagem aprendido, as diferentes partes da frase, tentando reconstruir as estruturas gramaticais em cada idioma. Mas a tradução automática estatística chegou ao seu limite quando tentou traduzir entre línguas não relacionadas como as línguas europeias em geral e o japonês ou com línguas morfologicamente ricas porque a casuística das declinações baixava as estatísticas e a segurança do sistema ou, simplesmente, não se encontrava a palavra.
No caso da rede neuronal, as principais redes são:
- Tensor Flow
Tensor Flow é um recurso de software livre. Uma biblioteca para computação numérica que, através de fórmulas matemáticas de arquitetura flexível, permite criar processos de computação: em uma ou mais CPUs ou GPUs, servidores ou dispositivos móveis, com uma API simples. Este programa foi desenvolvido pela equipa da Google que trabalha na digitalização de processos cerebrais e na inteligência artificial. Tensor Flow pode ser aplicado em muitos campos diferentes, mas aqueles que trabalham no campo da tradução automática estão sabendo aproveitar seu benefício ao máximo.
- Open NMT
Open NMT é uma fonte aberta que se baseia em sistemas de tradução neural através de ferramentas matemáticas. Muitas empresas interessadas nas possibilidades que pode oferecer estão a colaborar e a investir no seu desenvolvimento.
A fonte é pensada para um uso simples e facilmente extensível a diferentes tipos de aplicações e dispositivos, mantendo uma alta eficiência e confiabilidade nas traduções que oferece. As vantagens e características que proporciona são:
-
Interface de grande versatilidade, que requer apenas uma fonte e arquivos de destino.
-
Optimização de velocidade e memória para a aprendizagem profunda de GPUs.
-
Um modelo de tradutor C++ modificável.
-
A última pesquisa em modelos de tradução.
-
Extensões para gerar sequências em tarefas de resumo.
-
Uma comunidade muito ativa de desenvolvedores, instituições e empresas.