none
Criação de um Tradutor [PT/EN] em C# [Visual Studio/MS Access] RRS feed

  • Pergunta

  • Boa tarde pessoal,

    Comecei há poucos meses a programar por iniciativa própria e pretendo agora construir um tradutor que traduza Inglês para Português e Português para Inglês.

    É um desafio. Neste momento já criei uma base de dados, em Access, com cerca de 300 palavras que faz a conexão entre as duas tabelas (por exemplo, tabela portuguesa - 101 olá; tabela inglesa - 101 hello; e já estão ligadas com FK).

    A conexão da base de dados ao Visual Studio já está feita e a correr lindamente. Consegui com que apareçam nas textbox a partir de uma tabela criada no Access os dois tipos de idioma que serão utilizados.

    E agora chega a parte onde não consigo avançar mais e é a mais importante: a tradução da frase que não sei realmente como fazer, quer dizer, na teoria tenho uma ideia. Escrever uma querry que encontra a tradução, executá-la, ler o resultado e apresentar numa outra textbox. Alguém pode dar-me umas "luzinhas" a apontar-me na direcção correcta de como realmente fazer esta parte da tradução?

    Obrigado a todos desde já.

    quarta-feira, 16 de dezembro de 2015 16:28

Respostas

  • Nao é possivel deste jeito.. Para traduzir uma frase é bem mais complexa que traduzir palavras. E creio que mesmo a traduçao de palavras voce nao esta fazendo da forma correta. 

    No seu exemplo, sua ligaçao é 1 para 1 (hello <--> olá), mas na verdade é N para N,  que sao palavras homonimas, exemplo: Morro, Leve, Caminho, etc (veja mais aqui)

    No caso de Morro, qual seria a palavra em ingles? Die ou Hill? Como voce traduziria a frase: "Eu ainda morro no Morro do Boréu"?

    A frase correta em ingles seria "I still die in the Boréu's Hill".. Note que a palavra morro existe em dois contextos diferentes, verbo morrer conjugado na primeira pessoa no presente do indicativo e o substantivo masculino sinonimo de montanha.

    Alias essa tripo de frase é tao complexa que nem o google translator consegue traduzir (pode trentar)

    Outra frase tipica: "Maria, não saia de saia", o correto seria "Maria, do not go out there wearing a dress".. e a versao do google: "Mary does not come out of exit" (errrrr.....)

    Mas veja um caso bem simples: "O livro é verde", "The book is green"... facil nao, mesma quantidade de palavras (4 em ingles e em protugues). "O" traduz em "The" , livro em book, é em is, verde em green. O contrario é verdade? Não!!

    The pode ser: O, A, OS, AS.. para saber qual usar voce tem que analisar o sujeito e verificar genero e numero, no caso Book é Livro que é um substinto masculino e neste caso esta no singular. 

    Is é a conjugaçao do verbo "To Be" na primeira pessoa do pessoa no presente, e neste caso pode ser traduzido como "é" ou "está", como saber? Mais uma vez analizando o contexto

    Green é o adjetivo Verde

    Agora qual é traduçao correta para "The book is green": 

    1- O livro é verde.

    2- O livro está verde.

    1 ou 2, ou 1 e 2?

    Traduçao nao é somente a relaçao entre palavras entre linguas. É muito (mas muito) mais complexo que isso e nao se resolve de forma linear... para isso voce vai ter que usar logica difusa com conceitos de redes neurais.

    Voce precisaria "ensinar" seu tradutor todo a gramatica e semantica das duas linguas e ainda assim voce nao alcança 100% na traduçao... 

    E isso nao é só um problema especifico de programaçao. De dois livros em ingles  pra dois tradutores profissionais para traduzi-los em portugues. Garanto que o resultado final será diferente.

    Eu começaria  com algo mais simples do que isso. Se voce nunca escalou uma montanha, nao comece pelo K2.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------



    quarta-feira, 16 de dezembro de 2015 17:42
    Moderador

Todas as Respostas

  • Nao é possivel deste jeito.. Para traduzir uma frase é bem mais complexa que traduzir palavras. E creio que mesmo a traduçao de palavras voce nao esta fazendo da forma correta. 

    No seu exemplo, sua ligaçao é 1 para 1 (hello <--> olá), mas na verdade é N para N,  que sao palavras homonimas, exemplo: Morro, Leve, Caminho, etc (veja mais aqui)

    No caso de Morro, qual seria a palavra em ingles? Die ou Hill? Como voce traduziria a frase: "Eu ainda morro no Morro do Boréu"?

    A frase correta em ingles seria "I still die in the Boréu's Hill".. Note que a palavra morro existe em dois contextos diferentes, verbo morrer conjugado na primeira pessoa no presente do indicativo e o substantivo masculino sinonimo de montanha.

    Alias essa tripo de frase é tao complexa que nem o google translator consegue traduzir (pode trentar)

    Outra frase tipica: "Maria, não saia de saia", o correto seria "Maria, do not go out there wearing a dress".. e a versao do google: "Mary does not come out of exit" (errrrr.....)

    Mas veja um caso bem simples: "O livro é verde", "The book is green"... facil nao, mesma quantidade de palavras (4 em ingles e em protugues). "O" traduz em "The" , livro em book, é em is, verde em green. O contrario é verdade? Não!!

    The pode ser: O, A, OS, AS.. para saber qual usar voce tem que analisar o sujeito e verificar genero e numero, no caso Book é Livro que é um substinto masculino e neste caso esta no singular. 

    Is é a conjugaçao do verbo "To Be" na primeira pessoa do pessoa no presente, e neste caso pode ser traduzido como "é" ou "está", como saber? Mais uma vez analizando o contexto

    Green é o adjetivo Verde

    Agora qual é traduçao correta para "The book is green": 

    1- O livro é verde.

    2- O livro está verde.

    1 ou 2, ou 1 e 2?

    Traduçao nao é somente a relaçao entre palavras entre linguas. É muito (mas muito) mais complexo que isso e nao se resolve de forma linear... para isso voce vai ter que usar logica difusa com conceitos de redes neurais.

    Voce precisaria "ensinar" seu tradutor todo a gramatica e semantica das duas linguas e ainda assim voce nao alcança 100% na traduçao... 

    E isso nao é só um problema especifico de programaçao. De dois livros em ingles  pra dois tradutores profissionais para traduzi-los em portugues. Garanto que o resultado final será diferente.

    Eu começaria  com algo mais simples do que isso. Se voce nunca escalou uma montanha, nao comece pelo K2.

    Att


    William John Adam Trindade
    Analyste-programmeur
    ----------------------------------------------------------



    quarta-feira, 16 de dezembro de 2015 17:42
    Moderador
  • Obrigado pela resposta William e por tudo o que me disse o mais certo é nem tentar criar um tradutor do estilo do Google mas apenas uma só palavra com várias definições. É algo mais fácil de realizar e poderia aproveitar a base de dados que construí, certo? 
    quarta-feira, 16 de dezembro de 2015 17:54