No estoy seguro si este es el sitio de pila correcto, pero aquí va.
¿Cómo funciona el método .similiarity?
Wow SpaCy es genial! ¡Su modelo tfidf podría ser más fácil, pero w2v con solo una línea de código ?!
En su tutorial de 10 líneas sobre spaCy andrazhribernik nos muestra el método de similitud que se puede ejecutar en tokens, sents, fragmentos de palabras y documentos.
Después nlp = spacy.load('en')
y doc = nlp(raw_text)
podemos hacer consultas de similitud entre tokens y fragmentos. Sin embargo, ¿qué se calcula entre bastidores en este .similarity
método?
SPACY ya tiene el increíblemente simple .vector
, que calcula el vector w2v como entrenado a partir del modelo de guante (cómo sería un lugar fresco .tfidf
o .fasttext
ser método?).
¿El modelo simplemente calcula la similitud del coseno entre estos dos vectores w2v, .vector o compara alguna otra matriz? Los detalles no están claros en la documentación ; Cualquier ayuda apreciada!
fuente
Respuestas:
Encontré la respuesta, en resumen, es sí:
Enlace al Código Souce
Parece que es la fórmula para calcular la similitud del coseno y parece que los vectores se crearon con SpaCy,
.vector
que según la documentación está entrenada a partir del modelo w2v de GloVe.fuente
Por defecto es la similitud del coseno, con vectores promediados sobre el documento para las palabras que faltan.
También puede personalizar esto configurando un gancho en
doc.user_hooks['similarity']
. Este componente de canalización envuelve funciones de similitud, lo que facilita la personalización de la similitud:https://github.com/explosion/spaCy/blob/develop/spacy/pipeline.pyx#L50
fuente
SentenceSegmenter
estrategia.