Contoh Algoritma LSI


LSI (Latent Semantic Indexing) dibuat untuk mendukung information retrieval dan memecahkan masalah ketidaksesuaian antara kamus pemakai dengan penulis dokumen. Asumsi yang mendasari LSI adalah terdapat sebuah struktur pokok atau “latent” yang mempresentasikan hubungan antar kata. LSI menerima sebuah vektor atau matrik dari sekumpulan dokumen, dimana setiap baris mewakili satu term (bisa kata atau frase), tiap kolom mewakili satu dokumen, dan tiap selnya akan berisi nilai bobot kata terhadap dokumen. Bobot dari kata tiap dokumen dapat berisi Term Frequency atau juga menggunakan TF-IDF (dalam contoh yang akan saya tuliskan mengasumsikan penggunaan TF).

LSI menggunakan SVD (Singular-Value Decomposition) untuk memodelkan relasi asosiatif antara term. Ide dasar SVD adalah menerima kumpulan data dengan dimensi dan variabel tinggi serta menguranginya ke dalam ruang dimensi yang berukuran lebih kecil untuk menampakkan lebih jelas sub struktur dari data asli dan mengurutkannya mulai dari paling bervariasi sampai dengan tidak bervariasi. Dalam SVD, sebuah rectangular matrix (matrik yang ukuran n x m tidak sama) terurai ke dalam perkalian (product) tiga matrik yang lain.

A = USVT

dimana matrik pertama (U) adalah matrik m x m left singular vector, sedangkan VT adalah matrik n x n right singular vector. Left dan Right Singular Vector adalah matrik orthogonal, di mana UTU=I, VTV=I. Kolom matrik U adalah orthonormal eigenvector dari AAT, sedangkan kolom matrik V adalah orthonormal eigenvector ATA. Matrik S merupakan matrik diagonal yang berisi akar pangkat eigenvalue dari matrik U atau V dalam urutan descending.

Saya akan mencoba menuliskan langkah-langkah perhitungan SVD berdasar contoh 3 buah string berikut :


D1 = Manajemen Sistem Informasi

D2 = Sistem Sumber Daya Manusia

D3 = Manajemen Informasi Penggajian

Berdasar ketiga dokumen tersebut, kita dapat membentuk sebuah matrix A sebagai berikut : Baca lebih lanjut

Iklan