Como é calculado o método .similarity no SpaCy?


13

Não tenho certeza se este é o site de pilha certo, mas aqui vai.

Como o método .similiarity funciona?

Uau spa é ótimo! Seu modelo tfidf poderia ser mais fácil, mas w2v com apenas uma linha de código ?!

Em seu tutorial de 10 linhas sobre spaCy, o andrazhribernik mostra o método .similarity que pode ser executado em tokens, sents, pedaços de palavras e documentos.

Depois nlp = spacy.load('en')e doc = nlp(raw_text) podemos fazer consultas de similaridade entre tokens e chunks. No entanto, o que está sendo calculado nos bastidores neste .similaritymétodo?

O SpaCy já possui o incrivelmente simples .vector, que calcula o vetor w2v conforme treinado no modelo GloVe (quão legal seria um método .tfidfou .fasttext?).

O modelo está simplesmente computando a semelhança de cosseno entre esses dois vetores w2v, .vector ou comparando alguma outra matriz? Os detalhes não são claros na documentação ; qualquer ajuda apreciada!


1
"quão legal seria um método .tfidf ou .fasttext?" os documentos fornecem um exemplo de substituição dos vetores GloVe pelo FastText. Talvez não seja exatamente o mesmo que tê-los juntos. Github
Carl G

Respostas:


12

Encontrou a resposta, em suma, é sim:

Link para o código da fonte

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

Parece que é a fórmula para calcular a semelhança de cossenos e os vetores parecem ter sido criados com o SpaCy, .vectorcuja documentação diz que é treinada a partir do modelo w2v do GloVe.


6

Por padrão, é a semelhança de cosseno, com vetores calculados sobre o documento em busca de palavras ausentes.

Você também pode personalizar isso, definindo um gancho para doc.user_hooks['similarity']. Esse componente de pipeline agrupa funções de similaridade, facilitando a personalização da similaridade:

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


Tecnicamente, você parece ter vinculado à SentenceSegmenterestratégia.
Carl G
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.