File size: 1,734 Bytes
4d5c963
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
08baf09
 
4d5c963
 
 
 
 
 
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
import gradio as gr
from setfit import SetFitModel
import spacy

# Cargar el modelo
model = SetFitModel.from_pretrained("desarrolloasesoreslocales/SetFitArgumentos")

# Cargar el modelo de spaCy para espa帽ol
spacy.cli.download("es_core_news_sm")
nlp = spacy.load("es_core_news_sm")

# Mapear las etiquetas
id2label = {0: "49", 1: "994", 2: "1002", 3: "2014"}

# Definir la funci贸n para dividir en p谩rrafos
def dividir_en_parrafos(texto):
    doc = nlp(texto)
    parrafos = []
    parrafo_actual = []
    for oracion in doc.sents:
        parrafo_actual.append(oracion.text)
        if oracion.text.endswith((".", "!", "?")):
            parrafos.append(" ".join(parrafo_actual))
            parrafo_actual = []
    if parrafo_actual:
        parrafos.append(" ".join(parrafo_actual))
    return parrafos

# Definir la funci贸n de predicci贸n
def predict(payload):
    # Dividir el texto en p谩rrafos
    parrafos = dividir_en_parrafos(payload)
    
    # Inicializar un conjunto para almacenar etiquetas 煤nicas
    etiquetas_encontradas = set()
    
    # Procesar cada p谩rrafo por separado
    for parrafo in parrafos:
        # Predecir con el modelo
        results = model.predict_proba([parrafo])[0]
        
        # Filtrar etiquetas con score > 0.60
        etiquetas_filtradas = [id2label[i] for i, score in enumerate(results) if score > 0.60]
        
        # Agregar etiquetas al conjunto
        etiquetas_encontradas.update(etiquetas_filtradas)
    
    return "\n".join(etiquetas_encontradas)

# Crear una interfaz Gradio
iface = gr.Interface(
    fn=predict, 
    inputs=gr.Textbox(), 
    outputs=gr.Textbox(), 
    live=False,
    title="Clasificador de Texto"
)

# Iniciar la interfaz Gradio
iface.launch()