Proyek ini dibuat untuk memahami bagaimana berbagai teks yang berbeda dalam ruang multi-dimensi. Ini adalah konsep penting dalam tugas pemrosesan bahasa alami (NLP) seperti klasifikasi teks, pengelompokan, dan sistem rekomendasi.

Proyek ini adalah bagian dari Llamapp
Vektor Sederhana adalah aplikasi web yang dirancang untuk memvisualisasikan embeddings vektor. Proyek ini menyediakan antarmuka yang ramah pengguna untuk memasukkan teks, menghasilkan embeddings vektor, dan memvisualisasikan kesamaannya menggunakan plot interaktif. Inti dari aplikasi ini menunjukkan konsep kesamaan kosinus antar vektor, membuatnya lebih mudah untuk memahami bagaimana berbagai jenis teks yang berbeda berada dalam ruang multi-dimensi.
Vektor embeddings adalah representasi numerik dari teks yang menangkap makna semantik dalam ruang dimensi tinggi. Mereka digunakan dalam berbagai tugas pemrosesan bahasa alami (NLP) seperti klasifikasi teks, pengelompokan, dan sistem rekomendasi. Setiap vektor terdiri dari beberapa komponen yang menyandikan informasi tentang fitur teks.
Kesamaan kosinus adalah metrik yang digunakan untuk mengukur seberapa mirip dua vektor, berdasarkan pada cosinus sudut di antara mereka. Ini berkisar dari -1 (benar -benar berbeda) hingga 1 (sama sekali mirip). Ini banyak digunakan dalam analisis teks untuk menentukan seberapa serupa dua bagian teks didasarkan pada representasi vektornya.
Berikut adalah contoh sederhana tentang bagaimana kesamaan kosinus bekerja dengan vektor dasar:
function calculateCosineSimilarity ( vec1 , vec2 ) {
const dotProduct = vec1 . reduce ( ( acc , val , idx ) => acc + val * vec2 [ idx ] , 0 ) ;
const magnitude1 = Math . sqrt ( vec1 . reduce ( ( acc , val ) => acc + val * val , 0 ) ) ;
const magnitude2 = Math . sqrt ( vec2 . reduce ( ( acc , val ) => acc + val * val , 0 ) ) ;
return dotProduct / ( magnitude1 * magnitude2 ) ;
}
// Example vectors
const vectorA = [ 1 , 2 , 3 ] ;
const vectorB = [ 4 , 5 , 6 ] ;
const similarity = calculateCosineSimilarity ( vectorA , vectorB ) ;
console . log ( `Cosine Similarity: ${ similarity . toFixed ( 2 ) } ` ) ; // Output: Cosine Similarity: 0.9746 Saat memvisualisasikan embedding vektor, terutama ketika mengandung sejumlah besar item, grafik dapat menjadi terlalu berkerumun dan sulit untuk ditafsirkan. Untuk mengatasi ini, fungsi smoothing digunakan.
Fungsi smoothing membantu mengurangi kebisingan dalam data dengan rata -rata nilai pada ukuran jendela yang ditentukan. Ini membuat grafik lebih mudah dibaca dan memungkinkan visualisasi yang lebih baik dari tren keseluruhan dalam data.
Beginilah fungsi smoothing diimplementasikan dalam aplikasi:
const smoothData = ( data , windowSize ) => {
const smoothed = [ ] ;
for ( let i = 0 ; i < data . length ; i ++ ) {
const start = Math . max ( 0 , i - Math . floor ( windowSize / 2 ) ) ;
const end = Math . min ( data . length , i + Math . floor ( windowSize / 2 ) + 1 ) ;
const window = data . slice ( start , end ) ;
const average = window . reduce ( ( sum , val ) => sum + val , 0 ) / window . length ;
smoothed . push ( average ) ;
}
return smoothed ;
} ;Smoothing dapat dinyalakan atau dimatikan menggunakan kotak centang di UI, memberikan fleksibilitas kepada pengguna.
Ollama dan model embalitas nomic-text
http://localhost:11434 .nomic-embed-text di terminal dengan menelepon ollama pull nomic-embed-text
Ollama membantu dalam menjalankan model bahasa secara lokal, besar dan kecil. Nomic-Embed-Text ISA Model Embedding Terbuka Berkinerja Tinggi Dengan Jendela Konteks Token Besar.
Instal Node.js dan NPM
Klon Repositori:
git clone www.github.com/rajatasusual/realtime-vector-embeddings.git
cd realtime-vector-embeddingsInstal dependensi:
npm installJalankan server:
npm run cli Mulailah mengetik di terminal untuk memasukkan teks dan mendapatkan embeddings vektor. Hasil dan plot akan disimpan sebagai embedding_plot.png di direktori saat ini.
File env dapat ditemukan di direktori root proyek dengan pengaturan default
PORT=3000
EMBEDDINGS_MODEL=nomic-embed-text
EMBEDDINGS_BASE_URL=http://localhost:11434
SMOOTH=TRUE

Mulai server web :
npm startIni akan memulai server dengan port default 3000.
Buka index.html .
Gunakan bidang input untuk mengetik teks dan klik "Kirim" untuk menghasilkan embeddings vektor. Hasilnya akan ditampilkan pada grafik, dan Anda dapat berinteraksi dengannya untuk melihat kesamaan.
Opsi Smoothing : Gunakan kotak centang "halus" untuk menghidupkan atau mematikan untuk visualisasi grafik yang lebih baik.
Proyek ini dilisensikan di bawah lisensi MIT. Lihat file lisensi untuk lebih jelasnya.