چرا سکان آکادمی؟

TF-IDF (الگوریتم TF-IDF)

الگوریتم TF-IDF یکی از الگوریتم‌های محاسبه امتیاز ارتباط (relevance score) است که در زمینه‌ی جستجو و تحلیل داده‌های متنی مورد استفاده قرار می‌گیرد. نام این الگوریتم مخفف عبارت‌های زیر است:

TF = Term Frequency

IDF = Inverse Document Frequency

این الگوریتم امتیاز میزان ارتباط یک term (T) در یک document (D) را طبق فرمول زیر محاسبه می‌کند:

score(D, T) = termFrequency(T, D) * log(N / docFrequency(T))

در این فرمول فاکتور‌های زیر موثر است:

termFrequency: این فاکتور تعداد تکرار term در یک document را محاسبه می‌کند.

N: تعداد کل document های موجود در مجموعه‌ی هدف برای جستجو

docFrequency: این فاکتور تعداد تکرار term در کل document های مجموعه‌ی مورد جستجو را محاسبه می‌کند.

همانطور که از فرمول بالا مشخص است، عامل termFrequency تاثیر مثبت در میزان اهمیت (ارتباط) یک term در یک document داشته و عامل docFrequency اثر منفی در اهمیت خواهد داشت. دلیل استفاده از عبارت Inverse Document Frequency (معکوس تعداد تکرار در document ها) در نام این الگوریتم نیز همین مساله است.

از جمله نواقص این الگوریتم می‌توان به موارد زیر اشاره کرد:

_ اثر نامطلوب term های مورد جستجو بر یکدیگر: زمانی که عبارت مورد جستجو شامل چندین term باشد، تکرار بیش از اندازه‌ی یکی از term ها می‌تواند باعث افزایش امتیاز نهایی یک document شود در حالیکه ممکن است اهمیت آن term در document زیاد نباشد. برای مثال زمانی که عبارت "آموزش با سکان‌آکادمی" جستجو شود، تکرار بسیار زیاد کلمه‌ی "با" می‌تواند اثر نامطلوب در رتبه‌بندی نتایج جستجو داشته باشد و نتایجی که شامل هر سه term مورد نظر هستند در رتبه‌های پایین‌‌تر نسبت به document هایی قرار گیرند که تعداد زیادی کلمه‌ی "با" در آن‌ها تکرار شده است! 

_ عدم در نظر گرفتن طول متن document: با درنظر گرفتن این حقیقت که طولانی‌تر بودن یک متن به صورت ضمنی شانس بیشتری را برای تکرار یک term در آن ایجاد می‌کند، می‌توان گفت که در برخی موارد ممکن است تکرار بیشتر یک term در document الزامی به ارتباط بیشتر آن document با term مورد نظر نداشته باشد. برای مثال 2 مرتبه تکرار کلمه‌ی "آموزش" در یک متن با طول 100 اهمیت بیشتری نسبت به 2 بار تکرار این کلمه در یک متن با طول 500 خواهد داشت.

فاکتور‌های مطرح شده برای این الگوریتم، در الگوریتم BM25 بهبود پیدا کرده و نواقص بالا نیز در آن برطرف شده است.