
Cosine Similarity adalah ‘ukuran kesamaan’, salah satu implementasinya adalah pada kasus mencari tingkat kemiripan teks pada teks itu sendiri atau sentence/kalimat . Kemiripan teks bisa kita gunakan untuk membuat steganografi ataupun steganalysis linguistik.

Rumus Cosine Similarity
Analogi:

Contoh kasus:
Di berikan dua buah dokumen dengan masing-masing kalimat.
D1= the best Italian restaurant enjoy the best pasta
D2= the best the best American restaurant
Daftar Kata | D1 | D2 |
the | 2 | 2 |
best | 2 | 2 |
italian | 1 | 0 |
american | 0 | 1 |
restaurant | 1 | 1 |
enjoy | 1 | 0 |
pasta | 1 | 0 |
Vector:
D1 = [2,2,1,0,1,1,1]
D2 = [2,2,0,1,1,0,0]
Berdasarkan rumus dapat kita hitung:
\(= \frac{\left(2×2\right)+\left(2×2\right)+\left(1×0\right)+\left(0x1\right)+\left(1×1\right)+\left(1×0\right)+\left(1×0\right)}{\sqrt{2^2+2^2+1^2+0^2+1^2+1^2+1^2}x\sqrt{2^2+2^2+0^2+1^2+1^2+0^2+0^2}}\) \(= 0.8215838362577491 \)Program Code:
import numpy as np from sklearn.metrics.pairwise import cosine_similarity # vectors a = np.array([2,2,1,0,1,1,1]) b = np.array([2,2,0,1,1,0,0]) dot = np.dot(a, b) norma = np.linalg.norm(a) normb = np.linalg.norm(b) cos = dot / (norma * normb) print(cos) #output: 0.8215838362577491
Cosine Distance hanya ditentukan untuk nilai positif. Ini juga bukan jarak yang tepat karena ketidaksetaraan Schwartz tidak berlaku. Jika nilai negatif ditemui dalam input, jarak cosinus tidak akan dihitung. Namun, persamaan cosinus akan dihitung.


dimana adalah Cosine Distance dan
adalah Cosine Similarity, jadi Cosine distance adalah 1 – Hasil Cosine Distance.
Berdasarkan rumus dan hitungan diatas:
1 – 0.8215838362577491 = 0.1784161637422509
Program Code:
from scipy.spatial import distance distance.cosine([2,2,1,0,1,1,1], [2,2,0,1,1,0,0]) #output: 0.1784161637422509
Oke, jadi begitu paham pasti? if yes ‘good’, if no ‘oke smngat blajar lgi’
Nah pada kasus dengan banyak data dokumen/corpus, nilai tertinggi kesamaan teks bisa menjadi hasil kata yang dicari, ini pada contoh kasus steganografi menggunakan teks subtitusi sinonim.