Come viene calcolato il metodo .similarity in SpaCy?


13

Non sono sicuro se questo è il sito dello stack giusto, ma qui va.

Come funziona il metodo .similiarity?

Wow spaCy è fantastico! Il suo modello tfidf potrebbe essere più semplice, ma w2v con una sola riga di codice ?!

Nel suo tutorial di 10 righe su spaCy andrazhribernik ci mostra il metodo .similarity che può essere eseguito su token, sents, blocchi di parole e documenti.

Dopo nlp = spacy.load('en')e doc = nlp(raw_text) possiamo fare domande di similitudine tra token e blocchi. Tuttavia, cosa viene calcolato dietro le quinte in questo .similaritymetodo?

SpaCy ha già incredibilmente semplice .vector, che calcola il vettore w2v come addestrato dal modello GloVe (quanto sarebbe bello .tfidfo un .fasttextmetodo?).

Il modello sta semplicemente calcolando la somiglianza del coseno tra questi due w2v, .vector, vettori o confrontando qualche altra matrice? I dettagli non sono chiari nella documentazione ; qualsiasi aiuto apprezzato!


1
"quanto sarebbe bello un metodo .tfidf o .fasttext?" i documenti forniscono un esempio di sostituzione dei vettori GloVe con FastText. Forse non è esattamente lo stesso di averli insieme. Github
Carl G,

Risposte:


12

Trovato la risposta, in breve, è sì:

Link al codice Souce

return numpy.dot(self.vector, other.vector) / (self.vector_norm * other.vector_norm)

Questa sembra la sua formula per il calcolo della somiglianza del coseno e i vettori sembrano essere creati con SpaCy, la .vectorcui documentazione dice che è stata addestrata dal modello w2v di GloVe.


6

Per impostazione predefinita è la somiglianza del coseno, con i vettori mediati sul documento per le parole mancanti.

Puoi anche personalizzarlo, impostando un hook su doc.user_hooks['similarity']. Questo componente della pipeline racchiude funzioni di somiglianza, semplificando la personalizzazione della somiglianza:

https://github.com/explosion/spaCy/blob/develop/spacy/pipeline.pyx#L50


Tecnicamente, sembra che tu sia collegato alla SentenceSegmenterstrategia.
Carl G,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.