File size: 1,613 Bytes
1e79dbd
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from model import carrega_modelo

tokenizador_original, modelo_original = carrega_modelo('Helsinki-NLP/opus-mt-tc-big-en-pt')
tokenizador_finetuned, modelo_finetuned = carrega_modelo('westronai/translation-en-pt')

def traduz_sentenca(model, tokenizer, texto_ingles: str):
    """

    Traduz uma sentença do inglês para o português usando um modelo de tradução.



    Args:

        model: O modelo de tradução pré-treinado.

        tokenizer: O tokenizer responsável por preparar o texto.

        texto_ingles (str): A sentença em inglês que será traduzida.



    Returns:

        dict: Dicionário com a sentença original e sua tradução.

    """
    tokens = tokenizer(texto_ingles, return_tensors="pt", padding=True)
    translated = model.generate(**tokens)
    texto_portugues = tokenizer.decode(translated[0], skip_special_tokens=True)
    return {
        'texto_ingles': texto_ingles,
        'texto_portugues': texto_portugues
    }

def traduzir_comparar(texto_ingles):
    """

    Compara as traduções geradas pelo modelo original e pelo modelo fine-tuned.



    Args:

        texto_ingles (str): O texto em inglês a ser traduzido.



    Returns:

        str: String formatada contendo as traduções de ambos os modelos.

    """
    traducao_original = traduz_sentenca(modelo_original, tokenizador_original, texto_ingles)
    traducao_finetuned = traduz_sentenca(modelo_finetuned, tokenizador_finetuned, texto_ingles)
    return f"Modelo Original: {traducao_original['texto_portugues']}\n\nModelo Fine-Tuned: {traducao_finetuned['texto_portugues']}"