Gensim: modelos Word2Vec y NLP en Python | Guía completa

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

¿Qué es Gensim y para qué sirve?

Gensim (Generate Similar) es una biblioteca de Python de alto nivel para vectorización de textos, modelado de temas y aprendizaje de representaciones distribuidas de palabras. Fue diseñada para trabajar de manera eficiente con grandes volúmenes de datos textuales sin necesidad de cargarlos completamente en memoria. La biblioteca es especialmente conocida por su soporte para los modelos Word2Vec, FastText y LDA (Latent Dirichlet Allocation).

Gensim se diferencia de otras bibliotecas por su enfoque en datos textuales no estructurados y su capacidad para procesar corpus de documentos que no caben en la memoria RAM. Esto la convierte en una herramienta ideal para analizar grandes colecciones de texto, como archivos de noticias, artículos científicos o redes sociales.

Principales funcionalidades de Gensim

Representaciones vectoriales de palabras

Gensim ofrece soporte completo para crear y trabajar con representaciones vectoriales de palabras, incluyendo Word2Vec, FastText y Doc2Vec. Estos modelos permiten convertir texto en vectores numéricos, preservando las relaciones semánticas entre las palabras.

Modelado de temas

La biblioteca incluye varios algoritmos para el modelado de temas:

  • LDA (Latent Dirichlet Allocation) — para descubrir temas ocultos en una colección de documentos
  • LSI (Latent Semantic Indexing) — para reducir la dimensionalidad y descubrir conceptos latentes
  • HDP (Hierarchical Dirichlet Process) — para determinar automáticamente el número de temas

Trabajo con corpus

Gensim permite trabajar eficientemente con grandes corpus de texto mediante procesamiento por flujo, lo que posibilita analizar datos que superan la memoria RAM disponible.

Cálculo de similitud

La biblioteca proporciona diversas métricas para calcular la similitud entre documentos, palabras y temas, incluyendo la similitud coseno y otras métricas semánticas.

Instalación y configuración básica

Instalación de la biblioteca

La instalación de Gensim se realiza de forma estándar a través de pip:

pip install gensim

Para trabajar con algunos modelos puede ser necesario instalar dependencias adicionales:

pip install gensim[complete]

Importación de los módulos principales

import gensim
from gensim.models import Word2Vec, FastText, LdaModel, Doc2Vec
from gensim.corpora.dictionary import Dictionary
from gensim.corpora import MmCorpus
from gensim.similarities import Similarity
from gensim.utils import simple_preprocess

Preparación de datos textuales

Tokenización y preprocesamiento

Gensim requiere documentos tokenizados en forma de lista de listas. Un preprocesamiento adecuado de los datos es fundamental para la calidad de los resultados:

import re
from gensim.utils import simple_preprocess

def preprocess_text(text):
    """Preprocesamiento de texto para Gensim"""
    # Eliminar caracteres especiales
    text = re.sub(r'[^a-zA-Záéíóúñ\s]', '', text)
    # Tokenización y conversión a minúsculas
    tokens = simple_preprocess(text, deacc=True)
    return tokens

documents = [
    "Gensim es una biblioteca útil para tareas de NLP.",
    "Soporta modelado de temas y embeddings de palabras.",
    "Modelos como Word2Vec y FastText están implementados."
]

# Preprocesamiento de documentos
texts = [preprocess_text(doc) for doc in documents]

Creación del diccionario y el corpus

# Creación del diccionario
dictionary = Dictionary(texts)

# Filtrado de valores extremos
dictionary.filter_extremes(no_below=2, no_above=0.5, keep_n=100000)

# Creación del corpus (representación bag-of-words)
corpus = [dictionary.doc2bow(text) for text in texts]

Trabajo con modelos Word

Recommendations