SpecSW

Version 16, last updated by leonardofl at 2010-06-19

Módulos do Software de Tradução

Esta seção descreve os componentes que integram o software de tradução, que estão esquematizados na figura:

Analisador morfológico

Este módulo deve gerar uma sequência de tokens que possam ser operados pelo analisador sintático. A informação mais importante que o analisador morfológico deve retornar são as classes gramaticais das palavras da sentença da entrada.

O analisador morfológico utilizará o JSpell, analisador morfológico desenvolvido por pesquisadores de Portugal. Com ele, além da classe gramatical, também são retornados a forma de dicionário, o gênero, o grau, a classificação de verbo e outros.

A alimentação dos dados no JSpell é feita através de um arquivo local em formato binário (port.hash). Atualmente este arquivo contém as classificações das palavras com a grafia de Portugual. Portanto, uma tarefa a se realizar é adaptação deste arquivo para o português do Brasil.

A estrutura do token é descrita precisamente na seção de modelo de dados.

Parser sintático

O parser sintático recebe uma sequência de tokens e primeiramente diz se esta sequência é gramaticalmente correta, ou seja, se pertence a língua portuguesa.

Esta operação modela a língua Portuguesa como uma linguagem livre de contexto e baseia-se em uma gramática livre de contexto formulado com base no trabalho Moderna Gramática Brasileira (LUFT).

Sendo a frase gramaticalmente aceita, o parser sintático deve retornar a árvore sintática da frase para que possa ser operada na próxima fase.

Este é o ponto de maior limitação do trabalho, ao querer tratar a língua portuguesa como uma linguagem livre de contexto. Para isso define-se um escopo de frases formais e bem comportadas. Além disso, há de se dar algum tratamento para a ambiguidade sintática. Uma alternativa para ampliar esse escopo poderia ser o uso da adaptatividade, através de uma flexibilização das regras.

Nesta etapa já se elimina algumas ambiguidades do analisador morfológico (ex: casa pode ser substantivo ou verbo (casar)), uma vez que nem todas as combinações lineares de classes gramaticais podem gerar árvores válidas; mas ainda assim poderemos ter mais de uma árvore válida! (sentença sintaticamente ambígua). Uma grande questão ainda não respondida neste ponto é como definir a árvore sintática a ser utilizada. (Uma possibilidade seria um sistema interativo em que o usuário pudesse checar ambos resultados).

Para que a atuação deste componente possa ser melhorada, as regras da gramática livre de contexto deverão ser passíveis de edição por especialistas linguistas.

Transformador sintático

Opera sobre a árvore sintática obtida, executando transformações definidas como na gramática transformativa a fim de se obter uma frase em português simplificado, que seria a forma de escrita com palavras em português, mas que mais se aproxime da sintaxe da LIBRAS.

O transformador sintático é baseado em regras gramaticais da LIBRAS porém desconhece como as palavras podem ser representadas por sinais (morfologia da LIBRAS). Nesta etapa envolvem-se os seguintes problemas:

  • remoção de artigos e preposições desnecessários
  • posicionamento dos advérbios de tempo no início das frases
  • colocação do adjetivo após o substantivo qualificado
  • detectar comparação (igualdade ou desigualdade), e fazer as trocas adequadas
  • posicionamento dos pronomes QUEM, ONDE, QUE
  • posicionamento de QUAL, COMO e PARA-QUE (início) e de POR-QUE (fim)
  • alteração da ordem da sentença (SVO, SOV, OSV) conforme verbo presente

Dicionário

Tendo a frase em português simplificado, realiza-se uma busca um para um na base de dados online com o dicionário de LIBRAS. Assim já se tem uma sequência base de sinais.

A sequência base de sinais pode apresentar ambiguidades, ex: palavra SENTAR pode retornar dois sinais (SENTAR e SENTAR-EM-RODA). A sequência base guardará as possibilidades de cada posição.

Transformador morfológico

Após obter a sequência base de sinais, ainda pode haver mais alterações sobre a morfologia dos sinais. Nesta etapa inclui-se análise de contexto e desambiguação. Entre tais alterações se encontram:

  • procura do sinal mais adequado para uma posição ambígua com base na análise de contexto
  • advérbio de modo ou um intensificador pode alterar parâmetros de sinal circundante
  • aspecto tempo pode determinar frequência de movimento
  • o ponto de articulação pode ser uma marca de concordância verbal com o advérbio de lugar
  • configuração de mão pode se alterar conforme objeto for pessoa, animal ou coisa
  • a orientação pode ser uma concordância número-pessoal
  • algumas palavras mudam de sinal conforme o contexto (análise de literais ou características de inerência circundantes)
  • negação formada por movimento contrário ou por movimento da cabeça
  • detectar variações (de número) dos pronomes pessoais
  • variação do pronome QUEM conforme o contexto
  • adicionar expressão interrogativa / exclamativa conforme acentuação detectada (?, !)
  • desambiguação de QUANDO (três sinais possíveis)
  • desambiguação de DIA (dois sinais possíveis)
  • desambiguação de numerais

Por ora não há definição formal de uma estrutura de dados que seja capaz de dizer ao transformador morfológico o que fazer. Portanto, embora possa se dizer que este componente é construído com base nos conhecimentos da gramática de LIBRAS, por enquanto não se pode separar este conhecimento, que é típico do especialista linguista, da implementação da ferramenta (feita pelo desenvolvedor).

Ao fim desta etapa, deve-se construir um arquivo XML com a especificação da sequência de sinais resultante da tradução.

Gerador de animações

O arquivo XML gerado na etapa anterior pode ser utilizado por vários tipos de ferramentas, como um visualizador por signwriting ou mesmo por texto plano que descreva os sinais, mas neste trabalho a solução adotada será uma saída com animação por computação gráfica, em que um avatar virtual realiza os movimentos.

Este componente já tem seu desenvolvimento adiantado por estar sendo trabalhado na disciplina PCS-2520 (Computação Gráfica) através de um projeto feito em parceria com uma aluna do design.

Dessa forma já temos uma aplicação que recebe o XML e é capaz de representar as seguintes características dos sinais: configuração de mão, orientação e plano.

O trabalho tem se desenvolvido com o uso do Processing, uma API Java para computação gráfica, construída sobre o JOGL (OpenGL para Java).

Cada configuração de mão possui um modelo que é salvo no formato obj, que trata-se de um formato texto amplamente suportado por ferramentas de computação gráfica. Estes modelos são produzidos pela aluna do design no software de modelagem 3DStudio.

O grande problema deste trabalho é que a alteração de configuração de mão se dá por interpolação linear de casa um dos vértices da mão, o que gera deformações não aceitáveis para uma animação. Isto poderia ser evitado se conseguíssemos manipular a armadura (bones) do modelo pelo Processing, mas até agora não conseguimos descobrir uma forma de fazer isso (até porque o formato obj não suporta bones).

Ainda há vários caminhos que podem ser seguidos, como:

  • mais pesquisa para que possa manipular a armadura diretamente no Processing (assim espera-se que a malha que constitui a mão em si acompanhe o movimento da armadura sem tais deformações);
  • transição abrupta de configuração de mão (sem qualquer interpolação);
  • mudança para outra plataforma que trabalhe mais facilmente com bones.

Ferramenta colaborativa de construção de vocábulos

A ferramenta colaborativa trata-se de uma aplicação web voltada para a criação de verbetes no dicionário Português -> LIBRAS de forma colaborativa, conceitualmente similar à Wikipedia.

Esta ferramenta será muito importante para o projeto na medida em que permitirá a colaboração de outras pessoas para o preenchimento de um vocabulário de tradução, que dificilmente atingiria um tamanho significativo se dependesse apenas da equipe de desenvolvimento.

Esta ferramenta também pode subsistir como um importante projeto independente, uma vez que o banco de dados por ela gerado pode fornecer dados pra outras aplicações de LIBRAS.


Comments are disabled for this space. In order to enable comments, Messages tool must be added to project.

You can add Messages tool from Tools section on the Admin tab.