این الگوریتم چی میگه؟
فاصله لوناشتاین بین دو رشته به وسیلهٔ کمترین تعداد عملیات مورد نیاز برای تبدیل یک رشته به رشته دیگر معین میشود، که یک عملیات میتواند یک ضمیمه، یا جایگزینی یک کارکتر باشد.
به عنوان مثال فاصله لوناشتاین بین "kitten" و "sitting" برابر ۳ است. همانطور که میبینیم حداقل سه ویرایش برای تبدیل یکی به دیگری وجود دارد و کمتر از آن ممکن نیست:
kitten → sitten(با جایگزینی 's' به جای'k')
sitten → sittin(با جایگزینی 'i' به جای'e')
sittin → sitting(با وارد کردن 'g' در انتها)
یعنی ما می خواهیم شباهت رشته هامونو که در این مثال نام مشتری ها است را با یک لیست از نام مثلا متقلب ها یا تبهکارا مقایسه کنیم و ببینیم این نام ها با هر کدوم از Watch List ما چقدر شباهت دارن و در آخر مثلا شباهت های بالای 90 در صد رو بیشتر تحت نظر میگیریم. یعنی یه جور خوشه بندی انجام میدیم.
روش کار هم بصورت مراحل زیر هستش
1 - دیتاست Contoso را از SQL Server لود می کنیم.
2- برای راحتی بیشتر ستون های نا لازم رو پاک میکنیم و فقط اسم ها و فامیل ها رو نگه میداریم.
3- یک ستون افزوده به این جدول اضافه می کنیم که طول رشته اسم ها رو محاسبه کنه.
String length = LEN(DimCustomer[FirstName])
خروجی به این شکل میشه.
این ستون در مراحل بعدی برای Measure مقایسه بکار میاد.
4- حالا جدول Watch List را لود می کنیم که واسه ما توسط Enter Data بصورت دستی وارد می کنیم به شکل زیر.
5- یک Measure داریم که زیاد پیچیده نیست و بشکل زیر نوشته میشه و روی جدول اصلی اعمال میشه.
6- حالا تقریبا کار تمومه . یک اسلایسر برای Watch List.
7- یک جدول برای نام ها و میزان شباهت.
همانطور که می بینید شباهت alvin با شخص مورد نظر ما که Kevin هست 60 درصد و شباهت Devin 80 درصد است.
8- تنظیم شباهت روی حساسیت مورد نظر
و تمام