TF-IDF
Свайпніть щоб показати меню
Розуміння TF-IDF
Хоча модель мішка слів є простою та ефективною, вона має тенденцію переоцінювати поширені терміни, що ускладнює виявлення рідкісніших, але більш інформативних слів. Щоб вирішити цю проблему, часто використовується модель TF-IDF.
TF-IDF (частота терміна — обернена частота документа) — це статистична міра, яка відображає важливість слова для конкретного документа відносно більшого корпусу.
На відміну від BoW, яка базується на підрахунку термінів, TF-IDF враховує як частоту терміна в документі, так і його обернену частоту в усьому корпусі. Це зменшує вплив поширених термінів і підкреслює рідкісніші, більш інформативні слова.
Як працює TF-IDF
TF-IDF-оцінка для терміна в документі обчислюється за формулою:
tf-idf(t,d)=tf(t,d)×idf(t)де:
- t — термін (слово або n-грам);
- d — документ.
Існує багато варіантів обчислення значень tf та idf. Розглянемо один із поширених варіантів для кожного з них:
Частота терміна (TF)
Відображає, наскільки часто термін зустрічається в документі, визначаючи його відносну важливість у цьому документі. Подібно до моделі мішок слів, часто використовується простий підрахунок:
tf(t,d)=count(t,d)Зворотна частота документів (IDF)
Вимірює, наскільки рідкісний термін у всьому корпусі. Може обчислюватися як натуральний логарифм відношення загальної кількості документів до кількості документів, що містять цей термін:
idf(t)=log(1+df(t)1+Ndocuments)+1У цій формулі використовується згладжування (додавання 1), щоб уникнути ділення на нуль, і гарантується, що навіть поширені терміни отримують ненульове значення IDF. Таким чином, IDF зменшує вагу частих термінів і підкреслює більш інформативні, рідкісні.
Без компонента IDF TF-IDF зводиться до простого підрахунку термінів — фактично повертаючись до моделі мішок слів.
Обчислення TF-IDF
Розглянемо простий приклад:
У цьому випадку ми маємо лише два документи та використовуємо лише уніграмми (окремі слова), тому обчислення є простими. Починаємо з підрахунку частоти термів для кожного слова в обох документах, а потім обчислюємо значення IDF для термінів "a" та "is".
Оскільки у нашому корпусі лише два документи, кожен термін, що зустрічається в обох документах, матиме значення IDF 1, а інші терміни — значення IDF ~1.406465.
Нарешті, ми можемо обчислити значення TF-IDF для кожного терміну в кожному документі, перемноживши TF на IDF, що дає наступну матрицю:
L2-нормалізація
Отримані TF-IDF-вектори можуть суттєво відрізнятися за модулем, особливо у великих корпусах, через різну довжину документів. Саме тому часто застосовується L2-нормалізація — для приведення всіх векторів до однакової довжини, що забезпечує коректне та неупереджене порівняння документів різної довжини.
L2-нормалізація, також відома як евклідова нормалізація, — це процес, який застосовується до окремих векторів і коригує їхні значення так, щоб довжина вектора дорівнювала 1.
L2-нормалізація виконується шляхом ділення кожного елемента вектора на евклідову норму цього вектора.
Якщо вектор документа виглядає так:
d=(w1,w2,w3,...,wN)де wi — це вага терміна i,
то евклідова норма виглядає так:
∥d∥2=w12+w22+w32+...+wN2а нормалізований вектор виглядає так:
dnorm=(∥d∥2w1,∥d∥2w2,∥d∥2w3,...,∥d∥2wN)Ось як працює L2-нормалізація для двовимірного вектора (документ із двома термінами):
Не хвилюйтеся, якщо формули здаються складними. Все, що ми робимо — це ділимо кожне значення TF-IDF у документі на довжину (або модуль) вектора TF-IDF цього документа. Це масштабує вектор так, що його довжина стає 1, забезпечуючи коректне порівняння векторів.
Тепер застосуємо L2-нормалізацію до нашої TF-IDF матриці, яку ми обчислили вище:
Отримана матриця точно відповідає прикладу, який ми розглядали в одному з попередніх розділів.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат