كيفية حساب مسافة levenshtein في بايثون


مسافة Levenshtein بين سلسلتين هي الحد الأدنى لعدد تغييرات الحرف الواحد المطلوبة لتحويل كلمة إلى أخرى.

كلمة “تعديلات” تشمل الإبدال والإدراج والحذف.

على سبيل المثال، لنفترض أن لدينا الكلمتين التاليتين:

  • لنحتفل
  • حديقة

مسافة ليفنشتاين بين الكلمتين (أي عدد التغييرات التي نحتاج إلى إجرائها لتحويل كلمة إلى أخرى) ستكون 2 :

مثال على مسافة ليفنشتاين

من الناحية العملية، يتم استخدام مسافة ليفنشتاين في العديد من التطبيقات المختلفة، بما في ذلك مطابقة السلسلة المبهمة، والتدقيق الإملائي، ومعالجة اللغة الطبيعية.

يشرح هذا البرنامج التعليمي كيفية حساب مسافة Levenshtein بين السلاسل في Python باستخدام وحدة python-Levenshtein.

يمكنك استخدام بناء الجملة التالي لتثبيت هذه الوحدة:

 pip install python-Levenshtein

يمكنك بعد ذلك تحميل الدالة لحساب مسافة Levenshtein:

 from Levenshtein import distance as lev

توضح الأمثلة التالية كيفية استخدام هذه الوظيفة عمليًا.

مثال 1: مسافة ليفنشتاين بين سلسلتين

الكود التالي يوضح كيفية حساب مسافة ليفنشتاين بين السلسلتين “party” و”park”:

 #calculate Levenshtein distance
lev(' party ', ' park ')

2

وتبين أن مسافة ليفنشتاين هي 2 .

مثال 2: مسافة ليفنشتاين بين جدولين

يوضح التعليمة البرمجية التالية كيفية حساب مسافة Levenshtein بين كل مجموعة زوجية من السلاسل في صفيفين مختلفين:

 #define arrays
a = ['Mavs', 'Spurs', 'Lakers', 'Cavs']
b <- ['Rockets', 'Pacers', 'Warriors', 'Celtics']

#calculate Levenshtein distance between two arrays
for i,k in zip (a,b):
  print (lev(i, k))

6
4
5
5

وطريقة تفسير النتيجة هي كما يلي:

  • مسافة ليفنشتاين بين “Mavs” و “Rockets” هي 6 .
  • مسافة ليفنشتاين بين “سبيرز” و”بيسرز” هي 4 .
  • مسافة ليفنشتاين بين «الليكرز» و«وريورز» هي 5 .
  • مسافة ليفنشتاين بين “كافس” و”سيلتيكس” هي 5 .

مصادر إضافية

كيفية حساب مسافة هامينغ في بايثون
كيفية حساب المسافة الإقليدية في بايثون
كيفية حساب المسافة Mahalanobis في بايثون

Add a Comment

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