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.
- TF: В документе 1 слово «кот» встречается 2 раза, всего слов — 4. TF = 2 / 4 = 0.5.
- IDF: Слово «кот» встречается в документах 1 и 3 (2 документа). Всего документов 3. IDF = log(3 / 2) ≈ 0.176.
- 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 с учётом позиции: Присвоение большего веса терминам, встречающимся в заголовках, аннотациях или первых абзацах документа.
Источники
- Luhn, H. P. (1958). "The Automatic Creation of Literature Abstracts". IBM Journal of Research and Development.
- Sparck Jones, K. (1972). "A Statistical Interpretation of Term Specificity and Its Application in Retrieval". Journal of Documentation.
- Salton, G., & Buckley, C. (1988). "Term-weighting approaches in automatic text retrieval". Information Processing & Management.
- Manning, C. D., Raghavan, P., & Schütze, H. (2008). Introduction to Information Retrieval. Cambridge University Press.
- Robertson, S. E., & Zaragoza, H. (2009). "The Probabilistic Relevance Framework: BM25 and Beyond". Foundations and Trends in Information Retrieval.
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →