Открыть сервис

TF-IDF

TF-IDF (от англ. Term Frequency — Inverse Document Frequency, «частота термина — обратная частота документа») — это статистическая мера, используемая в задачах информационного поиска и автоматической обработки текстов для оценки важности слова (термина) в контексте отдельного документа из коллекции или корпуса текстов. TF-IDF часто применяется как один из этапов при ранжировании документов по релевантности поисковому запросу, а также при кластеризации, классификации, реферировании текстов и извлечении ключевых слов.

История и происхождение

Концепция, лежащая в основе TF-IDF, развивалась постепенно, начиная с середины XX века. В 1950-х годах пионер информационного поиска Ганс Петер Лун (Hans Peter Luhn) из компании IBM предложил использовать частоту слов (term frequency) в качестве меры значимости термина для документа. В 1972 году британский учёный Карен Спарк Джонс (Karen Spärck Jones) ввела понятие обратной частоты документа (inverse document frequency), формализовав идею о том, что слова, встречающиеся во многих документах коллекции, менее информативны для различения документов, чем редкие термины. Окончательная формула TF-IDF в её современном виде была сформулирована в 1970-х — 1980-х годах и стала стандартной мерой в системах информационного поиска, включая ранние версии поисковых систем.

Определение и формула

TF-IDF вычисляется как произведение двух компонентов: частоты термина (TF) и обратной частоты документа (IDF).

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

TF отражает, насколько часто термин встречается в конкретном документе. Существует несколько вариантов расчёта TF. Наиболее распространённый — это отношение числа вхождений термина к общему числу слов в документе:

\[ TF(t, d) = \frac{f_{t,d}}{\sum_{k} f_{k,d}} \]

где \( f_{t,d} \) — количество вхождений термина \( t \) в документе \( d \), а \( \sum_{k} f_{k,d} \) — общее количество слов в документе \( d \).

Другие варианты включают:

  • Булева TF: 1, если термин встречается в документе, и 0 в противном случае.
  • Логарифмическая TF: \( \log(1 + f_{t,d}) \).
  • Нормированная TF: деление на максимальную частоту любого слова в документе.

Обратная частота документа (IDF)

IDF измеряет, насколько редким является термин во всей коллекции документов. Чем реже термин встречается в коллекции, тем выше его IDF. Базовая формула:

\[ IDF(t, D) = \log \frac{N}{df_t} \]

где \( N \) — общее количество документов в коллекции \( D \), а \( df_t \) — количество документов, в которых встречается термин \( t \).

Для избежания деления на ноль (когда термин не встречается ни в одном документе) часто используется сглаженная версия:

\[ IDF(t, D) = \log \frac{N + 1}{df_t + 1} + 1 \]

Итоговая формула TF-IDF

\[ TFIDF(t, d, D) = TF(t, d) \times IDF(t, D) \]

Таким образом, вес термина в документе высок, если он часто встречается в данном документе (высокая TF) и редко — во всей коллекции (высокая IDF). И наоборот, слова, встречающиеся повсеместно (например, предлоги и союзы), имеют низкий вес.

Пример расчёта

Рассмотрим коллекцию из трёх документов:

  • Документ 1: «Кот любит молоко. Кот спит.»
  • Документ 2: «Собака любит гулять. Собака ест.»
  • Документ 3: «Кот и собака — друзья.»

Вычислим TF-IDF для слова «кот» в документе 1.

  1. TF: В документе 1 слово «кот» встречается 2 раза, всего слов — 4. TF = 2 / 4 = 0.5.
  2. IDF: Слово «кот» встречается в документах 1 и 3 (2 документа). Всего документов 3. IDF = log(3 / 2) ≈ 0.176.
  3. TF-IDF: 0.5 × 0.176 ≈ 0.088.

Для слова «любит» в документе 1:

  • TF: 1 / 4 = 0.25.
  • IDF: «любит» встречается в документах 1 и 2 (2 документа). IDF ≈ 0.176.
  • TF-IDF: 0.25 × 0.176 ≈ 0.044.

Для слова «молоко» в документе 1:

  • TF: 1 / 4 = 0.25.
  • IDF: «молоко» встречается только в документе 1 (1 документ). IDF = log(3 / 1) ≈ 0.477.
  • TF-IDF: 0.25 × 0.477 ≈ 0.119.

В данном примере слово «молоко» имеет наибольший вес, так как оно уникально для документа 1, в то время как «любит» — более распространённое слово.

Применение

Информационный поиск

TF-IDF является одним из ключевых факторов при ранжировании результатов поиска. Поисковая система, получив запрос, вычисляет TF-IDF каждого термина запроса в каждом документе коллекции. Сумма этих значений (или другая агрегирующая функция) определяет релевантность документа запросу. Документы с наибольшей суммой TF-IDF считаются наиболее релевантными.

Извлечение ключевых слов

Для автоматического выделения ключевых слов из текста слова сортируются по убыванию значения TF-IDF. Слова с наибольшим весом считаются наиболее значимыми для данного документа. Этот метод используется в системах реферирования, тегирования и аннотирования.

Кластеризация и классификация текстов

TF-IDF используется для построения векторного представления документов (векторная модель). Каждый документ представляется в виде вектора, где каждое измерение соответствует уникальному термину из коллекции, а значение — его TF-IDF весу. Затем к этим векторам применяются алгоритмы машинного обучения, такие как k-ближайших соседей, метод опорных векторов или наивный байесовский классификатор.

Фильтрация спама и антиплагиат

В системах фильтрации спама TF-IDF помогает выделить характерные для спама слова, редко встречающиеся в обычных письмах. В системах антиплагиата TF-IDF используется для сравнения документов: высокое сходство векторов TF-IDF может указывать на заимствования.

Ограничения и критика

Несмотря на широкую распространённость, TF-IDF обладает рядом недостатков:

  • Не учитывает семантику: TF-IDF оперирует только частотными характеристиками, игнорируя синонимию, многозначность и смысловые связи между словами. Например, слова «автомобиль» и «машина» будут рассматриваться как разные термины, хотя они близки по смыслу.
  • Чувствительность к длине документа: В базовой версии длинные документы могут иметь более высокие значения TF, что приводит к смещению в их пользу. Для компенсации применяются различные нормализации.
  • Не учитывает порядок слов: TF-IDF рассматривает текст как «мешок слов» (bag-of-words), теряя информацию о последовательности и синтаксисе.
  • Проблема редких терминов: Слова, встречающиеся в коллекции очень редко, могут получать непропорционально высокий вес, что может приводить к шуму.
  • Отсутствие учёта контекста: TF-IDF не способен различать разные значения одного и того же слова (например, «ключ» как инструмент и «ключ» как источник воды).

В современных системах информационного поиска и NLP TF-IDF часто используется как один из компонентов или как базовая линия для сравнения с более сложными методами, такими как word2vec, GloVe, BERT и другими нейросетевыми моделями.

Варианты и модификации

Существует множество модификаций TF-IDF, направленных на устранение его недостатков:

  • BM25 (Okapi BM25): Вероятностная модель ранжирования, которая является эволюцией TF-IDF и учитывает насыщение частоты термина и длину документа. BM25 используется в поисковых системах, таких как Elasticsearch и Apache Lucene.
  • TF-IDF с нормализацией: Введение дополнительных коэффициентов, например, нормализация по длине документа (pivoted normalization).
  • TF-IDF с учётом позиции: Присвоение большего веса терминам, встречающимся в заголовках, аннотациях или первых абзацах документа.

Источники

  1. Luhn, H. P. (1958). "The Automatic Creation of Literature Abstracts". IBM Journal of Research and Development.
  2. Sparck Jones, K. (1972). "A Statistical Interpretation of Term Specificity and Its Application in Retrieval". Journal of Documentation.
  3. Salton, G., & Buckley, C. (1988). "Term-weighting approaches in automatic text retrieval". Information Processing & Management.
  4. Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press.
  5. Robertson, S. E., & Zaragoza, H. (2009). "The Probabilistic Relevance Framework: BM25 and Beyond". Foundations and Trends in Information Retrieval.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →