Coseno di similitudine

Niente fonti!
Questa voce o sezione sugli argomenti informatica e matematica non cita le fonti necessarie o quelle presenti sono insufficienti.

La similarità del coseno, o cosine similarity, è una tecnica euristica per la misurazione della similitudine tra due vettori effettuata calcolando il coseno tra di loro, usata generalmente per il confronto di testi nell'estrazione di dati e nell'analisi testuale.

Calcolo e utilizzo

Dati due vettori di attributi numerici, A e B, il livello di similarità tra di loro è espresso utilizzando la formula

similarity = cos ( θ ) = A B A B . {\displaystyle {\text{similarity}}=\cos(\theta )={A\cdot B \over \|A\|\|B\|}.}

Un altro modo di indicare la formula, del tutto equivalente, è:

k = 1 n A ( k ) B ( k ) k = 1 n A ( k ) 2 k = 1 n B ( k ) 2 {\displaystyle {\frac {\sum _{k=1}^{n}A(k)B(k)}{{\sqrt {\sum _{k=1}^{n}A(k)^{2}}}{\sqrt {\sum _{k=1}^{n}B(k)^{2}}}}}}

Il valore di similitudine così definito è compreso tra -1 e +1, dove -1 indica una corrispondenza esatta ma opposta e +1 indica due vettori uguali.

Nel caso tipico del confronto fra testi il contenuto dei due vettori è la frequenza dei termini, ossia il numero di volte in cui una certa parola ricorre all'interno del testo. Il k {\displaystyle k} -simo elemento di ogni vettore conterrà dunque il numero di volte in cui la parola numerata con k ricorre nel testo, oppure 0 se non ricorre mai.

Nel caso dell'analisi dei testi, poiché le frequenze dei termini sono sempre valori positivi, si otterranno valori che vanno da 0 a +1, dove +1 indica che le parole contenute nei due testi sono le stesse (ma non necessariamente nello stesso ordine) e 0 che non c'è nessuna parola che appare in entrambi.

Per rendere più efficace il confronto, in genere, si eliminano le parole più corte e molto frequenti che servono a costruire le frasi, come e, che, ma, quindi e altre, che possono essere identificate velocemente con un'euristica appropriata. È possibile anche usare la similarità per riconoscere la lingua in cui è scritto un testo, senza ovviamente ignorare le parole corte e frequenti.

In genere, questa euristica viene usata per confrontare degli elementi che sono indicati da dei parametri il cui numero e significato non è noto a priori.

Nel caso in cui i coefficienti siano binari l'operazione si comporta esattamente come il calcolo del coefficiente di Jaccard. Si ha così il cosiddetto coefficiente di Tanimoto, che tra due vettori A {\displaystyle A} e B {\displaystyle B} è definito come

T ( A , B ) = A B A 2 + B 2 A B . {\displaystyle T(A,B)={A\cdot B \over \|A\|^{2}+\|B\|^{2}-A\cdot B}.}

Voci correlate

  • Distanza di Hamming
  • Correlazione (statistica)
  • Coefficiente di Jaccard
  • Information retrieval
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica