Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте TF-IDF | Секція
Practice
Projects
Quizzes & Challenges
Вікторини
Challenges
/
Обробка природної мови

bookTF-IDF

Свайпніть щоб показати меню

Розуміння TF-IDF

Хоча модель мішка слів є простою та ефективною, вона має тенденцію переоцінювати поширені терміни, ускладнюючи виявлення рідкісніших, але більш інформативних слів. Щоб вирішити цю проблему, часто використовується модель TF-IDF.

Note
Визначення

TF-IDF (частота терміна — обернена частота документа) — це статистична міра, яка відображає важливість слова для конкретного документа відносно більшого корпусу.

На відміну від BoW, яка базується на підрахунку термінів, TF-IDF враховує як частоту терміна в документі, так і його обернену частоту в усьому корпусі. Це зменшує вплив поширених слів і виділяє рідкісніші, більш інформативні терміни.

Як працює TF-IDF

TF-IDF оцінка для терміна в документі обчислюється за формулою:

tf-idf(t,d)=tf(t,d)×idf(t)\def\tfidf{\operatorname{tf-idf}} \def\tf{\operatorname{tf}} \def\idf{\operatorname{idf}} \tfidf(t, d) = \tf(t, d) \times \idf(t)

де:

  • tt — термін (слово або n-грам);
  • dd — документ.

Існує багато варіантів обчислення значень tf\operatorname{tf} та idf\operatorname{idf}. Розглянемо один із поширених підходів для кожного з них:

Частота терміна (TF)

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

tf(t,d)=count(t,d)\def\tf{\operatorname{tf}} \def\count{\operatorname{count}} \tf(t, d) = \count(t, d)

Зворотна частота документів (IDF)

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

idf(t)=log(1+Ndocuments1+df(t))+1\def\idf{\operatorname{idf}} \def\df{\operatorname{df}} \idf(t) = \log\Bigl(\frac{1 + N_{documents}}{1 + \df(t)}\Bigr) + 1

У цій формулі використовується згладжування (додавання 1), щоб уникнути ділення на нуль і гарантувати, що навіть поширені терміни отримують ненульову оцінку IDF. Таким чином, IDF зменшує вагу частих термінів і підкреслює більш інформативні, рідкісні слова.

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

Обчислення TF-IDF

Розглянемо простий приклад:

У цьому випадку маємо лише два документи та використовуємо лише уніграмми (окремі слова), тому обчислення є простими. Починаємо з підрахунку частоти терміну для кожного слова в обох документах, після чого обчислюємо значення IDF для термінів "a" та "is".

Note
Примітка

Оскільки у нашому корпусі лише два документи, кожен термін, що зустрічається в обох документах, матиме значення IDF 1, а інші терміни — значення IDF ~1.406465.

Нарешті, можна обчислити значення TF-IDF для кожного терміну в кожному документі шляхом множення TF на IDF, що дає таку матрицю:

L2-нормалізація

Отримані TF-IDF-вектори можуть суттєво відрізнятися за модулем, особливо у великих корпусах, через різну довжину документів. Саме тому часто застосовується L2-нормалізація — для приведення всіх векторів до однакової довжини, що забезпечує коректне та неупереджене порівняння документів різної довжини.

Note
Дізнатися більше

L2-нормалізація, також відома як евклідова нормалізація, — це процес, який застосовується до окремих векторів і коригує їхні значення так, щоб довжина вектора дорівнювала 1.

L2-нормалізація виконується шляхом ділення кожного елемента вектора на евклідову норму цього вектора.

Якщо вектор документа має вигляд:

d=(w1,w2,w3,...,wN)d = (w_1, w_2, w_3, ..., w_N)

де wiw_i — вага терміна ii,

то евклідова норма обчислюється так:

d2=w12+w22+w32+...+wN2\|d\|_2 = \sqrt{w^2_1 + w^2_2 + w^2_3 + ... + w^2_N}

а нормалізований вектор виглядає так:

dnorm=(w1d2,w2d2,w3d2,...,wNd2)d_{norm} = \Bigl(\frac{w_1}{\|d\|_2}, \frac{w_2}{\|d\|_2}, \frac{w_3}{\|d\|_2}, ..., \frac{w_N}{\|d\|_2})

Нижче наведено приклад роботи L2-нормалізації для двовимірного вектора (документ із двома термінами):

Note
Примітка

Не хвилюйтеся, якщо формули здаються складними. Усе, що ми робимо, — це ділимо кожне значення TF-IDF у документі на довжину (або модуль) вектора TF-IDF цього документа. Це масштабує вектор так, що його довжина стає 1, забезпечуючи коректне порівняння векторів.

Тепер застосуємо L2-нормалізацію до нашої TF-IDF матриці, яку ми обчислили вище:

Отримана матриця точно відповідає прикладу, який ми розглядали в одному з попередніх розділів.

question mark

Яка ключова перевага моделі TF-IDF у порівнянні з моделлю BoW?

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 1. Розділ 23

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Секція 1. Розділ 23
some-alt