TF-IDF
TF-IDF (від Шаблон:Lang-en) — статистичний показник, що використовується для оцінки важливості слів у контексті документа, що є частиною колекції документів чи корпусу. Вага (значимість) слова пропорційна кількості вживань цього слова у документі, і обернено пропорційна частоті вживання слова у інших документах колекції.
Показник TF-IDF використовується в задачах аналізу текстів та інформаційного пошуку. Його можна застосовувати як один з критеріїв релевантності документа до пошукового запиту, а також при розрахунку міри спорідненості документів при кластеризації.
Найпростішу функцію ранжування можна визначити як суму TF-IDF кожного терміна в запиті. Більшість просунутих функцій ранжування ґрунтуються на цій простій моделі.
Формула
TF (term frequency — частота слова) — відношення числа входжень обраного слова до загальної кількості слів документа. Таким чином, оцінюється важливість слова в межах обраного документа. Термін був введений Карен Спарк ДжонсШаблон:Sfn.
,
де є число входжень слова в документ, а в знаменнику — загальна кількість слів в документі.
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.
Див. також
- Вкладання слів
- Розходження Кульбака — Лейблера
- Латентно-семантичний аналіз
- Взаємна інформація
- PageRank
- Векторна модель