1. Introdução

Transcrição

1. Introdução
TSL - Uma linguagem para autoria de tradutores
Abstract. The objective of this article is to present the TSL (Translator
Specification Language), a specification language for traslation virtual
systems for multiple languages. The specification of these translating
programs is made with facts and rules that register the knowledge on the
translation among languages. The list of these facts composes a translation
memory with the sentencial forms equivalents in the involved languages. A
sentencial form of a fact is constituted of elements terminals of a language. A
TSL rule contains a syntactic pattern to be looked in the text source and an
associated action of translation. A syntactic pattern of a rule is constituted of
terminal elements and non-terminal elements of a language. Eventually this
action associated with a rule can remotely use available functions in web
(webservices). The functioning of TSL interpreter is also presented.
Resumo. O objetivo deste artigo é apresentar a TSL (Translator Specification
Language), uma linguagem de especificação de sistemas virtuais de tradução
para múltiplas linguagens. A especificação desses programas tradutores é
feita com fatos e regras que registram o conhecimento sobre a tradução entre
linguagens. A lista desses fatos compõe uma memória de tradução com as
formas sentenciais equivalentes nas linguagens envolvidas. Uma forma
sentencial de um fato é constituída de elementos terminais de uma linguagem.
Uma regra TSL contém um padrão sintático a ser procurado no texto fonte e
uma ação de tradução associada. Um padrão sintático de uma regra é
constituído de elementos terminais e não terminais de uma linguagem.
Eventualmente essa ação associada a uma regra pode usar funções
disponíveis remotamente na web (webservices). Apresenta-se também o
funcionamento do interpretador TSL.
1. Introdução
Durante as pesquisas realizadas pelos autores na área de tradução automática, semiautomática e cooperativa, surgiu a necessidade de ser criada uma linguagem de
especificação de tradutores para representar as entradas utilizadas nas memórias de
tradução e as regras utilizadas na tradução por sintaxe.
Existem alguns formatos de especificação parcial de tradutores, como o TMX
[SIMÕES 2004], usado para representar memórias de tradução, porém não foi
encontrado nenhum que atendesse a todas as necessidades de uma linguagem de
especificação de tradutores. Assim sendo, foi criada uma nova linguagem para a
especificação de sistemas de tradução. Essa linguagem torna possível a especificação
completa do processo de tradução de um texto de entrada para uma linguagem diferente
da original.
Quando a tradução de um texto exigir métodos de mapeamento especiais, a
linguagem de especificação de tradutores (TSL – Translator Specification Language)
permite o uso de métodos disponíveis na web, chamados de webservices.
2. Tradução
A tradução é o ato de mapear um texto de uma linguagem para outra.
Computacionalmente existem diversos métodos que se aplicam parcialmente à tarefa de
tradução, porém serão abordados apenas os dois métodos tratados diretamente na TSL:
memória de tradução e tradução dirigida por sintaxe.
2.1. Memória de Tradução (MT)
Um problema muito comum nos sistemas que executam tradução automática de textos
se dá quando aparecem expressões idiomáticas e termos técnicos que quando traduzidos
de forma direta tem seu sentido alterado. A técnica de memória de tradução consiste em
armazenar exemplos de tradução, ou seja, frases e expressões com as suas respectivas
traduções, para serem usados nas próximas ocorrências [BREDA 2005].
O uso da Memória de Tradução ganhou força nos anos 90, quando a demanda
por tradutores automáticos aumentou por conta do comércio internacional. Surgiram
projetos com o objetivo de durante as traduções, coletar as expressões mais usadas e
suas traduções para construir bancos de expressões para Memórias de Tradução
[GARRÃO 2001].
2.2. Tradução dirigida por sintaxe (TDS)
A tradução dirigida por sintaxe (TDS) utiliza regras gramaticais para encontrar padrões
em um texto, ao encontrar um dos padrões dispara-se uma ação de tradução.
Sendo utilizada em conjunto com dicionários, essa abordagem torna possível a
tradução integral de um texto, de forma automática. Porém, como é baseada em regras
gramaticais a TDS não é capaz de preservar a semântica de expressões idiomáticas,
termos técnicos etc. Dessa forma, é possível entender as vantagens da combinação da
tradução dirigida por sintaxe com a memória de tradução.
3. Trabalhos correlatos e tecnologias usadas
A TSL é uma linguagem criada para representar o conhecimento (regras e fatos) que
deve ser utilizado no mapeamento de textos entre linguagens diferentes.
Uma especificação TSL se concentra nas regras de produção, nos fatos utilizados
pela MT e nos serviços (webservices) usados na especificação das ações associadas às
regras. Esses serviços podem ser dicionários, executores de consultas sql etc.
Os tradutores especificados em TSL usam uma arquitetura baseada em
conhecimento [CANUTO 2000].
3.1 O formato TMX
O TMX é um formato baseado em XML criado para representar entradas de uma
memória de tradução. Uma memória de tradução no padrão definido no TMX é
composta de um cabeçalho com atributos que guardam o nome do autor, data de criação
e alguns outros, dos quais o mais importante é o atributo “srclang” que define o idioma
original da memória de tradução.
O quadro 1 apresenta uma entrada TMX, onde unidades de tradução (tu) contêm
segmentos de texto na forma de elemento “seg” dentro de um elemento “tuv”. O
elemento “tuv” é identificado obrigatoriamente pelo nome do idioma por meio do
atributo “xml:lang” [SIMÕES 2004] .
Quadro 1. Exemplo de uma entrada TMX [SIMÕES 2004]
<tu>
<tuv xml:lang=”en”> <seg>Configure window properties</seg> </tuv>
<tuv xml:lang=”pt”> <seg>Configurar propriedades da janela</seg> </tuv>
</tu>
4. TSL (Translator Specification Language)
A TSL (Translator Specification Language) é uma linguagem de especificação de
tradutores.
Uma especificação TSL é dividida em duas seções principais - HEAD
(Cabeçalho) e BODY (Corpo).
4.1 A seção HEAD
O quadro 1 apresenta o conteúdo do cabeçalho, onde ficam registradas as informações
relativas ao autor, à criação da especificação e a linguagem de conhecimento a que se
aplica a base de tradução.
Tabela 1. Campos do cabeçalho de uma especificação TSL
Atributo
Marcador
Descrição
Autor
<AUTHOR>
Nome do autor/autores da especificação TSL
Contato
<CONTACT>
Informações para contato com o autor/autores
Data
<DATE>
Data de criação ou da ultima atualização da especificação TSL
Linguagem
<DOM>
Linguagem ao qual se aplicam as regras e os fatos contidos no arquivo
Descrição da linguagem
<DESC>
Descrição da linguagem ao qual o texto de origem deve estar associado.
O objetivo do cabeçalho é informar a qual linguagem a especificação se refere e
o quanto ela é atual. Os dados relativos ao autor têm como finalidade permitir o contato
para possíveis atualizações e/ou correções.
4.2 A seção BODY
O corpo (body) de uma especificação TSL é dividido em duas seções - FACTS e
RULES - que são as seções onde ficam os registros de fatos e regras respectivamente.
4.3 A seção FACTS
Um fato TSL é uma lista de formas sentenciais equivalentes nas linguagens tratadas na
tradução especificada. No contexto dos ambientes virtuais de tradução os fatos
representam as expressões que devem ser tratadas pela memória de tradução, como
expressões idiomáticas, termos técnicos etc e as correspondentes traduções.
De modo geral, os fatos são exceções às regras, são utilizados quando é
necessário associar um determinado segmento fixo de texto, com o equivalente
segmento de texto em outra representação lingüística, a ser usado em uma tradução
direta.
A seção FACTS (fatos) é formada por uma série de registros do tipo FACT,
sendo cada registro FACT formado pelo campo ORIGIN, com um padrão a ser
procurado no texto de entrada, seguido de uma seqüência de átomos de tradução (TA:
Translation Atom).
Cada átomo de tradução representa um mapeamento do padrão descrito em
ORIGIN para uma linguagem diferente. Um átomo de tradução possuí dois atributos, o
DOM, que informa a linguagem para o qual o átomo mapeia o padrão original, e o
PATTERN que armazena uma representação do padrão original(ORIGIN) na
linguagem(LNG).
Quadro 2. Um registro FACT associado aa linguagem PORTUGUÊS
COLOQUIAL
<FACT>
<ORIGIN>Pega leve</ORIGIN>
<TA>
<LNG>PORTUGUÊS FORMAL</LNG>
<PATTERN>Tenha calma</PATTERN>
</TA>
<TA>
<LNG>INGLÊS COLOQUIAL</LNG>
<PATTERN>Take it easy</PATTERN>
</TA>
<TA>
<LNG>ESPANHOL COLOQUIAL</LNG>
<PATTERN>Coge ha conducido</PATTERN>
</TA>
</FACT>
4.4 A seção RULE
Uma regra possui uma condição e uma ação associada. A condição precisa ser satisfeita
para a ação ser executada.
A condição de uma regra normalmente é um padrão sintático a ser procurado no
texto de entrada.
A ação associada à regra pode ser uma função imediatamente acessível pelo
interpretador TSL ou uma função remota, acessível pela web – um webservice
[MENÉNDEZ 2002]. Um webservice é uma aplicação, executada em um computador
remoto, que aceita solicitações de outros sistemas através da web.
Utilizando o exemplo da regra que inverte a ordem do substantivo e adjetivo na
tradução português-inglês, é possível observar que mesmo após a inversão, as palavras
continuam em português e precisam ser substituídas por palavras do outro idioma.
Nesse caso, a ação adequada é usar um webservice de transformação de termos em
português para inglês.
A seção RULES (regras) permite a especificação das regras de um tradutor. O
quadro 3 apresenta um exemplo de especificação de uma regra da seção RULES.
Os registros que representam os fatos e as regras são semelhantes quanto à
estrutura. O que os diferencia é o atributo SERVICE contido nos átomos de tradução
(TA) de uma regra. Esse atributo tem como finalidade especificar qual webservice deve
ser utilizado para executar as funções remotas referenciadas na ação associada a uma
regra.
Quadro 3. Exemplo da seção RULE em uma especificação TSL
<RULE>
<ORIGIN>SUBSTANTIVO ADJETIVO</ORIGIN>
<TA>
<LNG>INGLÊS FORMAL</LNG>
<PATTERN>ADJETIVO SUBSTANTIVO</PATTERN>
<SERVICE>Dicionario-Portugues-Ingles</SERVICE>
</TA>
<TA>
<LNG>PORTUGUÊS REBUSCADO</LNG>
<PATTERN>ADJETIVO SUBSTANTIVO</PATTERN>
<SERVICE>NULL</SERVICE>
</TA>
</RULE>
Uma característica importante aparece no segundo átomo de tradução do Quadro
3 - o atributo SERVICE com seu valor definido como NULL. Isso significa que
nenhuma função remota (webservice) será usada na execução da ação definida na regra.
No exemplo deste quadro 3, a ação definida na regra inverte a ordem dos elementos
terminais do texto de entrada que tenham disparado a regra.
É possível observar nos Quadros 2 e 3 que um único Fato (FACT) ou Regra
(RULE) pode representar padrões de mapeamento para diversas linguagens.
4.5 A Regra Padrão
A regra padrão existe para definir qual ação deve ser aplicada aos tokens que não se
encaixam em nenhum fato ou regra. Esses tokens são chamados de “tokens soltos”. Esta
regra pode ser identificada pelo valor do seu atributo ORIGIN que é igual a NULL.
Quando o atributo PATTERN for NULL, significa que nenhum padrão é gerado
localmente no texto alvo e apenas ações remotas podem ser aplicadas.
Quadro 4. Regra padrão que direciona os tokens soltos para serviços de dicionário
<RULE>
<ORIGIN>NULL</ORIGIN>
<TA>
<DOM>INGLÊS</DOM>
<PATTERN>NULL</PATTERN>
<SERVICE>Dicionario-Portugues-Ingles</SERVICE>
</TA>
<TA>
<DOM>Espanhol</DOM>
<PATTERN>NULL</PATTERN>
<SERVICE>Dicionario-Portugues-Espanhol</SERVICE>
</TA>
<TA>
<DOM>Italiano</DOM>
<PATTERN>NULL</PATTERN>
<SERVICE>Dicionario-Portugues-Italiano</SERVICE>
</TA>
</RULE>
5. A Execução
A execução de uma especificação TSL segue as etapas descritas nesta seção.
5.1 O esboço do procedimento
O quadro 5 apresenta o procedimento de interpretação de uma especificação TSL.
O texto de entrada é percorrido desde o inicio até o final.
Os tokens (sequências de caracteres delimitados por espaço, virgula ou ponto)
são acumulados em uma pilha enquanto existir alguma regra ou fato que tenha
reconhecido todos eles, na ordem em que tenham sido empilhados.
Os fatos têm prioridade sobre as regras.
A busca por padrões que disparem um fato ou uma regra prioriza os maiores
padrões localizados no texto de entrada.
Os padrões no texto de entrada que não dispararem nenhum fato ou regra são
repetidos no texto alvo, a não ser que exista uma regra padrão especificada.
A cada fato encontrado é gerada uma substituição direta.
A cada regra encontrada é aplicada a ação associada e a saída é encaminhada
para o serviço especificado no atributo SERVICE do respectivo TA (átomo de
tradução).
5.2 Exemplo de processamento de um fato
Tomando o Quadro 2 como referência é possível processar um fragmento de texto
gerando um mapeamento do português coloquial para o português formal.
Tabela 2. Exemplo de aplicação de um fato
Texto de entrada
pega leve com o menino
Fato encontrado
pega leve
Mapeamento para o português formal
tenha calma
Texto de saída
tenha calma com o menino
É possível observar que o tratamento de um fato é direto e preserva a semântica
do texto original.
5.3 Exemplo de processamento de uma regra
Para ilustrar o processamento de uma regra, será utilizado o registro RULE contido no
quadro 3. Para tornar o exemplo mais completo, será admitido que o webservice referido
por “Dicionário-Português-Inglês” receba como entrada uma seqüência de palavras em
português, separadas por vírgula, e forneça como saída uma seqüência com a
representação em inglês das palavras, também separadas por vírgulas, preservando a
ordem de entrada. Também será considerada a regra padrão representada no quadro 4.
Seja o texto de entrada: “o cachorro feio morreu”. O exemplo, apresentado nas
tabelas 3, 4 e 5, ilustra os passos importantes dessa tradução.
Tabela 3. Pilha = {o}
Texto de Entrada
o cachorro feio morreu
Regra encontrada
REGRA PADRÃO
Mapeamento para o Inglês
o
Resultado da produção
o
Entrada fornecida para o WebService
o
Saída fornecida pelo WebService
the
Texto de saída
the cachorro feio morreu
Tabela 4. Pilha = {cachorro feio}
Texto de Entrada
the cachorro feio morreu
Regra encontrada
SUBSTANTIVO ADJETIVO
Mapeamento para o Inglês
ADJETIVO SUBSTANTIVO
Resultado da produção
feio cachorro
Entrada fornecida para o WebService
feio,cachorro
Saída fornecida pelo WebService
ugly,dog
Texto de saída
the ugly dog morreu
Tabela 5. Pilha = {morreu}
Texto de Entrada
the ugly dog morreu
Regra encontrada
REGRA PADRÃO
Mapeamento para o Inglês
morreu
Resultado da produção
morreu
Entrada fornecida para o WebService
morreu
Saída fornecida pelo WebService
died
Texto de saída
the ugly dog died
Dessa forma o estado final do processamento do segmento “o cachorro feio
morreu” foi traduzido como “the ugly dog died”.
6. Considerações Finais
Uma linguagem capaz de agilizar o desenvolvimento de ambientes de tradução, mostrase importante por permitir a especificação do tradutor focada no conhecimento
lingüístico minimizando o esforço de implementação.
A TSL permite o reaproveitamento de regras e fatos conhecidos sobre traduções,
assim como a utilização de serviços web existentes, evitando a repetição de trabalho.
Todas as ações associadas às regras da TSL que referenciam funções remotas são
executadas pelos webservices.
Um outro ponto forte identificado é a possibilidade de que pessoas sem
profundos conhecimentos em programação criem especificações de tradutores.
Como trabalhos futuros, com o objetivo de tornar a TSL mais atraente, torna-se
interessante que sejam disponibilizados interpretadores na web, facilitando a criação de
sistemas web via a TSL.
7. Referências
SIMÕES, Alberto Manuel ; ALMEIDA, José João ; GOMEZ GUINOVART, Xavier Memórias de tradução distribuídas. [S.l. : s.n.], [c. 2004]. ISBN 972-99166-0-8.
Tradução Automática: ainda um enigma multidisciplinar. In V congresso Nacional de
Lingüística e Filologia. Instituto de Letras da UERJ, Rio de Janeiro.
Breda, W.L. (2005) Falibras-MT – Um sistema para autoria e uso de tradutores
automáticos Português – Libras, baseados em memória de tradução. Monografia do
Projeto Final de Graduação do Curso de Engenharia de Computação, UFES, Espírito
Santo
MENÉNDEZ, Andrés Ignácio Martínez. Uma ferramenta de apoio ao desenvolvimento
de Web Services. Dissertação de Mestrado, Universidade Federal de Campina
Grande, curso de Pós-Graduação em Informática, 2002. 97 p.
CANUTO, Anne Magaly de Paula; HOWELLS, Gareth; FAIRHURST, Michael.
Network Combination Strategies for a Hybrid Neur-Fuzzy Multi-Expert System. In:
INFORMATION PROCESSING AND MANAGEMENT OF UNCERTAINTY IN
KNOWLEDGE-BASED SYSTEMS, 2000, Madri. 8th.

Documentos relacionados