اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يمكنك استخدام wup_similarity لقياس التشابه بين الكلمات، حيث يحسب الترابط من خلال النظر في أعماق مجموعتي synsets للكلمتين (يحسب مدى تشابه معاني الكلمات وموقعها في شجرة ال hypernym) إضافة إلى ال LCS بين الكلمتين (السلف المشترك الأكثر شيوعاً لمفهومين موجودان في أنطولوجية محددة أو بمعنى آخر القواسم المشتركة بين زوج من المفاهيم. على سبيل المثال ال LCS لكل من القط والكلب في wordnet هو حيوان ثديي).
الwup_similarity  تعتمد على المعادلة التالية:

WuPalmer=2*depth(lcs(s1,s2))/(depth(s1)+depth(s2))

والنتيجة تكون بين 0 و 1 ولايمكن أن تكون 0 لأن عمق LCS لا يساوي صفر (عمق جذر التصنيف واحد). مثال:

# wordnet استيراد 
from nltk.corpus import wordnet
# لكل من الكلمتين synsets استخراج ال
syn1 = wordnet.synsets('cat')[0]
syn2 = wordnet.synsets('dog')[0]
print ("cat name : ", syn1.name())
print ("dog name : ", syn2.name())
# حساب التشابه
syn1.wup_similarity(syn2)
"""
cat name :  cat.n.01
dog name :  dog.n.01
0.8571428571428571
"""

لاحظ أن نسبة التشابه بين الكلمتين 85% وذلك لوجود العديد من الأشياء المشتركة بينهما. أما لو جربنا على سبيل المثال كلمتي hello و selling سنجد أنها 26% فقط وهذا لأنهما بعيدتين مفاهيمياً:

# wordnet استيراد 
from nltk.corpus import wordnet
syn1 = wordnet.synsets('hello')[0]
syn2 = wordnet.synsets('selling')[0]
print ("hello name : ", syn1.name())
print ("selling name : ", syn2.name())
syn1.wup_similarity(syn2)
"""
hello name :  hello.n.01
selling name :  selling.n.01
0.26666666666666666
"""

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...