Tidak yakin apakah ini situs tumpukan yang tepat, tetapi begini saja.
Bagaimana cara kerja metode .similiarity?
Wah spanya bagus! Model tfidf-nya bisa lebih mudah, tetapi w2v dengan hanya satu baris kode ?!
Dalam 10 baris tutorialnya di spaCy andrazhribernik, tunjukkan pada kami metode .similaritas yang dapat dijalankan pada token, sents, word chunks, dan docs.
Setelah nlp = spacy.load('en')
dan doc = nlp(raw_text)
kita bisa melakukan .similaritas kueri antara token dan potongan. Namun, apa yang sedang dihitung di balik layar dalam .similarity
metode ini ?
Spacy sudah memiliki sangat sederhana .vector
, yang menghitung vektor w2v sebagai dilatih dari model sarung tangan (bagaimana keren akan sebuah .tfidf
atau .fasttext
metode menjadi?).
Apakah model hanya menghitung kesamaan cosinus antara dua w2v, vektor, atau membandingkan beberapa matriks lain? Spesifikasinya tidak jelas dalam dokumentasi ; bantuan dihargai!
sumber
Jawaban:
Singkatnya, jawabannya adalah:
Tautan ke Kode Souce
Ini terlihat seperti rumus untuk menghitung persamaan cosinus dan vektor-vektor tampaknya dibuat dengan SpaCy's
.vector
yang menurut dokumentasi dilatih dari model w2v GloVe.sumber
Secara default itu adalah cosine similarity, dengan vektor dirata-rata di atas dokumen untuk kata-kata yang hilang.
Anda juga dapat menyesuaikan ini, dengan mengatur kait ke
doc.user_hooks['similarity']
. Komponen pipa ini membungkus fungsi kesamaan, sehingga mudah untuk menyesuaikan kesamaan:https://github.com/explosion/spaCy/blob/develop/spacy/pipeline.pyx#L50
sumber
SentenceSegmenter
strategi.