TF-IDF
TF-IDF: وزندهی هوشمند کلمات — تکرار در سند بالا و نادر بودن در مجموعه؛ محاسبه دستی و کاربردها
مشکل BoW و راهحل TF-IDF
در BoW همه کلمات برابرند؛ اما کلمه وقتی مهم است که:
- در این سند زیاد تکرار شود (TF)
- در کل مجموعه سندها کم بیاید (نادر باشد — IDF)
TF-IDF دقیقاً حاصلضرب این دو است:
TF-IDF(کلمه, سند) = TF × IDF
TF = تکرار کلمه در سند / کل کلمات سند
IDF = log(تعداد کل سندها / سندهای دارای کلمه + 1)
شهود: چرا جواب میدهد؟
- «است» در همه سندها هست ← IDF ≈ log(1) = 0 ← وزن صفر! ✓
- «دوربین» فقط در سند نقد گوشی هست ← IDF بالا ← وزن بالا ✓
کلمات پرتکرار عمومی حذف و کلمات تمایزدهنده تقویت میشوند — بدون لیست stopwords دستی!
مثال عددی گامبهگام
۱۰۰ سند داریم؛ کلمه «گوشی» در ۱۰ سند آمده و در سند فعلی ۳ بار از ۱۰۰ کلمه:
TF = 3/100 = 0.03
IDF = log(100/10) = log(10) = 2.3
TF-IDF = 0.03 × 2.3 = 0.069
مقایسه با «است» (در ۹۹ سند): IDF = log(100/99) ≈ 0.01 ← تقریباً صفر!
کاربردهای واقعی
- موتور جستجو: رتبهبندی صفحات بر اساس تطابق کوئری (پایه اولیه گوگل!)
- استخراج کلمات کلیدی: بالاترین وزنهای هر سند
- دستهبندی متن: ویژگی ورودی دستهبندها
- سیستم توصیهگر: شباهت محتوایی اسناد
مقایسه BoW و TF-IDF
| ویژگی | BoW | TF-IDF |
|---|---|---|
| وزن کلمه | تعداد خام | هوشمند و نرمالشده ✓ |
| کلمات عمومی | وزن ناروا | تقریباً حذف ✓ |
| وابسته به مجموعه | خیر | بله (IDF از کل سندها) |
| پیچیدگی | ساده | کمی بیشتر |
نکته: TF-IDF هنوز هم یکی از قویترین روشهای «کلاسیک» است و در بسیاری سیستمهای واقعی (جستجو، خلاصهسازی) کنار مدلهای عصبی استفاده میشود — ساده، سریع و قابل تفسیر!
جمعبندی
- TF-IDF = تکرار محلی × نادری جهانی
- کلمات پرتکرار عمومی وزن صفر میگیرند
- پایه جستجو، کلمات کلیدی و دستهبندی کلاسیک
- بهبود بزرگ BoW بدون نیاز به لیست stopwords
این مبحث بخشی از دوره آموزش کامل پردازش زبان طبیعی (NLP) است.