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.
- Jones K. S. A statistical interpretation of term specificity and its application in retrieval // Journal of Documentation : журнал. — MCB University : MCB University Press, 2004. — Т. 60, № 5. — С. 493-502.