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 матриці, яку ми обчислили вище:
Отримана матриця — це саме той приклад, який ми розглядали в одному з попередніх розділів.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Can you explain why L2 normalization is important for comparing documents?
How does TF-IDF differ from the bag of words model in practice?
Can you walk me through a step-by-step example of calculating TF-IDF for a small dataset?
Awesome!
Completion rate improved to 3.45
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 матриці, яку ми обчислили вище:
Отримана матриця — це саме той приклад, який ми розглядали в одному з попередніх розділів.
Дякуємо за ваш відгук!