Skip to content

Latest commit

 

History

History
67 lines (40 loc) · 4.14 KB

README.md

File metadata and controls

67 lines (40 loc) · 4.14 KB

context_translate

Um script para, de uma lista .csv, pegar palavras e frases em contexto e suas respectivas traduções e enviar para outra lista .csv.

Dependências

Exemplos

Como iniciar o programa

O programa toma como padrão a presença de um arquivo de input denominado words.csv na mesma pasta em que ele se encontra. Todavia, este pode ser substituído por um outro arquivo .csv da sua escolha. Exemplos:

python translate.py

Válido. Toma words.csv como input.

python translate.py palavras.csv

Válido. Toma palavras.csv como input

python translate.py palavras.csv termos.csv

Inválido. Até o presente momento o programa só pode interagir com um arquivo .csv de cada vez.

Exemplo de input-output

Input:

Palavras-base
предложение
достаточно
трудно

Output:

Palavras-base Tradução Frase de exemplo Tradução da frase
предложение proposal

offer

sentence
Можешь выставлять своё предложение на голосование.

Спонтанное предложение Кита начнется через минуту.

Они не отклонят предложение из-за одной неудачи.
You go right ahead and put your proposal to a vote.

Keith's spontanoeus proposal to Elliot will be happening in exactly one minute.

They're not going to withdraw the offer because you had a setback.
достаточно enough

sufficiently

fairly
Абсолютно, я достаточно домов построил.

Часть о нежелании умирать достаточно правдива.

Конечно, если ты достаточно отдохнула.
Hell, yes. I've built enough homes to know that.

The part about not wanting to die... that's true enough.

I mean, if you're sufficiently rested, of course.
трудно* difficult

hard

easily
Но это трудно и требует здравомыслия.

Мне сейчас трудно находиться среди незнакомых людей.

Иногда это трудно и невозможно понять.
But it's difficult, and we need to be conscious.

I kind of have a hard time around people I don't know.

Sometimes it's just difficult, you know, and you can't.

* "Трудно" não é equivalente a "easily". Esse output ocorre porque essa palavra é comumente traduzida como "not easily", e o Context Reverso entrega as coisas dessa forma.

Adendos

Não altere o intervalo entre requests feitas ao servidor. Há um intervalo de 5 segundos + um time.sleep() aleatório de duração < 1 segundo. O propósito disso é manter o comportamento do padrão dentro das exigências do servidor. Diminuir o intervalo pode resultar em banimento do site, o que inutiliza o programa.

Línguas disponíveis

Russo e inglês não são as únicas línguas disponíveis. Basta trocar as configurações para a língua desejada, desde que a opção desta língua exista no Context Reverso. Basta ir em tools.py e trocar para as línguas desejadas o par de variáveis em LANGUAGE_TUPLE. O primeiro item é a SOURCE LANGUAGE, ou a língua de que se traduz, e o segundo item é a TARGET LANGUAGE, ou a língua para qual se traduz.

Afazeres

  • Exception Handling -- Duas alternativas:
    1. Usar threading. Se uma resposta demorar demais, de alguma forma cancelar o pedido e ir para a próxima, ou pedir apenas um exemplo.
  • Enxugar código:
    • Adicionar opções de línguas de forma explícita, de acordo com os idiomas disponíveis no Context Reverso
      • Incluir tais opções no prompt
  • inserir dados do wiktionary se eles existirem, quando word_data = False em translate.py
  • verificar a possibilidade de procurar exemplos de frases mesmo se não houver traduções objetivas. Para isso é necessário verificar a funcionalidade das exception handlings do primeiro ponto desta lista.