Como preparar um conjunto de dados francês para inglês para tradução automática

Como preparar um conjunto de dados francês para inglês para tradução automática

A tradução automática é a tarefa desafiadora de converter texto de um idioma de origem em texto coerente e correspondente em um idioma de destino.

Os sistemas neurais de tradução automática, como redes neurais recorrentes de codificador-decodificador, estão alcançando resultados de última geração para tradução automática com um único sistema ponta a ponta treinado diretamente no idioma de origem e de destino.

Conjuntos de dados padrão são necessários para desenvolver, explorar e familiarizar-se com como desenvolver sistemas de tradução automática neural.

Neste tutorial, você descobrirá o conjunto de dados de tradução automática padrão Europarl e como preparar os dados para modelagem.

Depois de concluir este tutorial, você saberá:

  • O conjunto de dados Europarl incluía os trabalhos do Parlamento Europeu numa série de 11 línguas.
  • Como carregar e limpar as transcrições paralelas em francês e inglês prontas para modelagem em um sistema de tradução automática neural.
  • Como reduzir o tamanho do vocabulário de dados em francês e inglês para reduzir a complexidade da tarefa de tradução.

Comece seu projeto com meu novo livro Deep Learning for Natural Language Processing, incluindo tutoriais passo a passo e a Código-fonte Python arquivos para todos os exemplos.

Vamos começar.

Como preparar um conjunto de dados francês para inglês para tradução automática

Como preparar um conjunto de dados francês para inglês para tradução automática
Foto de Giuseppe Milo, alguns direitos reservados.

Visão geral do tutorial

Este tutorial é dividido em 5 partes; eles estão:

  1. Conjunto de dados de tradução automática da Europarl
  2. Baixe o conjunto de dados francês-inglês
  3. Carregar conjunto de dados
  4. Limpar conjunto de dados
  5. Reduzir vocabulário

Ambiente Python

Este tutorial presume que você tenha um ambiente Python SciPy instalado com o Python 3 instalado.

O tutorial também pressupõe que você tenha o scikit-learn, Pandas, NumPy e Matplotlib instalados.

Se precisar de ajuda com seu ambiente, veja esta postagem:

Precisa de ajuda com Deep Learning for Text Data?

Faça meu curso intensivo de e-mail gratuito de 7 dias agora (com código).

Clique para se inscrever e também obter uma versão gratuita do Ebook em PDF do curso.

Comece Seu Crash-Course GRÁTIS Agora

Conjunto de dados de tradução automática da Europarl

O Europarl é um conjunto de dados padrão usado para tradução automática estatística e, mais recentemente, tradução automática neural.

É composto pelos trabalhos do Parlamento Europeu, daí o nome do conjunto de dados como a contração Europarl.

As actas são transcrições de oradores do Parlamento Europeu, traduzidas para 11 línguas diferentes.

É uma coleção dos trabalhos do Parlamento Europeu, que datam de 1996. No total, o corpus é composto por cerca de 30 milhões de palavras para cada uma das 11 línguas oficiais da União Europeia

- Europarl: A Parallel Corpus for Statistical Machine Translation, 2005.

Os dados brutos estão disponíveis no site do Parlamento Europeu em formato HTML.

A criação do conjunto de dados foi liderada por Philipp Koehn, autor do livro "Statistical Machine Translation".

O conjunto de dados foi disponibilizado gratuitamente para pesquisadores no site “European Parliament Proceedings Parallel Corpus 1996-2011” e muitas vezes aparece como parte de desafios de tradução automática, como a tarefa de Tradução Automática no Workshop de Tradução Automática Estatística de 2014.

A versão mais recente do conjunto de dados é a versão 7, lançada em 2012, composta por dados de 1996 a 2011.

Baixe o conjunto de dados francês-inglês

Vamos nos concentrar no conjunto de dados paralelo francês-inglês.

Este é um corpus preparado de frases alinhadas em francês e inglês gravadas entre 1996 e 2011.

O conjunto de dados possui as seguintes estatísticas:

  • Frases: 2.007.723
  • Palavras francesas: 51.388.643
  • Palavras em inglês: 50,196,035

Você pode baixar o conjunto de dados aqui:

Depois de baixado, você deve ter o arquivo “fr-en.tgz”Em seu diretório de trabalho atual.

Você pode descompactar este arquivo usando o comando tar, da seguinte maneira:

Agora você terá dois arquivos, da seguinte maneira:

  • Inglês: europarl-v7.fr-en.en (288M)
  • Francês: europarl-v7.fr-en.fr (331M)

Abaixo está uma amostra do arquivo em inglês.

Abaixo está uma amostra do arquivo francês.

Carregar conjunto de dados

Vamos começar carregando os arquivos de dados.

Podemos carregar cada arquivo como uma string. Como os arquivos contêm caracteres Unicode, devemos especificar uma codificação ao carregar os arquivos como texto. Neste caso, usaremos UTF-8 que manipulará facilmente os caracteres Unicode em ambos os arquivos.

A função abaixo, chamada load_doc (), carregará um determinado arquivo e o retornará como um blob de texto.

Em seguida, podemos dividir o arquivo em frases.

Geralmente, um enunciado é armazenado em cada linha. Podemos tratá-los como frases e dividir o arquivo por caracteres de nova linha. A função to_sentences () abaixo irá dividir um documento carregado.

Ao preparar nosso modelo posteriormente, precisaremos saber a extensão das sentenças no conjunto de dados. Podemos escrever uma função curta para calcular as frases mais curtas e mais longas.

Podemos unir tudo isso para carregar e resumir os arquivos de dados em inglês e francês. O exemplo completo está listado abaixo.

A execução do exemplo resume o número de linhas ou sentenças em cada arquivo e o comprimento das linhas mais longas e mais curtas em cada arquivo.

Você também pode estar interessado em