Fuzzy Matching در Power BI

حتما تا به حال پیش آمده که بخواهید دو جدول را بر اساس ستون هایی که مقادیرشان به یکدیگر شبیه است اما دقیقا یکسان نیستند، Join کنید. Power BI این ویژگی را تحت عنوان Fuzzy Matching برای کاربران خود در نظر گرفته است.

فعال کردن قابلیت Fuzzy Matching

اگر از نسخه های پایین تر Power BI استفاده می کنید نیاز به فعال سازی این ویژگی خواهید داشت. برای فعال سازی قابلیت Fuzzy Matching باید به طریق زیر عمل کنیم. مطابق تصویر از طریق منوی File، گزینه Option and Setting را انتخاب کرده و به Option می رویم.

m1 - Fuzzy Matching در Power BI

حال برگه ای پیش روی شما باز می شود که اگر به قسمت Preview feature بروید می توانید با فعال کردن گزینه Enable Fuzzy Merge این قابلیت را در Power BI فعال کنید. پس از فعال سازی یک بار Power BI را بسته و دوباره باز کنید:

3 2 1 - Fuzzy Matching در Power BI

پیاده سازی Fuzzy Matching

برای پیاده سازی Fuzzy Matching از دو جدول ساده استفاده کرده ایم. یکی از جداول حاوی اطلاعات دپارتمان ها است. جدول Department حاوی ۳ دپارتمان فروش (Sales)، فناوری اطلاعات (Information Technology) و مدیریت (Management) است. جدول دیگر حاوی اطلاعات کارمندان است. همان طور که ملاحظه می کنید کاربران در ورود اطلاعات دقت کافی نداشته اند و اطلاعات دپارتمان ها را با نگارش های مختلف وارد کرده اند.

m3 - Fuzzy Matching در Power BI

m4 - Fuzzy Matching در Power BI

حال می خواهیم این دو جدول را با یکدیگر Join کنیم:

مطالعه کنید.

ابتدا به صورت عادی و معمول عمل Join را انجام می دهیم. از طریق Merge Queries به برگه Merge وارد می شویم.

f3 - Fuzzy Matching در Power BI

حال ستون مشترک (Department) را انتخاب نموده و نوع Join را بر روی inner join قرار می دهیم:

 

M5 - Fuzzy Matching در Power BI

حال ستون های مورد نظر را انتخاب می کنیم.

M6 - Fuzzy Matching در Power BI

نتیجه نهایی به صورت زیر جدول زیر خواهد بود.

m11 - Fuzzy Matching در Power BI

همین طور که مشاهده می کنید بسیاری از ردیف ها حذف شده اند و تنها دو ردیف باقی مانده اند. حال نوع Join را بر روی Left outer Join قرار می دهیم.

m9 - Fuzzy Matching در Power BI

نتیجه Join به صورت تصویر زیر خواهد بود. همان طور که مشاهده می نمایید برای بسیاری از ردیف ها دپارتمان نامعلوم است، چرا که Join به صورت عادی تنها ردیف هایی را که مقادیر آن ها در هر دو ستون کاملا برابر است را به عنوان خروجی نمایش می دهد.

m10 - Fuzzy Matching در Power BI

حال عمل Fuzzy Match را برای این دو جدول انجام می دهیم. باز هم مانند قبل گام های Merge را انجام داده و گزینه Use fuzzy matching to compare the merge را برای آن فعال می کنیم.

m13 - Fuzzy Matching در Power BI

حال گزینه fuzzy merge option را به منظور انجام تنظیمات بیشتر باز می کنیم. ابتدا بدون تغییر در تنظیمات عمل Fuzzy Merge را انجام می دهیم. نتیجه مطابق تصویر زیر است.

m15 1 - Fuzzy Matching در Power BI

همان طور که در تصویر مشاهده می کنید اکنون با عمل Fuzzy Merge تعداد بیشتری از ردیف ها در جدول نهایی ظاهر شده اند. ردیف هایی که با رنگ قرمز مشخص شده اند مواردی هستند که علیرغم یکسان نبودن مقادیر ستون ها به عنوان مقدار برابر تشخیص داده شده اند. در واقع fuzzy merge میزان شباهت مقادیر دو ستون را بررسی می کند و در صورتی که به آستانه تعیین شده توسط کاربر (به صورت پیش فرض ۹۰ درصد) برسد آن ها را مساوی تشخیص می دهد.

بدیهیست هر چه این آستانه بالاتر تعیین شود عمل matching با سخت گیری بیشتر و هر چه پایین تر تنظیم شود، عمل تطابق با سخت گیری کمتری صورت می پذیرد. به طور مثال دو کلمه Sale و Sales موفق به رسیدن به آستانه تنظیمی کاربر شده اند و یکسان تشخیص داده شده اند. اما دو کلمه Mangmt و Management موفق به رسیدن به آستانه شباهت ۹۰ درصدی نشده اند.

عمل Fuzzy Merge تنظیمات زیادی دارد. اولین تنظیم مربوط به threshold است که بین ۰ تا ۱ قابل تنظیم است. عدد تنظیمی در این قسمت آستانه شباهت مد نظر کاربر را نشان می دهد. در واقع با وارد کردن عدد در این باکس می گوییم مقادیر با شباهت بالاتر از این مقدار یکسان در نظر گرفته شوند.

گزینه Ignore case تنظیمات مربوط به حساسیت یا عدم حساسیت به حروف بزرگ و کوچک را انجام می دهد. همچنین Ignore Space تنظیمات مربوط به در نظر گرفتن یا نگرفتن Space ها را انجام می دهد.

اما مهمترین بخش مربوط به Transformation table است. Transformation Table یا Mapping Table جدولی است که ما به صورت آگاهانه جدولی را مشخص کرده و مقادیر مورد نظر را در این جدول تعریف می کنیم. این جدول باید دارای دو ستون From و To باشد و فراموش نکنید که Power Query به حروف کوچک و بزرگ حساس است.

در واقع در این روش باید جدول mapping را تعریف کرده و تمام مقادیر مورد نظر را در آن تعریف کنیم و به جای تعریف کردن آستانه شباهت و سپردن عمل Join به قضا و قدر و احتمال، آگاهانه مقادیر ممکن و معادل آن ها را تعریف کنیم. با هم به بررسی مثال بپردازیم.

عمل Fuzzy Matching با استفاده از mapping table

برای پیاده سازی این عمل ۲ جدول شرکت ها و میزان فروش آن ها را ثبت شده است. در تصویر زیر شرکت های ثبت شده را مشاهده می نمایید. در این جدول ۳ شرکت سایپا، ایران خودرو و بهمن موتور ثبت شده است.

e1 - Fuzzy Matching در Power BI

در تصویر زیر میزان فروش ثبت شده توسط اپراتورهای مختلف را مشاهده می کنید. هر اپراتور به سلیقه ی خود عنوانی را برای نام شرکت ثبت نموده است. همان طور می بینید یکی از اپراتورها کلمه سایپا، دیگری گروه خودرو سازی سایپا و … را ثبت کرده است. بدیهی است این ۲ جدول قابل Join نیستند، چرا که ستون ها دارای مقادیر یکسان نیستند.

e2 - Fuzzy Matching در Power BI

پس بهترین راه ایجاد یک transformation table است که در آن تمامی مقادیر ممکن برای هر شرکت ثبت شود. این جدول در تصویر زیر قابل مشاهده است.  ستون From مقادیر ممکن برای هر شرکت و To مقدار معتبر واحد برای هر شرکت است. به طور مثال تمام مقادیر سایپا، گروه سایپا، گروه خودرو سازی سایپا، شرکت سایپا و Saipa به عنوان سایپا شناخته شوند.

e3 - Fuzzy Matching در Power BI

حال عمل Fuzzy Matching را انجام داده و جدول mapping ایجاد شده را به عنوان جدول Transformation Table، معرفی میکنیم. نحوه انجام این عمل را در تصویر زیر مشاهده می کنید.

e4 - Fuzzy Matching در Power BI

نتیجه نهایی در تصویر زیر قابل مشاهده است. همان طور که مشاهده می کنید تمامی موارد به درستی تشخیص داده شده و عمل Join صورت پذیرفته است.

e5 - Fuzzy Matching در Power BI




6b77990865d588b48d7f55a013cdd7ec?s=300&d=mm&r=g - Fuzzy Matching در Power BI

حسین وثوقی

دانش آموخته مهندسی صنایع و مدیریت فناوری اطلاعات دانشگاه تهران، علاقه مند به تحلیل و ارائه راه حل برای مسائل و بهینه سازی راه حل ها هستم ...

دیدگاه بگذارید

avatar
  عضویت  
به دوستتان خبر دهید.