Biblioteca Python de modelagem de tópicos que combina embeddings de transformers com c-TF-IDF para gerar tópicos interpretáveis a partir de textos.
TutteInstitute/evoc
Biblioteca Python para agrupar rapidamente, na CPU, grandes vetores de embeddings de alta dimensionalidade, com uma API no estilo scikit-learn.
- Estrelas
- 356
- Forks
- 22
- Issues abertas
- 12
- Último commit
- há 9 dias
O que é?
EVōC (Embedding Vector Oriented Clustering) é uma biblioteca para agrupar grandes conjuntos de dados com vetores de embeddings de alta dimensionalidade, como vetores CLIP ou saídas de modelos de embeddings do sentence-transformers, OpenAI ou Cohere. Ela foi projetada para substituir um pipeline de UMAP mais HDBSCAN nessa tarefa, buscando uma boa qualidade de agrupamento com menos hiperparâmetros e muito menos tempo de execução.
A biblioteca segue a API do scikit-learn, então pode ser usada em qualquer lugar onde outros algoritmos de agrupamento do scikit-learn são usados. Além de um único conjunto de rótulos, ela produz várias camadas de clusters em diferentes granularidades, permite extrair uma hierarquia entre essas camadas e sinaliza vetores duplicados ou quase duplicados. Ela também aceita diretamente vetores quantizados em int8 ou binários.
EVōC pode ser instalado pelo PyPI e depende de numpy, scikit-learn, numba, tqdm e tbb. O projeto está em uma fase beta inicial, então suas interfaces podem mudar. A extração de clusters é baseada no método PLSCAN, descrito em um artigo do arXiv de 2025.
Recursos principais
- 01Agrupa vetores de embeddings rapidamente na CPU.
- 02Produz várias camadas de clusters, da granularidade mais fina à mais ampla.
- 03Extrai uma hierarquia de clusters entre as camadas.
- 04Detecta vetores duplicados e quase duplicados.
- 05Trabalha diretamente com embeddings quantizados em int8 e binários.
- 06Usa uma interface fit_predict compatível com scikit-learn.
Casos de uso
- Agrupar embeddings de CLIP ou de frases em tópicos para grandes coleções de textos ou imagens.
- Criar mapas de tópicos em camadas, que vão de tópicos amplos a tópicos mais específicos.
- Encontrar itens duplicados ou quase duplicados em um corpus de embeddings.
Início rápido
- 1
Instale o EVōC do PyPI com pip
pip install evoc - 2
Importe o EVōC e agrupe seus vetores de embedding com fit_predict
import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
Antes de usar
- A biblioteca ainda está no início da fase beta, então problemas podem surgir e coisas podem parar de funcionar.
- O algoritmo ainda não foi publicado, então o README pede que você cite o artigo sobre PLSCAN.
Tópicos
Perguntas frequentes
- O que é evoc?
- Biblioteca Python para agrupar rapidamente, na CPU, grandes vetores de embeddings de alta dimensionalidade, com uma API no estilo scikit-learn. EVōC (Embedding Vector Oriented Clustering) é uma biblioteca para agrupar grandes conjuntos de dados com vetores de embeddings de alta dimensionalidade, como vetores CLIP ou saídas de modelos de embeddings do sentence-transformers, OpenAI ou Cohere. Ela foi projetada para substituir um pipeline de UMAP mais HDBSCAN nessa tarefa, buscando uma boa qualidade de agrupamento com menos hiperparâmetros e muito menos tempo de execução.
- evoc é gratuito? Qual é a licença?
- evoc é open source sob a licença BSD-2-Clause. Confira os termos da licença antes de usá-lo em produtos comerciais.
- evoc ainda é mantido?
- Manutenção ativa. O último commit de evoc foi em 29 de out. de 2026.
- Para que posso usar evoc?
- Agrupar embeddings de CLIP ou de frases em tópicos para grandes coleções de textos ou imagens. Criar mapas de tópicos em camadas, que vão de tópicos amplos a tópicos mais específicos. Encontrar itens duplicados ou quase duplicados em um corpus de embeddings.
- Como instalar evoc?
- Instale o EVōC do PyPI com pip: pip install evoc Importe o EVōC e agrupe seus vetores de embedding com fit_predict: import evoc clusterer = evoc.EVoC() cluster_labels = clusterer.fit_predict(data)
- Onde consigo evoc?
- O código-fonte e as instruções de instalação estão no GitHub: https://github.com/TutteInstitute/evoc
Resumo gerado por IA a partir do README do projeto. As estatísticas do GitHub são atualizadas diariamente.
Projetos relacionados
Orange é uma ferramenta visual de código aberto para mineração, análise e visualização de dados, com fluxos de trabalho criados por arrastar e soltar.
Biblioteca C++ com bindings para Python que permite fazer busca por similaridade e clustering eficientes de vetores densos, com aceleração opcional por GPU.
Biblioteca C++ header-only acelerada por CUDA, com wrappers em Python de primitivas reutilizáveis para machine learning, álgebra linear e recuperação de informação em GPUs NVIDIA.
Biblioteca Ruby para criar aplicações com LLMs, com uma interface unificada para diversos provedores, bancos de dados vetoriais, pipelines RAG e assistentes.
Acelerador multiplataforma para executar modelos de ML exportados no formato ONNX, com suporte ao treinamento de scripts do PyTorch.