Clasificador de Tipos de Comida
Este es un modelo de clasificación de textos que predice el tipo de comida basado en su descripción. Los tipos de comida disponibles son: española, italiana y japonesa.
Descripción
El modelo fue entrenado usando descripciones de platos de comida, y clasifica las descripciones en una de las tres categorías: española, italiana o japonesa.
Dataset
El modelo fue entrenado usando un dataset de descripciones de platos. Las descripciones están etiquetadas según el tipo de comida al que pertenecen. El dataset contiene platos representativos de la cocina española, italiana y japonesa.
Licencia
El modelo está disponible bajo la licencia CC-BY-NC-4.0. Esto significa que puedes usar el modelo de forma no comercial, pero debes dar crédito adecuado al creador original.
Código de Entrenamiento
El modelo fue entrenado utilizando el siguiente proceso:
- Carga de los datos: Se cargó un dataset que contiene descripciones de platos de comida desde Hugging Face.
- Preprocesamiento: Las descripciones de comida fueron transformadas en vectores numéricos utilizando
TfidfVectorizer, que toma en cuenta la importancia de las palabras dentro de los documentos. - Modelo de Clasificación: Se usó un clasificador de regresión logística (
LogisticRegression) para predecir el tipo de comida (española, italiana o japonesa). - Guardado del Modelo: El modelo entrenado se guardó utilizando la librería
joblibpara poder ser reutilizado sin necesidad de reentrenar.
Código utilizado para entrenar el modelo
import pandas as pd
from sklearn.pipeline import make_pipeline
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.linear_model import LogisticRegression
import joblib
# Cargar los datos directamente desde Hugging Face
url = "https://huggingface.co/datasets/iabd10/comidas/resolve/main/comidas.csv"
df = pd.read_csv(url)
# Verificar la distribución de clases
print("Distribución de clases:\n", df["tipo"].value_counts())
# Separar las características (descripción) y las etiquetas (tipo de comida)
X, y = df["descripcion"], df["tipo"]
# Crear un pipeline con un TfidfVectorizer y Logistic Regression
modelo = make_pipeline(TfidfVectorizer(), LogisticRegression(max_iter=200))
# Entrenar el modelo
modelo.fit(X, y)
# Guardar el modelo
joblib.dump(modelo, "clasificador_comidas.pkl")