TF-IDF

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до: навігація, пошук

TF-IDF (від англ. TF — term frequency, IDF — inverse document frequency) — статичний показник, що використовується для оцінки важливості слів у контексті документу, що є частиною колекції документів чи корпусу. Вага (значимість) слова пропорційна кількості вживань цього слова у документі, і обернено пропорційна частоті вживання слова у інших документах колекції.

Показник TF-IDF використовується в задачах аналізу текстів та інформаційного пошуку. Його можна застосовувати як один з критеріїв релевантності документу до пошукового запиту, а також при розрахунку міри спорідненості документів при кластеризації.

Формула[ред.ред. код]

TF (term frequency — частота слова) — відношення числа входжень обраного слова до загальної кількості слів документу. Таким чином, оцінюється важливість слова  t_{i} в межах обраного документу.

 \mathrm{TF} = \frac{n_i}{\sum_k n_k} ,

де n_i є число входжень слова в документ, а в знаменнику — загальна кількість слів в документі.

IDF (inverse document frequency — обернена частота документу) — інверсія частоти, з якою слово зустрічається в документах колекції. Використання IDF зменшує вагу широковживаних слів.

 \mathrm{IDF} =  \log \frac{|D|}{|(d_{i}\supset t_{i})|} ,

де

  • |D| — кількість документів колекції;
  •  |(d_{i}\supset t_{i})| — кількість документів, в яких зустрічається слово  t_{i} (коли  n_{i} \neq 0).

Вибір основи логарифму у формулі не має значення, адже зміна основи призведе до зміни ваги кожного слова на постійний множник, тобто вагове співвідношення залишиться незмінним.

Іншими словами, показник TF-IDF це добуток двох множників: TF та IDF.

 \text{TF-IDF} = \mathrm{TF} \cdot \mathrm{IDF}

Більшу вагу TF-IDF отримають слова з високою частотою появи в межах документу та низькою частотою вживання в інших документах колекції.

Приклад[ред.ред. код]

Формулу TF-IDF як правило застосовують до нормалізованих документів, в яких слова приведені до основи. Досягти такої форми дозволяють алгоритми стемінгу.

Текст 1 Текст 2 Текст 3
Початковий варіант Дніпро — третя за довжиною й площею басейну річка Європи, має найдовше русло в межах України. Довжина Дніпра 2201 км. Дніпро — типова рівнинна річка з повільною й спокійною течією. Вчора у Комсомольську з Дніпра рятувальники дістали тіло місцевого мешканця. Як повідомили в управлінні з питань надзвичайних ситуацій, чоловік зник безвісті ще у лютому. Продається будинок поблизу річки Ятрань (Черкаська область): сад з городом, колодязь, асфальтоване подвір'я, гараж, господарське приміщення. Біля будинку знаходиться водна свердловина.
Після стемінгу дніпр трет за довжин й прощ басейн річк європ має найдовш русл в меж україн довжин дніпр 2201 км дніпр типов рівнин річк з повільн й спокійн течі вчора у комсомольськ з дніпр рятувальн діста тіл місцев мешканц як повідом в управлін з питан надзвичайн ситуаці чолові зник безвіст ще у лют прода будин поблиз річк ятран черкас облас сад з город колодяз асфальт подвір гараж господарс приміщен біля будин знаход вод свердловин
К-ть слів в документі 28 24 21
Слова, що зустрічаються 3 рази дніпр; TF = 3/28 = 0,1071 x x
Слова, що зустрічаються 2 рази й, річк; TF = 2/28 = 0,0714 з, у; TF = 2/24 = 0,0833 будин; TF = 2/21 = 0,0952
Слова, що зустрічаються 1 раз TF = 1/28 = 0,0357 TF = 1/24 = 0,0417 TF = 1/21 = 0,0476

Тепер спробуємо визначити значення IDF для найпоширеніших слів:

Слово К-ть текстів, що містять слово IDF
з 3 log(3/3) = 0
Дніпро 2 log(3/2) = 0,1761
Річка 2 log(3/2) = 0,1761
Будинок 1 log(3/1) = 0,4771

Залишається лише визначити TF-IDF для поширених слів у розрізі документів:

TF-IDF Текст 1 Текст 2 Текст 3
Будинок x x 0,0952 * 0,4771 = 0,0454
Дніпро 0,1071 * 0,1761 = 0,0189 0,0417 * 0,1761 = 0,0073 х
з 0,0357 * 0 = 0 0,0833 * 0 = 0 0,0476 * 0 = 0
Річка 0,0714 * 0,1761 = 0,0126 х 0,0476 * 0,1761 = 0,0084

З цього прикладу можна зробити такі висновки:

  • Слову "Дніпро" найбільше відповідає текст 1, хоча у тексті 2 воно теж фігурує;
  • Слову "Будинок" відповідає лише текст 3;
  • Слово "Річка" має відношення до 1 та 3 тексту, але 1 співвідноситься точніше. Цікаво, що у тексті 2 теж згадується річка, але за назвою, тому розрахунок TF-IDF цього не помічає;
  • Прийменник "з" присутній у кожному документі колекції, а тому незважаючи на значення TF має найнижчі показники TF-IDF.