bego commited on
Commit
639ebb9
verified
1 Parent(s): 6ab28ea

Update README.md

Browse files
Files changed (1) hide show
  1. README.md +32 -17
README.md CHANGED
@@ -1,31 +1,35 @@
1
- ---
2
- tags:
3
- - opinion-classifier
4
- - text-classification
5
- - transformers
6
- - gradio
7
- ---
8
-
9
  # Clasificador de Opiniones Multietiqueta
10
 
11
- Este m贸dulo utiliza modelos de Transformers para preprocesar y clasificar opiniones en m煤ltiples etiquetas como queja, sugerencia, agradecimiento, felicitaci贸n, ninguna y cambio positivo personal.
12
 
13
  ## Descripci贸n
14
 
15
- Explica brevemente qu茅 hace tu modelo, los datos en los que fue entrenado, y cualquier otra informaci贸n relevante.
16
 
17
- ## C贸mo usar
18
 
19
- Aqu铆 hay un ejemplo de c贸mo cargar y usar el modelo:
20
 
21
  ```python
22
- import pickle
23
  from huggingface_hub import hf_hub_download
 
 
 
 
 
 
 
 
 
 
 
 
24
  import ftfy
25
  import re
26
  import torch
27
  import numpy as np
28
  from transformers import DistilBertTokenizer, DistilBertModel
 
29
 
30
  def corregir_codificacion(texto):
31
  if isinstance(texto, str):
@@ -41,7 +45,7 @@ def preprocesar_texto(texto):
41
  class ClasificadorOpiniones:
42
  def __init__(self):
43
  model_path = hf_hub_download(repo_id="begoach1/opinion_classifier", filename="modelo_clasificador_reentrenado_lp_ros.pkl")
44
- self.clf_combined = pickle.load(open(model_path, 'rb'))
45
  self.tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-multilingual-cased')
46
  self.model = DistilBertModel.from_pretrained('distilbert-base-multilingual-cased')
47
 
@@ -57,6 +61,17 @@ class ClasificadorOpiniones:
57
  resultado = dict(zip(etiquetas, prediccion[0]))
58
  return resultado
59
 
60
- clasificador = ClasificadorOpiniones()
61
- texto = "me gust贸 mucho, tengo m谩s confianza en m铆 misma, 隆gracias!"
62
- print(clasificador.clasificar_opinion(texto))
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Clasificador de Opiniones Multietiqueta
2
 
3
+ Este modelo clasifica opiniones en m煤ltiples etiquetas como queja, sugerencia, agradecimiento, felicitaci贸n, ninguna y cambio positivo personal.
4
 
5
  ## Descripci贸n
6
 
7
+ El modelo utiliza `DistilBERT` para la representaci贸n de textos y un `Logistic Regression` multietiqueta entrenado con `MultiOutputClassifier`. Se han aplicado t茅cnicas de sobremuestreo (LP-ROS) para manejar el desbalance de clases.
8
 
9
+ ## Uso
10
 
11
+ ### Cargar el modelo con `huggingface_hub`
12
 
13
  ```python
 
14
  from huggingface_hub import hf_hub_download
15
+ import joblib
16
+
17
+ # Descargar y cargar el modelo
18
+ model_path = hf_hub_download(repo_id="begoach1/opinion_classifier", filename="modelo_clasificador_reentrenado_lp_ros.pkl")
19
+ clf_combined = joblib.load(model_path)
20
+ Interfaz Gradio
21
+ El modelo se puede probar directamente en una interfaz de Gradio. La interfaz toma un texto de opini贸n como entrada y devuelve las etiquetas correspondientes.
22
+
23
+ python
24
+ Copiar c贸digo
25
+ import gradio as gr
26
+ import joblib
27
  import ftfy
28
  import re
29
  import torch
30
  import numpy as np
31
  from transformers import DistilBertTokenizer, DistilBertModel
32
+ from huggingface_hub import hf_hub_download
33
 
34
  def corregir_codificacion(texto):
35
  if isinstance(texto, str):
 
45
  class ClasificadorOpiniones:
46
  def __init__(self):
47
  model_path = hf_hub_download(repo_id="begoach1/opinion_classifier", filename="modelo_clasificador_reentrenado_lp_ros.pkl")
48
+ self.clf_combined = joblib.load(model_path)
49
  self.tokenizer = DistilBertTokenizer.from_pretrained('distilbert-base-multilingual-cased')
50
  self.model = DistilBertModel.from_pretrained('distilbert-base-multilingual-cased')
51
 
 
61
  resultado = dict(zip(etiquetas, prediccion[0]))
62
  return resultado
63
 
64
+ def clasificar(texto):
65
+ clasificador = ClasificadorOpiniones()
66
+ resultado = clasificador.clasificar_opinion(texto)
67
+ return resultado
68
+
69
+ iface = gr.Interface(
70
+ fn=clasificar,
71
+ inputs=gr.Textbox(lines=2, placeholder="Escribe tu opini贸n aqu铆..."),
72
+ outputs=gr.JSON(),
73
+ title="Clasificador de Opiniones Multietiqueta",
74
+ description="Ingresa un texto de opini贸n para obtener las etiquetas correspondientes."
75
+ )
76
+
77
+ iface.launch()