ancerlop commited on
Commit
4d5c963
1 Parent(s): e064196

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +61 -0
app.py ADDED
@@ -0,0 +1,61 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ from setfit import SetFitModel
3
+ import spacy
4
+
5
+ # Cargar el modelo
6
+ model = SetFitModel.from_pretrained("desarrolloasesoreslocales/SetFitArgumentos")
7
+
8
+ # Cargar el modelo de spaCy para espa帽ol
9
+ spacy.cli.download("es_core_news_sm")
10
+ nlp = spacy.load("es_core_news_sm")
11
+
12
+ # Mapear las etiquetas
13
+ id2label = {0: "49", 1: "994", 2: "1002", 3: "2014"}
14
+
15
+ # Definir la funci贸n para dividir en p谩rrafos
16
+ def dividir_en_parrafos(texto):
17
+ doc = nlp(texto)
18
+ parrafos = []
19
+ parrafo_actual = []
20
+ for oracion in doc.sents:
21
+ parrafo_actual.append(oracion.text)
22
+ if oracion.text.endswith((".", "!", "?")):
23
+ parrafos.append(" ".join(parrafo_actual))
24
+ parrafo_actual = []
25
+ if parrafo_actual:
26
+ parrafos.append(" ".join(parrafo_actual))
27
+ return parrafos
28
+
29
+ # Definir la funci贸n de predicci贸n
30
+ def predict(payload):
31
+ # Dividir el texto en p谩rrafos
32
+ parrafos = dividir_en_parrafos(payload)
33
+
34
+ # Inicializar un conjunto para almacenar etiquetas 煤nicas
35
+ etiquetas_encontradas = set()
36
+
37
+ # Procesar cada p谩rrafo por separado
38
+ for parrafo in parrafos:
39
+ # Predecir con el modelo
40
+ results = model.predict_proba([parrafo])[0]
41
+
42
+ # Filtrar etiquetas con score > 0.60
43
+ etiquetas_filtradas = [id2label[i] for i, score in enumerate(results) if score > 0.60]
44
+
45
+ # Agregar etiquetas al conjunto
46
+ etiquetas_encontradas.update(etiquetas_filtradas)
47
+
48
+ return "\n".join(etiquetas_encontradas)
49
+
50
+ # Crear una interfaz Gradio
51
+ iface = gr.Interface(
52
+ fn=predict,
53
+ inputs=gr.inputs.Textbox(),
54
+ outputs=gr.outputs.Textbox(),
55
+ live=False,
56
+ layout='vertical',
57
+ title="Clasificador de Texto"
58
+ )
59
+
60
+ # Iniciar la interfaz Gradio
61
+ iface.launch()