File size: 1,529 Bytes
a805ecb
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
40
41
from transformers import pipeline
import gradio as gr

fill_mask = pipeline("fill-mask", model="dccuchile/bert-base-spanish-wwm-cased")

def complete_mask(sentence):
    if "[MASK]" not in sentence:
        return "鈿狅笍 Por favor, incluye '[MASK]' en la oraci贸n."
    
    results = fill_mask(sentence)

    output = "\n".join(
        [f"馃敼 **{res['token_str']}** (Probabilidad: {res['score']:.2%})" for res in results 
         if res['token_str'].strip() and res['token_str'] not in ["[UNK]", "."]]
    )
    
    return output if output else "鈿狅笍 No se encontraron predicciones v谩lidas."

with gr.Blocks() as demo:
    gr.Markdown("""

    # Modelo Fill-Mask en Espa帽ol

    Esta aplicaci贸n permite completar una oraci贸n con la palabra que falta, representada como '[MASK]'. 

    El modelo sugerir谩 las mejores opciones de palabras para completar la oraci贸n, con sus respectivas probabilidades.

    """)

    gr.Interface(
        fn=complete_mask,
        inputs=gr.Textbox(label="Oraci贸n con [MASK]", placeholder="Ejemplo: La capital de Espa帽a es [MASK]."),
        outputs=gr.Markdown(label="Predicciones"),
    )

    gr.Markdown("""

    ---

    Demostraci贸n de completado de palabras(m谩scaras) usando el modelo [dccuchile/bert-base-spanish-wwm-cased](https://huggingface.co/dccuchile/bert-base-spanish-wwm-cased).

    

    Desarrollado con 鉂わ笍 por [@srjosueaaron](https://www.instagram.com/srjosueaaron/).

    """)

if __name__ == "__main__":
    demo.launch()