Update app.py
Browse files
app.py
CHANGED
|
@@ -9,7 +9,7 @@ tokenizer = MarianTokenizer.from_pretrained(model_name)
|
|
| 9 |
model = MarianMTModel.from_pretrained(model_name)
|
| 10 |
|
| 11 |
def traducir_resumir(texto):
|
| 12 |
-
text_summarized = summarizer(texto, max_length=1000, min_length=
|
| 13 |
texto_solo = ">>esp<< " + text_summarized[0]["summary_text"]
|
| 14 |
translated_resumido = model.generate(**tokenizer(texto_solo, return_tensors="pt", padding=True))
|
| 15 |
texto_resumido = [tokenizer.decode(t, skip_special_tokens=True) for t in translated_resumido]
|
|
@@ -29,6 +29,7 @@ def traducir(texto):
|
|
| 29 |
return texto_completo
|
| 30 |
|
| 31 |
with gr.Blocks() as demo:
|
|
|
|
| 32 |
with gr.Row():
|
| 33 |
with gr.Column():
|
| 34 |
text = gr.Textbox(label="Introduzca el texto a resumir y traducir")
|
|
@@ -40,6 +41,31 @@ with gr.Blocks() as demo:
|
|
| 40 |
with gr.Column():
|
| 41 |
output1 = gr.Textbox(label="Texto resumido traducido")
|
| 42 |
output2 = gr.Textbox(label="Texto completo traducido")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 43 |
|
| 44 |
sumbtn.click(fn = traducir_resumir, inputs = text, outputs = output1)
|
| 45 |
tradbtn.click(fn = traducir, inputs = text, outputs = output2)
|
|
|
|
| 9 |
model = MarianMTModel.from_pretrained(model_name)
|
| 10 |
|
| 11 |
def traducir_resumir(texto):
|
| 12 |
+
text_summarized = summarizer(texto, max_length=1000, min_length=100, do_sample=False)
|
| 13 |
texto_solo = ">>esp<< " + text_summarized[0]["summary_text"]
|
| 14 |
translated_resumido = model.generate(**tokenizer(texto_solo, return_tensors="pt", padding=True))
|
| 15 |
texto_resumido = [tokenizer.decode(t, skip_special_tokens=True) for t in translated_resumido]
|
|
|
|
| 29 |
return texto_completo
|
| 30 |
|
| 31 |
with gr.Blocks() as demo:
|
| 32 |
+
gr.Markdown("### Proyecto 1 - Trabajo con modelos de IA")
|
| 33 |
with gr.Row():
|
| 34 |
with gr.Column():
|
| 35 |
text = gr.Textbox(label="Introduzca el texto a resumir y traducir")
|
|
|
|
| 41 |
with gr.Column():
|
| 42 |
output1 = gr.Textbox(label="Texto resumido traducido")
|
| 43 |
output2 = gr.Textbox(label="Texto completo traducido")
|
| 44 |
+
with gr.Accordion("Información"):
|
| 45 |
+
with gr.Row():
|
| 46 |
+
with gr.Column():
|
| 47 |
+
with gr.Accordion("Detalles del proyecto"):
|
| 48 |
+
gr.Markdown("""El problema principal que resuelve este proyecto es para adquirir información de textos en inglés cuando no se sabe este idioma.\n
|
| 49 |
+
Esto es un problema bastante comun dado que hay mucha gente en España la cual no sabe inglés y si quiere informarse de cualquier tema el cual no está \
|
| 50 |
+
muy desarrollado en español tiene que buscarse la vida para poder traducir esos textos a su idioma natal.\n
|
| 51 |
+
Gracias a este proyecto se puede traducir estos textos rápidamente con un función añadida de hacerle un resumen para poder entenderlo mejor. \n
|
| 52 |
+
El modelo requiere como input un texto en ingles y sacara como outputs un texto resumido en español y el mismo texto completo traducido al español.
|
| 53 |
+
"""
|
| 54 |
+
)
|
| 55 |
+
with gr.Column():
|
| 56 |
+
with gr.Accordion("Detalles de los modelos"):
|
| 57 |
+
gr.Markdown("""#### Helsinki-NLP/opus-mt-en-es (Modelo traductor)
|
| 58 |
+
Este modelo es el que se usa para traducir el texto de ingles a español. Se usa desde un framework (MarianMT) el cual contiene más de 1000 modelos de lenguaje.\
|
| 59 |
+
Para usar el modelo específico de traducir de ingles a español se tiene que poner las etiquetas de idioma (en este caso en y es) junto al modelo en si \
|
| 60 |
+
(Helsinki-NLP/opus-mt-{src}-{trg}). El modelo necesita tokenizar el texto para poder traducirlo. Esto se hace con su propio tokenizador el cual es MarianTokenizer.\n
|
| 61 |
+
La duración de la traducción viene dada a la longitud del texto que se quiere traducir por lo que textos más largos tardarán más en traducirse.\n
|
| 62 |
+
El principal problema del modelo es que para la versión que tenemos solo permite 512 tokens al traducir lo cual limita mucho, por eso traduzco el texto \
|
| 63 |
+
partiendolo en segmentos de misma longitud (100 en este caso)\n"
|
| 64 |
+
#### Falconsai (Modelo que resume)
|
| 65 |
+
Este modelo es un fine-tuning hecho para resumir de otro modelo llamado T5 Small. Es un modelo muy sencillo el cual puede traducir textos muy extensos \
|
| 66 |
+
y de forma rápida y sencilla. La forma en la que lo uso es con el pipeline de transformer y dentro de este se le pone los parametros max_lenght y min_length \
|
| 67 |
+
los cuales permite poner la longitud máxima y mínima para el texto resumido."""
|
| 68 |
+
)
|
| 69 |
|
| 70 |
sumbtn.click(fn = traducir_resumir, inputs = text, outputs = output1)
|
| 71 |
tradbtn.click(fn = traducir, inputs = text, outputs = output2)
|