Jak obliczana jest metoda .similarity w SpaCy?


13

Nie jestem pewien, czy to jest odpowiednia strona stosu, ale proszę bardzo.

Jak działa metoda .similiarity?

Wow spaCy jest świetne! Jego model tfidf może być łatwiejszy, ale w2v z tylko jedną linią kodu ?!

W swoim 10-liniowym samouczku na temat spaCy andrazhribernik pokazuje nam metodę .similarity, którą można uruchamiać na tokenach, wysyłkach, fragmentach słów i dokumentach.

Po nlp = spacy.load('en')i doc = nlp(raw_text) możemy wykonać .podobne zapytania między tokenami a fragmentami. Co jednak oblicza się za kulisami w tej .similaritymetodzie?

SpaCy ma już niewiarygodnie prostą funkcję .vector, która oblicza wektor w2v zgodnie z treningiem z modelu GloVe (jak fajnie byłoby zastosować metodę .tfidflub .fasttextmetodę?).

Czy model po prostu oblicza podobieństwo cosinus między tymi dwoma w2v, .vector, wektorami lub porównuje jakąś inną macierz? Szczegóły nie są jasne w dokumentacji ; jakakolwiek pomoc doceniona!


1
„jak fajna byłaby metoda .tfidf lub .fasttext?” z Dokumenty stanowią przykład zastąpienie wektory rękawicy z Fasttekst. Być może nie jest to dokładnie to samo, co ich połączenie. Github
Carl G

Odpowiedzi:


12

Znalazłem odpowiedź, krótko mówiąc: tak:

Link do kodu Souce

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

Wygląda na to, że jest to wzór na obliczanie podobieństwa cosinusowego, a wektory wydają się być tworzone za pomocą SpaCy, .vectorktórego dokumentacja mówi, że jest wyuczona z modelu w2v GloVe.


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.