Inteligência de dados generativa

Personalize seus resultados de tradução automática usando correspondência difusa com o Amazon Translate

Data:

O vernáculo de uma pessoa faz parte das características que a tornam única. Muitas vezes, existem inúmeras maneiras diferentes de expressar uma ideia específica. Quando uma empresa se comunica com seus clientes, é fundamental que a mensagem seja entregue de uma forma que melhor represente a informação que eles estão tentando transmitir. Isso se torna ainda mais importante quando se trata de tradução profissional de idiomas. Os clientes de sistemas e serviços de tradução esperam resultados precisos e altamente personalizados. Para conseguir isso, eles geralmente reutilizam as saídas de tradução anteriores – chamadas de memória de tradução (TM) – e as comparam com o novo texto de entrada. Na tradução assistida por computador, esta técnica é conhecida como correspondência difusa. A principal função da correspondência difusa é auxiliar o tradutor, acelerando o processo de tradução. Quando uma correspondência exata não pode ser encontrada no banco de dados da TM para o texto que está sendo traduzido, os sistemas de gerenciamento de tradução (TMSs) geralmente têm a opção de procurar uma correspondência que não seja exata. As correspondências potenciais são fornecidas ao tradutor como entrada adicional para a tradução final. Tradutores que aprimoram seu fluxo de trabalho com recursos de tradução automática, como Amazon Tradutor geralmente esperam que os dados de correspondência difusa sejam usados ​​como parte da solução de tradução automática.

Nesta postagem, você aprenderá a personalizar a saída do Amazon Translate de acordo com as pontuações de qualidade de correspondência difusa da memória de tradução.

Correspondência de qualidade de tradução

O formato de arquivo de troca de localização XML (XLIFF) é frequentemente usado como um formato de troca de dados entre TMSs e Amazon Translate. Os arquivos XLIFF produzidos por TMSs incluem dados de texto de origem e destino juntamente com pontuações de qualidade de correspondência com base na TM disponível. Essas pontuações - geralmente expressas em porcentagem - indicam quão próxima a memória de tradução está do texto que está sendo traduzido.

Alguns clientes com requisitos muito rígidos desejam que a tradução automática seja usada apenas quando os índices de qualidade de correspondência estiverem abaixo de um determinado limite. Além desse limite, eles esperam que sua própria memória de tradução tenha precedência. Os tradutores geralmente precisam aplicar essas preferências manualmente, seja no TMS ou alterando os dados de texto. Esse fluxo é ilustrado no diagrama a seguir. O sistema de tradução automática processa os dados de tradução — texto e pontuações de correspondência difusa — que são revisados ​​e editados manualmente pelos tradutores, com base nos limites de qualidade desejados. A aplicação de limites como parte da etapa de tradução automática permite remover essas etapas manuais, o que melhora a eficiência e otimiza o custo.

Figura 1: Fluxo de revisão da tradução automática

A solução apresentada nesta postagem permite que você aplique regras com base em limites de pontuação de qualidade de correspondência para determinar se um determinado texto de entrada deve ser traduzido por máquina pelo Amazon Translate ou não. Quando não traduzido por máquina, o texto resultante fica a critério dos tradutores que revisam o resultado final.

Arquitetura da Solução

A arquitetura da solução ilustrada na Figura 2 aproveita os seguintes serviços:

  • Serviço de armazenamento simples da Amazon – Os buckets do Amazon S3 contêm o seguinte conteúdo:
    • Arquivos de configuração de limite de correspondência difusa
    • Texto de origem a ser traduzido
    • Locais de dados de entrada e saída do Amazon Translate
  • Gerente de Sistemas AWS - Nós usamos Armazenamento de parâmetros parâmetros para armazenar valores de configuração de limite de qualidade de correspondência
  • AWS Lambda – Usamos duas funções Lambda:
    • Uma função pré-processa os arquivos de configuração de limite de correspondência de qualidade e persiste os dados no Parameter Store
    • Uma função cria automaticamente os trabalhos de tradução assíncrona
  • Serviço de fila simples da Amazon – Uma fila do Amazon SQS aciona o fluxo de tradução como resultado de novos arquivos chegando ao bucket de origem
Diagrama de Arquitetura de Solução

Figura 2: Arquitetura da solução

Você primeiro configura os limites de qualidade para seus trabalhos de tradução editando um arquivo de configuração e carregando-o no bucket do S3 de configuração de limite de correspondência difusa. Veja a seguir um exemplo de configuração no formato CSV. Escolhemos o CSV pela simplicidade, embora você possa usar qualquer formato. Cada linha representa um limite a ser aplicado a um trabalho de tradução específico ou como valor padrão para qualquer trabalho.

default, 75
SourceMT-Test, 80

As especificações do arquivo de configuração são as seguintes:

  • A coluna 1 deve ser preenchida com o nome do arquivo XLIFF — sem extensão — fornecido ao trabalho do Amazon Translate como dados de entrada.
  • A coluna 2 deve ser preenchida com o limite de porcentagem de correspondência de qualidade. Para qualquer pontuação abaixo desse valor, a tradução automática é usada.
  • Para todos os arquivos XLIFF cujo nome não corresponde a nenhum nome listado no arquivo de configuração, o limite padrão é usado - a linha com a palavra-chave default definido na coluna 1.
Parâmetro gerado automaticamente no armazenamento de parâmetros do Systems Manager

Figura 3: parâmetro gerado automaticamente no armazenamento de parâmetros do Systems Manager

Quando um novo arquivo é carregado, o Amazon S3 aciona a função Lambda responsável pelo processamento dos parâmetros. Esta função lê e armazena os parâmetros de limite no Parameter Store para uso futuro. O uso do Parameter Store evita a execução de solicitações GET redundantes do Amazon S3 sempre que um novo trabalho de tradução é iniciado. O arquivo de configuração de amostra produz as tags de parâmetro mostradas na captura de tela a seguir.

A função de inicialização do trabalho do Lambda usa esses parâmetros para pré-processar os dados antes de chamar o Amazon Translate. Usamos um arquivo de entrada XLIFF de tradução de inglês para espanhol, conforme mostrado no código a seguir. Contém o texto inicial a ser traduzido, desdobrado no que se denomina segmentos, representado nas tags de origem.

<group id="g8">
    <trans-unit id="t8" translate="yes">
        <source>Consent Form</source>
        <target state-qualifier="fuzzy-match"/>
        <alt-trans extype="fuzzy-match" match-quality="99%" >
            <source>CONSENT FORM</source>
            <target>FORMULARIO DE CONSENTIMIENTO</target>
        </alt-trans>
    </trans-unit>
</group>

<group id="g67">
    <trans-unit id="t110" translate="yes">
        <source>Screening Visit:</source>
        <target state-qualifier="fuzzy-match"/>
        <alt-trans extype="fuzzy-match" match-quality="50%">
            <source>Screening Visit</source>
            <target>Selección</target>
        </alt-trans>
    </trans-unit>
</group>

O texto de origem foi previamente combinado com a memória de tradução. Os dados contêm possíveis alternativas de tradução - representadas como <alt-trans> tags — juntamente com um atributo de qualidade de correspondência, expresso em porcentagem. A regra de negócio é a seguinte:

  • Os segmentos recebidos com traduções alternativas e uma qualidade de correspondência abaixo do limite permanecem intactos ou vazios. Isso sinaliza ao Amazon Translate que eles devem ser traduzidos.
  • Os segmentos recebidos com traduções alternativas com uma qualidade de correspondência acima do limite são pré-preenchidos com o texto de destino sugerido. O Amazon Translate pula esses segmentos.

Vamos supor que o limite de correspondência de qualidade configurado para este trabalho seja de 80%. O primeiro segmento com 99% de qualidade de correspondência não é traduzido automaticamente, enquanto o segundo segmento é, porque sua qualidade de correspondência está abaixo do limite definido. Nessa configuração, o Amazon Translate produz a seguinte saída:

<group id="g8">
	<trans-unit id="t8" translate="yes">
		<source>Consent Form</source>
		<target state-qualifier="fuzzy-match" translate:match-quality="99%">FORMULARIO DE CONSENTIMIENTO</target>
		<alt-trans extype="fuzzy-match" match-quality="99%" >
			<source>CONSENT FORM</source>
			<target>FORMULARIO DE CONSENTIMIENTO</target>
		</alt-trans>
	</trans-unit>
</group>

<group id="g67">
	<trans-unit id="t110" translate="yes">
		<source>Screening Visit:</source>
		<target state-qualifier="fuzzy-match">Visita de selección</target>
		<alt-trans extype="fuzzy-match" match-quality="50%">
			<source>Screening Visit</source>
			<target>Selección</target>
		</alt-trans>
	</trans-unit>
</group>

No segundo segmento, o Amazon Translate substitui o texto de destino sugerido inicialmente (Selección) com uma tradução de maior qualidade: Visita de selección.

Uma possível extensão para este caso de uso poderia ser reutilizar a saída traduzida e criar nossa própria memória de tradução. O Amazon Translate oferece suporte à personalização da tradução automática usando memória de tradução graças ao dados paralelos característica. Segmentos de texto anteriormente traduzidos por máquina devido à sua pontuação inicial de baixa qualidade podem ser reutilizados em novos projetos de tradução.

Nas seções a seguir, orientamos você no processo de implantação e teste dessa solução. Você usa Formação da Nuvem AWS scripts e amostras de dados para iniciar um trabalho de tradução assíncrona personalizado com um limite de correspondência de qualidade configurável.

Pré-requisitos

Para este passo a passo, você deve ter um Conta da AWS. Se você ainda não tem uma conta, você pode criar e ativar um.

Iniciar a pilha do AWS CloudFormation

  1. Escolha Pilha de Lançamento:
  2. Escolha Nome da pilha, Insira o nome.
  3. Escolha ConfigBucketName, insira o bucket do S3 que contém os arquivos de configuração de limite.
  4. Escolha ParâmetroStoreRoot, insira o caminho raiz dos parâmetros criados pela função Lambda de processamento de parâmetros.
  5. Escolha Nome da fila, insira a fila SQS que você cria para postar novas notificações de arquivo do bucket de origem para a função Lambda de inicialização do trabalho. Esta é a função que lê o arquivo de configuração.
  6. Escolha FonteBucketName, insira o bucket do S3 que contém os arquivos XLIFF a serem traduzidos. Se preferir usar um bucket preexistente, você precisa alterar o valor do parâmetro CreateSourceBucket para No.
  7. Escolha WorkingBucketName, insira o bucket do S3 que o Amazon Translate usa para dados de entrada e saída.
  8. Escolha Próximo.

    Figura 4: detalhes da pilha do CloudFormation

  9. Opcionalmente no Pilha Opções página, adicione nomes de chave e valores para as tags que você deseja atribuir aos recursos prestes a serem criados.
  10. Escolha Próximo.
  11. No Avaliações página, selecione Reconheço que este modelo pode fazer com que o AWS CloudFormation crie recursos do IAM.
  12. Revise as outras configurações e escolha Criar pilha.

O AWS CloudFormation leva vários minutos para criar os recursos em seu nome. Você pode acompanhar o progresso no Eventos guia no console do AWS CloudFormation. Quando a pilha foi criada, você pode ver uma CREATE_COMPLETE mensagem no Status coluna na Visão geral aba.

Teste a solução

Vamos a um exemplo simples.

  1. Faça o download do seguinte dados de amostra.
  2. Descompacte o conteúdo.

Deve haver dois arquivos: um arquivo .xlf no formato XLIFF e um arquivo de configuração de limite com .cfg como extensão. A seguir está um trecho do arquivo XLIFF.

Extrato de arquivo de amostra de inglês para francês

Figura 5: Extração de arquivo de amostra de inglês para francês

  1. No console do Amazon S3, faça upload do arquivo de configuração de limite de qualidade no bucket de configuração especificado anteriormente.

O valor definido para test_En_to_Fr é 75%. Você deve conseguir ver os parâmetros no console do Systems Manager na seção Parameter Store.

  1. Ainda no console do Amazon S3, carregue o arquivo .xlf no bucket do S3 que você configurou como origem. Verifique se o arquivo está em uma pasta chamada translate (por exemplo, <my_bucket>/translate/test_En_to_Fr.xlf).

Isso inicia o fluxo de tradução.

  1. Abra o console do Amazon Translate.

Um novo trabalho deve aparecer com o status Em andamento.

Parâmetro gerado automaticamente no armazenamento de parâmetros do Systems Manager

Figura 6: Trabalhos de tradução em andamento no console do Amazon Translate

  1. Quando o trabalho estiver concluído, clique no link do trabalho e consulte a saída. Todos os segmentos deveriam ter sido traduzidos.

Todos os segmentos deveriam ter sido traduzidos. No arquivo XLIFF traduzido, procure segmentos com atributos adicionais denominados lscustom:match-quality, conforme mostrado na captura de tela a seguir. Esses atributos personalizados identificam segmentos em que a tradução sugerida foi mantida com base na pontuação.

Atributos personalizados que identificam segmentos em que a tradução sugerida foi mantida com base na pontuação

Figura 7: Atributos personalizados que identificam segmentos em que a tradução sugerida foi mantida com base na pontuação

Estes foram derivados da memória de tradução de acordo com o limite de qualidade. Todos os outros segmentos foram traduzidos automaticamente.

Agora você implementou e testou um assistente de trabalho de tradução assíncrona automatizado que impõe limites de qualidade de correspondência de memória de tradução configuráveis. Bom trabalho!

Limpar

Se você implantou a solução em sua conta, não se esqueça de excluir a pilha do CloudFormation para evitar qualquer custo inesperado. Você precisa esvaziar os buckets do S3 manualmente com antecedência.

Conclusão

Nesta postagem, você aprendeu como personalizar seus trabalhos de tradução do Amazon Translate com base nas métricas de qualidade de correspondência difusa XLIFF padrão. Com essa solução, você pode reduzir bastante o trabalho manual envolvido na revisão de texto traduzido por máquina, além de otimizar o uso do Amazon Translate. Você também pode estender a solução com recursos de automação de ingestão de dados e orquestração de fluxo de trabalho, conforme descrito em Acelere os trabalhos de tradução com um assistente de sistema de tradução totalmente automatizado.


Sobre os autores

Narcisse Zekpa é um Arquiteto de Soluções baseado em Boston. Ele ajuda os clientes no nordeste dos EUA a acelerar a adoção da Nuvem AWS, fornecendo diretrizes de arquitetura, projetando soluções inovadoras e escaláveis. Quando Narcisse não está construindo, ele gosta de passar tempo com sua família, viajar, cozinhar e jogar basquete.

Dimitri Restino é Arquiteto de Soluções na AWS, com sede em Brooklyn, Nova York. Ele trabalha principalmente com empresas de Saúde e Serviços Financeiros no Nordeste, ajudando a projetar soluções inovadoras e criativas para melhor atender seus clientes. Com experiência em desenvolvimento de software, ele está entusiasmado com as novas possibilidades que a tecnologia serverless pode trazer para o mundo. Fora do trabalho, ele adora caminhar e explorar a cena gastronômica de Nova York.

local_img

Inteligência mais recente

local_img