Una biblioteca de Python para modelar temas que combina embeddings de transformers con c-TF-IDF para obtener temas interpretables a partir de texto.
TutteInstitute/evoc
Una biblioteca de Python para agrupar rápidamente en CPU grandes vectores de embeddings de alta dimensionalidad, con una API al estilo de scikit-learn.
- Estrellas
- 356
- Forks
- 22
- Issues abiertos
- 12
- Último commit
- hace 8 días
¿Qué es?
EVōC (Embedding Vector Oriented Clustering) es una biblioteca para agrupar grandes conjuntos de datos de vectores de embeddings de alta dimensionalidad, como vectores CLIP o salidas de modelos de embeddings de sentence-transformers, OpenAI o Cohere. Está diseñada para sustituir una canalización de UMAP más HDBSCAN en esta tarea, con el objetivo de ofrecer una buena calidad de agrupamiento con menos hiperparámetros y mucho menos tiempo de ejecución.
La biblioteca sigue la API de scikit-learn, por lo que puede usarse en cualquier lugar donde se utilicen otros algoritmos de agrupamiento de sklearn. Además de un único conjunto de etiquetas, genera varias capas de grupos con distintos niveles de granularidad, permite extraer una jerarquía entre esas capas y marca los vectores duplicados o casi duplicados. También acepta directamente vectores cuantizados int8 o binarios.
EVōC se puede instalar desde PyPI y depende de numpy, scikit-learn, numba, tqdm y tbb. El proyecto está en una beta inicial, por lo que sus interfaces pueden cambiar. La extracción de grupos se basa en el método PLSCAN descrito en un artículo de arXiv de 2025.
Funciones clave
- 01Agrupa rápidamente vectores de embeddings en CPU.
- 02Genera varias capas de grupos, desde las de granularidad fina hasta las más amplia.
- 03Extrae una jerarquía de grupos entre las distintas capas.
- 04Detecta vectores duplicados y casi duplicados.
- 05Funciona directamente con embeddings cuantizados int8 y binarios.
- 06Usa una interfaz fit_predict compatible con scikit-learn.
Casos de uso
- Agrupar embeddings de CLIP o de oraciones por temas en grandes colecciones de texto o imágenes.
- Crear mapas de temas por capas que permitan pasar de temas generales a otros más específicos.
- Encontrar elementos duplicados o casi duplicados en un corpus de embeddings.
Inicio rápido
- 1
Instala EVōC desde PyPI con pip
pip install evoc - 2
Importa EVōC y agrupa tus vectores de embeddings con fit_predict
import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
Antes de usarlo
- La biblioteca está en una fase beta inicial, así que pueden surgir problemas y dejar de funcionar algunas cosas.
- El algoritmo aún no se ha publicado, por lo que el README te pide que cites el artículo sobre PLSCAN en su lugar.
Temas
Preguntas frecuentes
- ¿Qué es evoc?
- Una biblioteca de Python para agrupar rápidamente en CPU grandes vectores de embeddings de alta dimensionalidad, con una API al estilo de scikit-learn. EVōC (Embedding Vector Oriented Clustering) es una biblioteca para agrupar grandes conjuntos de datos de vectores de embeddings de alta dimensionalidad, como vectores CLIP o salidas de modelos de embeddings de sentence-transformers, OpenAI o Cohere. Está diseñada para sustituir una canalización de UMAP más HDBSCAN en esta tarea, con el objetivo de ofrecer una buena calidad de agrupamiento con menos hiperparámetros y mucho menos tiempo de ejecución.
- ¿evoc es gratuito? ¿Qué licencia tiene?
- evoc es open source bajo la licencia BSD-2-Clause. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿evoc sigue mantenido?
- Mantenimiento activo. El último commit de evoc fue el 29 oct 2026.
- ¿Para qué puedo usar evoc?
- Agrupar embeddings de CLIP o de oraciones por temas en grandes colecciones de texto o imágenes. Crear mapas de temas por capas que permitan pasar de temas generales a otros más específicos. Encontrar elementos duplicados o casi duplicados en un corpus de embeddings.
- ¿Cómo se instala evoc?
- Instala EVōC desde PyPI con pip: pip install evoc Importa EVōC y agrupa tus vectores de embeddings con fit_predict: import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
- ¿Dónde consigo evoc?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/TutteInstitute/evoc
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
Orange es una herramienta de programación visual de código abierto para minería, análisis y visualización de datos, basada en flujos de trabajo de arrastrar y soltar.
Biblioteca de C++ con bindings para Python para buscar similitudes y agrupar vectores densos de forma eficiente, con aceleración opcional mediante GPU.
Biblioteca header-only de C++ acelerada con CUDA y wrappers de Python para primitivas reutilizables de machine learning, álgebra lineal y recuperación de información en GPUs NVIDIA.
Una biblioteca Ruby para crear aplicaciones con LLM, con una interfaz unificada para varios proveedores, bases de datos vectoriales, pipelines RAG y asistentes.
Acelerador multiplataforma para ejecutar modelos de ML exportados al formato ONNX, con compatibilidad para entrenar mediante scripts de PyTorch.