metadata
language: es
tags:
- sentence-transformers
- embeddings
- education
pipeline_tag: feature-extraction
inference: true
model-index:
- name: modelo-recomendador-carreras
results:
- task:
type: feature-extraction
dataset:
type: custom
name: Programas Académicos
metrics:
- type: similarity
value: 0.92
Base model sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2
🎓 Modelo Recomendador de Carreras
Este modelo recomienda programas académicos en función de lo que un estudiante diga que quiere ser. Usa paraphrase-multilingual-MiniLM-L12-v2
de SentenceTransformer
para encontrar carreras afines a una intención escrita en lenguaje natural.
🧠 ¿Cómo funciona?
Se combinan columnas del dataset educativo oficial (como el nombre del programa, área de conocimiento, nivel de formación, etc.) para construir descripciones que son embebidas semánticamente. Luego, al recibir un prompt como "quiero ser desarrollador"
, se calcula la similitud y se devuelve lo más relevante.
⚙️ ¿Cómo usarlo?
from sentence_transformers import SentenceTransformer
import numpy as np
import pandas as pd
import pickle
from io import BytesIO
import requests
# Cargar modelo base
modelo_st = SentenceTransformer("all-MiniLM-L6-v2")
# Cargar archivos desde Hugging Face
base_url = "https://huggingface.co/Daga2001/modelo-recomendador-carreras/resolve/main/"
embeddings = pickle.load(BytesIO(requests.get(base_url + "embeddings.pkl").content))
df = pd.read_csv(base_url + "textos.csv")
def recomendar(prompt, top_k=5):
query_emb = modelo_st.encode(prompt)
sims = np.dot(embeddings, query_emb) / (np.linalg.norm(embeddings, axis=1) * np.linalg.norm(query_emb))
top_idx = np.argsort(sims)[::-1][:top_k]
return df.iloc[top_idx]
recomendar("quiero ser desarrollador")
📚 Datos utilizados
El modelo fue construido usando datos oficiales de programas académicos en Colombia, conteniendo campos como:
- NOMBRE_DEL_PROGRAMA
- CAMPO_DETALLADO
- ÁREA_DE_CONOCIMIENTO
- NIVEL_DE_FORMACIÓN
- Entre otros
🧾 Licencia
MIT