Downloads · 30 days
0
Andersoncrs/modelo_TF-IDF_CNB
modelo_TF-IDF_CNB is a text classification model from Andersoncrs. Use it when you need a label for a piece of text. It is set up for scikit-learn. The card lists the license as mit.
Este modelo ha sido entrenado para clasificar mensajes de texto, determinando si son válidos (ham) o si corresponden a mensajes de SPAM, basándose únicamente en el contenido del mensaje.
Downloads · 30 days
0
Access
Public
Updated Jul 6, 2026
Repo size
28.8 MB
Likes
0
Public
Click a slice to open those files.
.skops28.8 MB · 100%
From the Hugging Face model README
Este modelo ha sido entrenado para clasificar mensajes de texto, determinando si son válidos (ham) o si corresponden a mensajes de SPAM, basándose únicamente en el contenido del mensaje.
El conjunto de datos utilizado para llevar a cabo el entrenamiento del modelo ha sido ucirvine/sms_spam, el cual contiene mensajes SMS reales en el idioma inglés.
El modelo está compuesto por dos pasos principales:
TF-IDF (Term Frequency-Inverse Document Frequency): Primero se tokeniza cada palabra de cada mensaje SMS para, posteriormente, vectorizarla de acuerdo con el método TF-IDF. Este método consiste en asignar una puntuación a las palabras presentes en un texto con base en su frecuencia (número de veces que aparecen) dentro de un documento individual y dentro del corpus completo.
tfidf_sublinear_tf=True, se atenúa la influencia de la aparición desmedida de determinados términos mediante el siguiente ajuste logarítmico:Finalmente, obtenemos la puntuación definitiva multiplicando ambos términos:
$$TF\text{-}IDF(t, d) = TF(t, d) \times IDF(t)$$
Adicionalmente, el método TF-IDF hace uso de word\_tokenize de la librería NLTK para tokenizar los mensajes SMS mediante reglas estándar de la lingüística, separando contracciones del inglés de manera inteligente y aislando los signos de puntuación de las palabras, siendo este uno de los enfoques más recomendados para nuestro caso de estudio.
Complement Naive Bayes (CNB): Se ha seleccionado esta versión de Naive Bayes ya que es una extensión de Multinomial Naive Bayes diseñada específicamente para corregir los sesgos generados por conjuntos de datos con clases desbalanceadas. Consiste en hallar la probabilidad de que aparezca un término en el complemento de la clase objetivo. Resulta ideal para nuestro escenario, ya que la gran mayoría de los mensajes del conjunto de datos son válidos (ham), y tan solo una pequeña minoría ha sido etiquetada como SPAM.
A continuación, se detallan los hiperparámetros utilizados en cada uno de los pasos que conforman el pipeline del modelo:
| Hiperparámetro | Valor |
|---|---|
| memory | None |
| steps | [('tfidf', TfidfVectorizer(binary=True, max_df=0.9, ngram_range=(1, 2), sublinear_tf=True,tokenizer=<function word_tokenize at 0x75236ee85170>)), ('cnb', ComplementNB(alpha=0.5))] |
| transform_input | None |
| verbose | False |
| tfidf | TfidfVectorizer(binary=True, max_df=0.9, ngram_range=(1, 2), sublinear_tf=True,tokenizer=<function word_tokenize at 0x75236ee85170>) |
| cnb | ComplementNB(alpha=0.5) |
| tfidf__analyzer | word |
| tfidf__binary | True |
| tfidf__decode_error | strict |
| tfidf__dtype | <class 'numpy.float64'> |
| tfidf__encoding | utf-8 |
| tfidf__input | content |
| tfidf__lowercase | True |
| tfidf__max_df | 0.9 |
| tfidf__max_features | None |
| tfidf__min_df | 1 |
| tfidf__ngram_range | (1, 2) |
| tfidf__norm | l2 |
| tfidf__preprocessor | None |
| tfidf__smooth_idf | True |
| tfidf__stop_words | None |
| tfidf__strip_accents | None |
| tfidf__sublinear_tf | True |
| tfidf__token_pattern | (?u)\b\w\w+\b |
| tfidf__tokenizer | <function word_tokenize at 0x75236ee85170> |
| tfidf__use_idf | True |
| tfidf__vocabulary | None |
| cnb__alpha | 0.5 |
| cnb__class_prior | None |
| cnb__fit_prior | True |
| cnb__force_alpha | True |
| cnb__norm | False |
El modelo final fue escogido como el mejor de entre diversas configuraciones evaluadas, aplicando variaciones tanto en la matriz de extracción de características TF-IDF como en los hiperparámetros del clasificador Complement Naive Bayes. Para encontrar este conjunto óptimo, se utilizó una búsqueda en rejilla (Grid Search), con la finalidad de identificar la combinación precisa que maximizara el rendimiento de nuestra métrica de evaluación de acuerdo con la rejilla de parámetros definida.
Cabe aclarar un aspecto fundamental en nuestra estrategia de selección: la evaluación y elección del modelo definitivo se rigió bajo la regla de negocio de minimizar los falsos positivos a cambio de permitir un ligero incremento en los falsos negativos. Tomamos esta decisión considerando que, en un escenario de producción real, etiquetar erróneamente un mensaje válido (ham) como SPAM genera un impacto negativo severo debido al riesgo inminente de que el usuario pierda información crítica. Por el contrario, consideramos que el impacto de que unos pocos mensajes de SPAM logren filtrarse a la bandeja de entrada es considerablemente menor; si bien representa una ligera molestia para el usuario, no pone en peligro la pérdida de datos importantes.
Al utilizar este modelo en un escenario real, es fundamental tener en cuenta la siguiente limitación clave:
ucirvine/sms\_spam, el cual está compuesto en su totalidad por mensajes en el idioma inglés. Adicionalmente, tanto la etapa de extracción de características (TF-IDF) como las reglas gramaticales empleadas para la tokenización con NLTK han sido configuradas bajo los estándares lingüísticos del inglés. Por lo tanto, el modelo no es apto para analizar o clasificar mensajes en español u otros idiomas, ya que carece del vocabulario y las estructuras gramaticales necesarias para realizar una predicción precisa.A continuación, se adjunta la matriz de confusión obtenida al evaluar el modelo sobre el conjunto de prueba (test set):

Si tienes alguna pregunta, sugerencia o deseas conectar conmigo, no dudes en escribirme o visitar mis perfiles profesionales: