Skip to main content

VLibras (LAVID-UFPB) translation module for translating brazilian portuguese to LIBRAS.

Project description

VLibras Translate

Version Platform License VLibras


O VLibras é um projeto desenvolvido no Laboratório de Aplicações de Vídeo Digital (LAVID) para a tradução de Português Brasileiro (PT-BR) para Libras. O pacote VLibras Translate é parte da suíte VLibras e disponibiliza um conjunto de ferramentas de pré-processamento de texto para tradução por deep learning e um módulo de tradução PT-BR/Libras.

Sumário

Pré-requisitos

  • Java 8 (com compilador)
  • Hunspell (sudo apt-get install libhunspell-dev)
  • Cython (pip install Cython)
  • Python 3

Instalação

  • pip3 install vlibras-translate

Utilização

O VLibras Translate possui duas interfaces: o seu módulo python (vlibras_translate) e suas linhas de comando (vlibras-translate e vlibras-translate-file). Para utilizar a interface de linha de comando, o alias 'python' deve ser uma versão de python 3 com o vlibras_translate instalado. Para definir o alias é recomendado um dos seguintes modos:

  • Adicionar ao final do arquivo ~/.bashrc a linha alias python='python3'. Em seguida, fechar e abrir o terminal ou executar o comando source ~/.bashrc.
  • Utilização de ambiente virtual para python 3 como o conda;

Tradução PTBR-Libras:

Tradução de Texto

Módulo Python

import vlibras_translate
tradutor = vlibras_translate.translation.Translation()
glosa = tradutor.rule_translation('Maria comprou por três parcelas de 35,50 reais naquela loja.')
print(glosa)

Saída

MARIA COMPRAR POR 3 PARCELA 35 VÍRGULA 50 REAL AQUELE LOJA [PONTO]

Linha de comando

vlibras-translate -r 'Maria comprou por três parcelas de 35,50 reais naquela loja.'

Saída

GLOSA (rule):
MARIA COMPRAR POR 3 PARCELA 35 VÍRGULA 50 REAL AQUELE LOJA [PONTO]

Pré-Processamento

As ferramentas de pré-processamento de texto do VLibras Translate são destinadas ao desenvolvimento de modelos neurais de tradução (deep learning). São disponibilizadas as seguintes funcionalidades:

  • Análise morfossintática utilizando o Aelius
  • Remoção de símbolos (e.g. '-@#') com exceção de hifens entre palavras e pontos decimais (vírgula ou ponto, mas não os separadores de milhares). Por exemplo, o pré-processamento de '#123 @ -34 1.234,56 guarda-roupa' resulta em '123 34 1234 , 56 guarda-roupa'
  • Reconhecimento de nomes próprios
  • Reconhecimento de erros ortográficos
  • Lematização utilizando o cogroo4py
  • Obtenção de glosas PT-BR/Libras
  • Substituição de nomes, números e erros ortográficos pelos símbolos ", ' e # respectivamente. Esta função é apenas para arquivos de treino.

Outra funcionalidade oferecida por esse pacote é o pré-processamento de textos em PT-BR para o desenvolvimento de modelos de deep learning para tradução de PT-BR para Libras. Para isso foram implementadas dois pipelines de processamento: um para arquivos de treino e outro para arquivos de teste (que serão traduzidos pelo modelo já treinado). As seções a seguir contêm exemplos para a processamento de textos de treino, textos de teste, arquivos de treino e arquivos de teste respectivamente.

Texto de treino

Módulo Python

import vlibras_translate
tradutor = vlibras_translate.translation.Translation()
ptbr_treino, glosa_treino = tradutor.preprocess_train_files('Maria comprou por três parcelas de 35,50 reais naquela loja hje.')
print(ptbr_treino)
print(glosa_treino)

Saída

" comprou por ' parcelas de ' , ' reais naquela loja # .
" COMPRAR POR ' PARCELA ' VÍRGULA ' REAL AQUELE LOJA # [PONTO]

Linha de comando

vlibras-translate -t 'Maria comprou por três parcelas de 35,50 reais naquela loja hje.'

Saída

PT-BR (treino):
" comprou por ' parcelas de ' , ' reais naquela loja # .

GLOSA (treino):
" COMPRAR POR ' PARCELA ' VÍRGULA ' REAL AQUELE LOJA # [PONTO]

Texto de teste

Módulo Python

import vlibras_translate
tradutor = vlibras_translate.translation.Translation()
ptbr_teste = tradutor.preprocess_pt('Maria comprou por três parcelas de 35,50 reais naquela loja hje.')
print(ptbr_teste)

Saída

maria comprou por 3 parcelas de 35 , 50 reais naquela loja hje .

Linha de comando

vlibras-translate -p 'Maria comprou por três parcelas de 35,50 reais naquela loja hje.'

Saída

PT-BR (teste):
maria comprou por 3 parcelas de 35 , 50 reais naquela loja hje .

Log

1.1.10

  • Correção de bugs envolvendo números e o processamento de glosas. Suporte para pré-processamento sem BPE

1.1.8

  • Correção de bugs

1.1.5

  • Correção de lemas (e.g. "posso" -> "pospoder"; "indo" -> "inir"), whitelist de mascaramento para lugares e pessoas famosas e correção para bug que removia acentos no pós-processamento.

1.1.4

  • Números em cardinal, ajustes em verbos direcionais

1.1.3

  • Correção no tratamento de sinônimos durante tradução com deep learning

1.1.2

  • Alteração da interface Python para tradução com deep learning

1.1.1

  • Melhora de performance

1.1.0

  • Suporte para Docker Kubernetes
  • Adaptações para novas sintaxes utilizadas nos corpora (LAVID apenas)
  • Novos métodos para corpora Glosa-Regra/Glosa-Intérprete

1.0.10

  • Fix para frases contendo apenas caracteres que não são do conjunto latin-1

1.0.9

  • Fix para compatibilidade com Python 3.5

1.0.8

  • Fix para caracteres que não são do conjunto latin-1

1.0.7

  • Fix para uso conjunto de processameto de arquivos de treino e tradução por regra;
  • Fix para checagem de ortografia de palavras com caracteres fora do padrão latin-1

1.0.6

  • Novos sinônimos

Licença

Este projeto está sob a licença LGPLv3 - veja o arquivo LICENSE para mais detalhes.

Sobre o VLibras Translate

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vlibras-translate-1.1.10.tar.gz (23.5 MB view hashes)

Uploaded Source

Built Distribution

vlibras_translate-1.1.10-py3-none-any.whl (23.6 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page