SpaCy में .similarity विधि की गणना कैसे की जाती है?


13

निश्चित नहीं है कि यह सही स्टैक साइट है, लेकिन यहाँ जाता है।

कैसे काम करता है।

वाह स्पासीजी बढ़िया है! इसका tfidf मॉडल आसान हो सकता है, लेकिन कोड की केवल एक पंक्ति के साथ w2v ?!

SpaCy और andrazhribernik के उनके 10 लाइन ट्यूटोरियल में हमें .similarity विधि है जो टोकन, संतों, शब्द विखंडू और डॉक्स पर चलाई जा सकती है।

के बाद nlp = spacy.load('en')और doc = nlp(raw_text) हम टोकन और विखंडू के बीच सामान्य प्रश्न कर सकते हैं। हालांकि, इस .similarityपद्धति में पर्दे के पीछे क्या गणना की जा रही है ?

Spacy पहले से ही अविश्वसनीय रूप से सरल है .vector, के रूप में दस्ताने मॉडल से प्रशिक्षित जो w2v वेक्टर गणना करता है (कैसे शांत एक हैं .tfidfया .fasttextतरीका हो?)।

क्या मॉडल केवल इन दो w2v, .vector, वैक्टर या कुछ अन्य मैट्रिक्स की तुलना करने के बीच कोसाइन समानता की गणना कर रहा है? दस्तावेज में विशिष्टता स्पष्ट नहीं हैं ; किसी भी मदद की सराहना की!


1
"कितना अच्छा होगा .tfidf या .Extext विधि?" डॉक्स FastText साथ दस्ताने वैक्टर की जगह का एक उदाहरण प्रदान करते हैं। यह शायद उनके साथ होने के समान नहीं है। जीथब
कार्ल जी।

जवाबों:


12

जवाब मिला, संक्षेप में, यह हाँ है:

Souce Code का लिंक

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

ऐसा लगता है कि इसकी गणना कॉस्मिक समानता के सूत्र के रूप में की गई है और वैक्टर स्पाकी के साथ बनाए गए प्रतीत होते हैं, .vectorजो कहता है कि डॉक्यूमेंटेशन का कहना है कि यह ग्लोवी के w2v मॉडल से प्रशिक्षित है।


6

डिफ़ॉल्ट रूप से यह कॉज़ेन समानता है, गायब शब्दों के लिए दस्तावेज़ों पर औसतन वैक्टर।

हुक को सेट करके आप इसे कस्टमाइज़ भी कर सकते हैं doc.user_hooks['similarity']। यह पाइपलाइन घटक समानता कार्यों को लपेटता है, जिससे समानता को अनुकूलित करना आसान हो जाता है:

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


तकनीकी रूप से, आप SentenceSegmenterरणनीति से जुड़े हुए प्रतीत होते हैं ।
कार्ल जी।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.