Perbedaan Cosine Similarity dan Cosine Distance

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:

The difference between Euclidean distance and cosine similarity ...
Cosine

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 KataD1D2
the22
best22
italian10
american01
restaurant11
enjoy10
pasta10
Word Frequently

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.

Rumus Cosine Distance
Turunan Rumus Cosine Distance

dimana D_C adalah Cosine Distance dan S_ {C}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.

Leave a Reply

Your email address will not be published. Required fields are marked *