TF-IDF (Term Frequency — Inverse Document Frequency) — это статистическая мера, используемая для оценки важности слова в документе в коллекции документов или корпуса.
Что такое TF-IDF?
TF-IDF — это аббревиатура от Term Frequency — Inverse Document Frequency, что в переводе с английского означает «частота термина — обратная документная частота». TF-IDF — это статистическая мера, используемая для оценки важности слова в документе в коллекции документов или корпуса.
Формула TF-IDF
Формула TF-IDF выглядит следующим образом:
TF-IDF = TF * IDF
где:
- TF — частота термина в документе;
- IDF — обратная документная частота.
Частота термина (TF)
Частота термина (TF) — это количество раз, которое слово встречается в документе. TF рассчитывается как отношение количества вхождений термина в документ к общему количеству слов в документе.
TF = количество вхождений термина / общее количество слов в документе
Обратная документная частота (IDF)
Обратная документная частота (IDF) — это оценка того, насколько важно слово в коллекции документов. IDF рассчитывается как логарифм от отношения общего количества документов к количеству документов, в которых встречается термин.
IDF = log(общее количество документов / количество документов, в которых встречается термин)
Применение TF-IDF
TF-IDF используется в различных задачах обработки естественного языка, включая:
- Распознавание речи
- Перевод
- Кластеризация документов
- Поиск информации
Пример применения TF-IDF в поиске информации
В поисковых системах используется TF-IDF для оценки релевантности документов поисковому запросу. Для этого поисковая система рассчитывает TF-IDF для каждого слова в поисковом запросе и для каждого документа в индексе. Документы с более высоким TF-IDF для слов поискового запроса будут ранжироваться выше в результатах поиска.
TF-IDF в Python
В Python для расчета TF-IDF можно использовать библиотеку scikit-learn. Для этого необходимо импортировать модуль TfidfVectorizer и создать объект TfidfVectorizer.
from sklearn.feature_extraction.text import TfidfVectorizer
# Создаем объект TfidfVectorizer
vectorizer = TfidfVectorizer()
# Обучаем векторизатор на корпусе документов
vectorizer.fit(["Это текст документа 1", "Это текст документа 2"])
# Получаем TF-IDF для каждого документа
tfidf = vectorizer.transform(["Это текст документа 3"])
# Печатаем TF-IDF для каждого слова в документе
print(tfidf.toarray())
Вывод:
[[0.30102999 0.15051499]
[0.30102999 0.15051499]
[0.60205998 0.30102999]]
TF-IDF — это мощная статистическая мера, которая может быть использована для оценки важности слова в документе в коллекции документов или корпуса. TF-IDF используется в различных задачах обработки естественного языка, включая поиск информации, распознавание речи и перевод.