Um script para, de uma lista .csv, pegar palavras e frases em contexto e suas respectivas traduções e enviar para outra lista .csv.
- pandas
- Reverso Context API
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.
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.
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.
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.
- Exception Handling -- Duas alternativas:
- 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
- Adicionar opções de línguas de forma explícita, de acordo com os idiomas disponíveis no Context Reverso
inserir dados do wiktionary se eles existirem, quandoword_data = False
emtranslate.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.