पायथन में कोसाइन समानता की गणना कैसे करें
कोसाइन समानता एक आंतरिक उत्पाद स्थान के दो वैक्टरों के बीच समानता का एक माप है।
दो वैक्टर, ए और बी के लिए, कोसाइन समानता की गणना निम्नानुसार की जाती है:
कोसाइन समानता = ΣA i B i / (√ΣA i 2 √ΣB i 2 )
यह ट्यूटोरियल बताता है कि NumPy लाइब्रेरी के फ़ंक्शंस का उपयोग करके पायथन में वैक्टर के बीच कोसाइन समानता की गणना कैसे करें।
पायथन में दो वैक्टरों के बीच कोसाइन समानता
निम्नलिखित कोड दिखाता है कि पायथन में दो सरणियों के बीच कोसाइन समानता की गणना कैसे करें:
from numpy import dot from numpy. linalg import norm #define arrays a = [23, 34, 44, 45, 42, 27, 33, 34] b = [17, 18, 22, 26, 26, 29, 31, 30] #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim 0.965195008357566
दोनों तालिकाओं के बीच कोसाइन समानता 0.965195 निकली।
ध्यान दें कि यह विधि किसी भी लम्बाई के दो सरणियों पर काम करेगी:
import numpy as np from numpy import dot from numpy. linalg import norm #define arrays a = np.random.randint(10, size= 100 ) b = np.random.randint(10, size= 100 ) #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim 0.7340201613960431
हालाँकि, यह केवल तभी काम करता है जब दो सरणियाँ समान लंबाई की हों:
import numpy as np from numpy import dot from numpy. linalg import norm #define arrays a = np.random.randint(10, size= 90 ) #length=90 b = np.random.randint(10, size= 100 ) #length=100 #calculate Cosine Similarity cos_sim = dot (a, b)/( norm (a)* norm (b)) cos_sim ValueError : shapes (90,) and (100,) not aligned: 90 (dim 0) != 100 (dim 0)
टिप्पणियाँ
1. पायथन का उपयोग करके कोसाइन समानता की गणना करने के कई तरीके हैं, लेकिन जैसा कि यह स्टैक ओवरफ़्लो थ्रेड बताता है, इस आलेख में बताई गई विधि सबसे तेज़ साबित होती है।
2. कोसाइन समानता के बारे में अधिक जानने के लिएइस विकिपीडिया पृष्ठ को देखें।