💬 NLP
💬 NLP

Word embeddings para preguntas similares en StackOverflow

Cuando un usuario escribe una pregunta en StackOverflow, el sistema debería detectar si ya existe una pregunta similar para evitar duplicados.

Problema

Cuando un usuario escribe una pregunta en StackOverflow, el sistema debería detectar si ya existe una pregunta similar para evitar duplicados. La búsqueda por palabras clave falla cuando dos preguntas usan vocabulario diferente pero significan lo mismo — se necesita similitud semántica.

Solución

Sistema de búsqueda de preguntas similares con word embeddings: Word2Vec de Google (preentrenado) y SentenceTransformers para sentence embeddings. El sistema representa cada pregunta como un vector denso y encuentra las más similares por distancia coseno.

Word2Vec y sentence embeddings

  • Word2Vec de Google: embeddings preentrenados en Google News — vectores de 300 dimensiones
  • Representación de preguntas: media ponderada de embeddings de palabras (TF-IDF como pesos)
  • SentenceTransformers: modelos que generan embeddings a nivel de oración — capturan semántica global
  • Entrenamiento de embeddings propios desde cero sobre el corpus de StackOverflow

Sistema de búsqueda y evaluación

  • Distancia coseno para medir similitud entre vectores de preguntas
  • Dada una pregunta nueva, devuelve las K preguntas más similares del corpus
  • Métricas de evaluación: Hits@K (si la pregunta correcta aparece en los K resultados) y DCG@K
  • Comparativa Word2Vec vs. SentenceTransformers en calidad de ranking de similitud

Más proyectos en NLP