كيفية حساب تشابه جيب التمام في بايثون


تشابه جيب التمام هو مقياس للتشابه بين متجهين لمساحة المنتج الداخلية.

بالنسبة للمتجهين A وB، يتم حساب تشابه جيب التمام على النحو التالي:

تشابه جيب التمام = Σ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. هناك عدة طرق لحساب تشابه جيب التمام باستخدام Python، ولكن كما يوضح هذا الموضوع Stack Overflow ، فإن الطريقة الموضحة في هذه المقالة هي الأسرع.

2. ارجع إلىصفحة ويكيبيديا هذه لمعرفة المزيد حول تشابه جيب التمام.

Add a Comment

ایمئیل یایینلانمایاجاق ایسته‎نیله‎ن بوشلوقلار خاللانمیشدیر *