TF-IDF

статистика, що відображає, наскільки важливе слово для документа в колекції або корпусі

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

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

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

Формула ред.

TF (term frequency — частота слова) — відношення числа входжень обраного слова до загальної кількості слів документа. Таким чином, оцінюється важливість слова   в межах обраного документа. Термін був введений Карен Спарк Джонс[1].

  ,

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

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

  ,

де

  • |D| — кількість документів колекції;
  •   — кількість документів, в яких зустрічається слово   (коли  ).

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

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

 

Більшу вагу TF-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.

Див. також ред.

Примітки ред.

Література ред.