Obliczanie podobieństwa dokumentów

Najbardziej popularne sposoby na obliczanie podobieństw dokumentów to: kosinus (cosine similarity) i odległość euklidesowa (euclidian distance).

Podobieństwo kosinusowe (cosine similarity)

Jest to po prostu obliczanie kąta pomiędzy dwoma punktami w przestrzeni względem centrum przestrzeni:

Wzór

\text{Kosinus}(A, B) = \frac{A \cdot B}{\|A\| \|B\|}

Przykład

Weźmy dla przykładu wektory z wpisu Bag of Words:

1,1,1,0,0
1,1,0,1,1
Obliczanie iloczynu wektorów
A \cdot B = (1 \cdot 1) + (1 \cdot 1) + (1 \cdot 0) + (0 \cdot 1) + (0 \cdot 1) = 1 + 1 + 0 + 0 + 0= 2
Obliczanie długości wektorów
\|A\| = \sqrt{1^2 + 1^2 + 1^2 + 0^2 + 0^2} = \sqrt{1 + 1 + 1 + 0 + 0} = \sqrt{3}
\|B\| = \sqrt{1^2 + 1^2 + 0^2 + 1^2 + 1^2} = \sqrt{1 + 1 + 0 + 1 + 1} = \sqrt{4}
Obliczanie kosinusa
\text{Podobieństwo Kosinus}(A, B) = \frac{2}{\sqrt{3} \cdot \sqrt{4}} \approx 0.57

Podobieństwo odległość euklidesowa (Euclidian distance similarity)

Jest to prostu obliczanie odległości pomiędzy dwoma punktami:

Wzór

\text{Podobieństwo Odległość Euklidesowa} = \frac{1}{1 + \text{Odległość Euklidesowa}}
\text{Odległość Euklidesowa (wektora p; wektora q)} = \sqrt{\sum_{i=1}^n (p_i - q_i)^2}

Przykład

Weźmy ponownie dla przykładu wektory z wpisu Bag of Words:

1,1,1,0,0
1,1,0,1,1
Obliczanie Odległości Euklidesowej

Na początku odejmujemy każdy element wektorów z osobna:

(1−1,1−1,1−0,0−1,0−1)=(0,0,1,−1,−1)

następnie każdy rezultat podnosimy do potęgi drugiej:

(0^2,0^2,1^2,−1^2,−1^2)=(0,0,1,1,1)

później sumujemy wszystkie wartości:

0+0+1+1+1=3

później pierwiastkujemy:

\sqrt{3}  \approx 1.73
Obliczanie podobieństwa odległości euklidesowej
\text{Podobieństwo Odległość Euklidesowa} = \frac{1}{1 + \sqrt{3}} \approx 0.36

Pozostaw komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *