Horchatas commited on
Commit
0a087dc
·
verified ·
1 Parent(s): ab8cfc5

Create app.py

Browse files

Cuando no se entiende muy bien el inglés y se quiere leer algo en este idioma es difícil hacerlo ya que las palabras pueden ser difíciles de traducir a primera vista. Estos modelos ayudan a la traducción y a leer esos textos. He utilizado los siguientes modelos:
Falconsai: este modelo resume un texto de ingles a ingles. Puedes ponerle el máximo de caracteres que quieres que aparezcan y te devuelve una lista de diccionarios con el texto dentro.
Helsinki-NLP/opus-mt-en-es: este modelo resume textos de ingles a español. Para usar este modelo se necesita usar un tokenizador el cual será un paso previo a la traducción del texto. También hay que ponerle al texto antes una etiqueta para que sepa que está traduciendo al español. Una vez se traduzca el texto se decodifica y se enseña.

Una vez conseguido que funcionen los dos modelos se usa gradio para crear una interfaz sencilla en la cual apareceran los textos traducidos, el resumido y el completo.

Files changed (1) hide show
  1. app.py +26 -0
app.py ADDED
@@ -0,0 +1,26 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from transformers import pipeline, MarianMTModel, MarianTokenizer
2
+ import gradio as gr
3
+
4
+ summarizer = pipeline("summarization", model="Falconsai/text_summarization") # modelo de resumen de texto inglés a inglés
5
+
6
+ # modelo para la traducción del texto ingles a español
7
+ model_name = "Helsinki-NLP/opus-mt-en-es"
8
+ tokenizer = MarianTokenizer.from_pretrained(model_name)
9
+ model = MarianMTModel.from_pretrained(model_name)
10
+
11
+ def traducir(texto):
12
+ text_summarized = summarizer(texto, max_length=1000, min_length=30, do_sample=False)
13
+ texto_solo = ">>esp<< " + text_summarized[0]["summary_text"]
14
+ translated_entero = model.generate(**tokenizer(texto, return_tensors="pt", padding=True))
15
+ texto_entero = [tokenizer.decode(t, skip_special_tokens=True) for t in translated_entero]
16
+ translated_resumido = model.generate(**tokenizer(texto_solo, return_tensors="pt", padding=True))
17
+ texto_resumido = [tokenizer.decode(t, skip_special_tokens=True) for t in translated_resumido]
18
+ return texto_resumido[0], texto_entero[0],
19
+
20
+ demo = gr.Interface(
21
+ fn=traducir,
22
+ inputs=["text"],
23
+ outputs=["text", "text"],
24
+ )
25
+
26
+ demo.launch()