PHP Classes

How to Use a PHP Text Analisys Application to Visualize Semantic Embeddings Using the Package Embeddings Space: Generate and view semantic embeddings

Recommend this page to a friend!
  Info   Documentation   Screenshots   View files Files   Install with Composer Install with Composer   Download Download   Reputation   Support forum   Blog    
Last Updated Ratings Unique User Downloads Download Rankings
2026-02-17 (5 days ago) RSS 2.0 feedNot yet rated by the usersTotal: Not yet counted Not yet ranked
Version License PHP version Categories
embeddings_space 1.0MIT/X Consortium ...5PHP 5, Text processing, Artificial in..., A...
Description 

Author

This package can generate and view semantic embeddings.

It provides an application with a page that lets users type some words to be added to the semantic analysis.

The application will use a LLM model to convert text strings into vectors that are rendered to a 3D diagram displayed on the same page.

The user can zoom and rotate the chart to inspect similarity.

Picture of Rodrigo Faustino
  Performance   Level  
Name: Rodrigo Faustino <contact>
Classes: 45 packages by
Country: Brazil Brazil
Age: 42
All time rank: 2330158 in Brazil Brazil
Week rank: 1 Up
Innovation award
Innovation award
Nominee: 28x

Winner: 6x

Instructions

Please read this document to learn how to set up and run the semantic embeddings' visualization application.

Documentation

RAG Embedding Explorer (3D Visualization)

Este projeto é uma ferramenta experimental para geração, armazenamento e visualização de Embeddings Semânticos em um espaço tridimensional.

O sistema utiliza uma arquitetura de Edge AI, onde a inferência do modelo de linguagem ocorre diretamente no navegador do cliente (via WebAssembly/ONNX), reduzindo a latência e custos de servidor, enquanto o PHP atua como orquestrador de persistência.

Visualização 3D dos Embeddings > Visualização da distribuição semântica de palavras após redução de dimensionalidade (t-SNE).

Visualização 3D dos Embeddings > Visualização da distribuição semântica de palavras após redução de dimensionalidade (t-SNE).

Objetivo

Desenvolvido no contexto da disciplina de IA Generativa do PPGI Uninove (Mestrado/Doutorado em Informática e Gestão do Conhecimento), este projeto visa: 1. Desmistificar o funcionamento de Vetores Densos (Embeddings). 2. Visualizar matematicamente a proximidade semântica entre termos. 3. Aplicar algoritmos de redução de dimensionalidade (t-SNE) para projetar vetores de 384+ dimensões em um espaço 3D navegável.

Stack Tecnológico

  • Core AI: Transformers.js (Execução de modelos ONNX no browser).
  • Visualização: Plotly.js (Gráficos 3D interativos).
  • Algoritmos: t-SNE (t-Distributed Stochastic Neighbor Embedding) e Similaridade de Cosseno.
  • Armazenamento: localstorage.
  • Frontend: JavaScript (ES6 Modules).

Arquitetura

  1. Ingestão: O usuário digita um termo.
  2. Tokenização & Embedding: O navegador baixa/carrega o modelo `paraphrase-multilingual-MiniLM-L12-v2` e converte o texto em um vetor de 384 dimensões (float32).
  3. Armazenamento: O vetor é enviado para armazenamento local (simulado em memória ou persistido via PHP).
  4. Redução: Um algoritmo t-SNE roda em background para calcular as coordenadas (x, y, z) baseadas na proximidade dos vetores originais.
  5. Renderização: O Plotly plota os pontos, permitindo zoom, rotação e inspeção de similaridade.

Instalação e Uso

Pré-requisitos

  • Servidor Web Local (Apache/Nginx ou PHP Built-in Server).
  • Navegador moderno com suporte a WebAssembly.

Passo a Passo

  1. Clone o repositório:
    git clone https://github.com/faustinopsy/embeddings_space.git
    cd embeddings_space
    
  2. Estrutura de Modelos (Para execução Offline/Local):
    Para evitar dependência externa a cada reload, baixe os arquivos do modelo no Hugging Face e organize assim:
    /models
      ??? Xenova
          ??? paraphrase-multilingual-MiniLM-L12-v2
              ??? config.json
              ??? tokenizer.json
              ??? tokenizer_config.json
              ??? special_tokens_map.json
              ??? onnx
                  ??? model_quantized.onnx
    
  3. Execute o Servidor:
    Se tiver o PHP instalado:
    php -S localhost:8000
    
  4. Acesse: Abra `http://localhost:8000` no seu navegador.

Modelos Suportados

O código está otimizado para modelos multilíngues para garantir a correta aproximação semântica em Português: * Recomendado: Xenova/paraphrase-multilingual-MiniLM-L12-v2 * Alternativa leve: Xenova/all-MiniLM-L6-v2 (Melhor para Inglês)

Funcionalidades

  • [x] Geração de Embeddings Client-Side.
  • [x] Visualização 3D interativa.
  • [x] Cálculo de Similaridade de Cosseno real (baseado no vetor denso, não na projeção 3D).
  • [x] Comparação visual de termos (Highlight e Distância).

Licença

Este projeto está sob a licença MIT. Sinta-se livre para estudar e modificar.

Desenvolvido por faustinopsy


Screenshots (2)  
  • img/dim.png
  • img/linguagens.png
  Files folder image Files (17)  
File Role Description
Files folder imagejs (5 files)
Files folder imagemodels (1 directory)
Accessible without login Plain text file index.html Data Visualization HTML page
Plain text file MicroVectorDB.php Class Class source
Accessible without login Plain text file readme.md Doc. Documentation
Accessible without login Plain text file salvar_vetor.php Appl. Application script
Accessible without login Plain text file style.css Data Auxiliary data

  Files folder image Files (17)  /  js  
File Role Description
  Accessible without login Plain text file local-db.js Data Auxiliary data
  Accessible without login Plain text file plotly-2.27.0.min.js Data Auxiliary data
  Accessible without login Plain text file script.js Data Auxiliary data
  Accessible without login Plain text file transformers.js Data Auxiliary data
  Accessible without login Plain text file tsne.js Data Auxiliary data

  Files folder image Files (17)  /  models  
File Role Description
Files folder imageXenova (1 directory)

  Files folder image Files (17)  /  models  /  Xenova  
File Role Description
Files folder imageall-MiniLM-L6-v2 (4 files, 1 directory)

  Files folder image Files (17)  /  models  /  Xenova  /  all-MiniLM-L6-v2  
File Role Description
Files folder imageonnx (1 file)
  Accessible without login Plain text file config.json Data Auxiliary data
  Accessible without login Plain text file special_tokens_map.json Data Auxiliary data
  Accessible without login Plain text file tokenizer.json Data Auxiliary data
  Accessible without login Plain text file tokenizer_config.json Data Auxiliary data

  Files folder image Files (17)  /  models  /  Xenova  /  all-MiniLM-L6-v2  /  onnx  
File Role Description
  Accessible without login Plain text file vocab.txt Doc. Documentation

The PHP Classes site has supported package installation using the Composer tool since 2013, as you may verify by reading this instructions page.
Install with Composer Install with Composer
 Version Control Unique User Downloads  
 100%
Total:0
This week:0