Spec-Zone.ru › scikit-learn

TfidfTransformer

classsklearn.feature_extraction.text.TfidfTransformer(*, norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)[source]

Преобразует матрицу подсчёта в нормализованное представление tf или tf-idf.

Tf означает частоту термина, а tf-idf означает частоту термина умноженную на обратную частоту документа. Это распространённая схема взвешивания терминов в поиске информации, которая также нашла применение в классификации документов.

Цель использования tf-idf вместо исходных частот появления токена в данном документе заключается в уменьшении влияния токенов, которые очень часто встречаются в данном корпусе и, следовательно, эмпирически менее информативны, чем признаки, встречающиеся в небольшой части обучающего корпуса.

Формула, используемая для вычисления tf-idf для термина t документа d в наборе документов, равна tf-idf(t, d) = tf(t, d) * idf(t), а idf вычисляется как idf(t) = log [ n / df(t) ] + 1 (если smooth_idf=False), где n — общее количество документов в наборе документов, а df(t) — частота документа t; частота документа — это количество документов в наборе документов, содержащих термин t. Влияние добавления «1» к idf в приведенном выше уравнении заключается в том, что термины с нулевым idf, т. е. термины, которые встречаются во всех документах в наборе обучения, не будут полностью игнорироваться. (Обратите внимание, что формула idf выше отличается от стандартной формулы в учебниках, которая определяет idf как idf(t) = log [ n / (df(t) + 1) ]).

Если smooth_idf=True (по умолчанию), к числителю и знаменателю idf добавляется константа «1», как если бы был просмотрен дополнительный документ, содержащий каждый термин в наборе ровно один раз, что предотвращает деление на ноль: idf(t) = log [ (1 + n) / (1 + df(t)) ] + 1.

Кроме того, формулы, используемые для вычисления tf и idf, зависят от параметров, которые соответствуют обозначению SMART, используемому в поиске информации следующим образом:

Tf по умолчанию «n» (естественный), «l» (логарифмический), когда sublinear_tf=True. Idf — «t», когда задан use_idf, «n» (нет) в противном случае. Нормализация — «c» (косинусная), когда norm='l2', «n» (нет) когда norm=None.

Дополнительную информацию см. в Руководстве пользователя.

Параметры:
norm{‘l1’, ‘l2’} или None, по умолчанию=’l2’

Каждая строка вывода будет иметь единичную норму, либо:

  • ‘l2’: Сумма квадратов элементов вектора равна 1. Косинусное сходство между двумя векторами — это их скалярное произведение, когда применена норма l2.
  • ‘l1’: Сумма абсолютных значений элементов вектора равна 1. См. normalize.
  • None: Без нормализации.
use_idfbool, по умолчанию=True

Включить обратное взвешивание частоты документа. Если False, idf(t) = 1.

smooth_idfbool, по умолчанию=True

Сгладить веса idf, добавив единицу к частотам документов, как если бы был просмотрен дополнительный документ, содержащий каждый термин в наборе ровно один раз. Предотвращает деление на ноль.

sublinear_tfbool, по умолчанию=False

Применить сублинейное масштабирование tf, т. е. заменить tf на 1 + log(tf).

Атрибуты:
idf_массив формы (n_features)

Вектор обратной частоты документа (IDF); определен только если use_idf True.

Добавлен в версии 0.20.

n_features_in_int

Количество признаков, встреченных во время fit.

Добавлен в версии 1.0.

feature_names_in_массив формы (n_features_in_,)

Имена признаков, встреченных во время fit. Определены только тогда, когда X имеет имена признаков, которые все являются строками.

Добавлен в версии 1.0.

См. также

CountVectorizer

Преобразует текст в разреженную матрицу подсчёта n-грам.

TfidfVectorizer

Преобразует набор исходных документов в матрицу признаков TF-IDF.

HashingVectorizer

Преобразует набор текстовых документов в матрицу вхождений токенов.

Ссылки

[Yates2011]

R. Baeza-Yates и B. Ribeiro-Neto (2011). Современный поиск информации. Addison Wesley, стр. 68-74.

[MRS2008]

C.D. Manning, P. Raghavan и H. Schütze (2008). Введение в поиск информации. Cambridge University Press, стр. 118-120.

Примеры

>>> from sklearn.feature_extraction.text import TfidfTransformer
>>> from sklearn.feature_extraction.text import CountVectorizer
>>> from sklearn.pipeline import Pipeline
>>> corpus = ['this is the first document',
...           'this document is the second document',
...           'and this is the third one',
...           'is this the first document']
>>> vocabulary = ['this', 'document', 'first', 'is', 'second', 'the',
...               'and', 'one']
>>> pipe = Pipeline([('count', CountVectorizer(vocabulary=vocabulary)),
...                  ('tfid', TfidfTransformer())]).fit(corpus)
>>> pipe['count'].transform(corpus).toarray()
array([[1, 1, 1, 1, 0, 1, 0, 0],
       [1, 2, 0, 1, 1, 1, 0, 0],
       [1, 0, 0, 1, 0, 1, 1, 1],
       [1, 1, 1, 1, 0, 1, 0, 0]])
>>> pipe['tfid'].idf_
array([1.        , 1.22314355, 1.51082562, 1.        , 1.91629073,
       1.        , 1.91629073, 1.91629073])
>>> pipe.transform(corpus).shape
(4, 8)
fit(X, y=None)[source]

Обучить вектор idf (глобальные веса терминов).

Параметры:
Xразреженная матрица формы (n_samples, n_features)

Матрица подсчёта терминов/токенов.

yNone

Этот параметр не нужен для вычисления tf-idf.

Возвращает:
selfобъект

Обученный преобразователь.

fit_transform(X, y=None, **fit_params)[source]

Обучить данные, а затем преобразовать их.

Обучает преобразователь к X и y с необязательными параметрами fit_params и возвращает преобразованную версию X.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Входные образцы.

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевые значения (None для безконтрольных преобразований).

**fit_paramsdict

Дополнительные параметры обучения.

Возвращает:
X_newмассив ndarray формы (n_samples, n_features_new)

Преобразованный массив.

get_feature_names_out(input_features=None)[source]

Получить имена выходных признаков для преобразования.

Параметры:
input_featuresмассив-подобный из str или None, по умолчанию=None

Входные признаки.

  • Если input_features None, то feature_names_in_ используются в качестве имён признаков. Если feature_names_in_ не определено, то генерируются следующие имена входных признаков: ["x0", "x1", ..., "x(n_features_in_ - 1)"].
  • Если input_features является массивоподобным, то input_features должен соответствовать feature_names_in_, если feature_names_in_ определено.
Возвращает:
feature_names_outмассив объектов str

Также как входные признаки.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, обратитесь к Руководству пользователя для получения информации о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

Объект MetadataRequest, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, вернет параметры этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsdict

Имена параметров, сопоставленные со значениями.

set_output(*, transform=None)[source]

Установить контейнер вывода.

См. Введение в API set_output для примера использования API.

Параметры:
transform{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода по умолчанию трансформатора
  • "pandas": Вывод DataFrame
  • "polars": Вывод Polars
  • None: Настройки трансформации остаются без изменений

Добавлен в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_params(**params)[source]

Установить параметры этого оценщика.

Метод работает как с простыми оценщиками, так и со вложенными объектами (такими как Pipeline). У последних параметры имеют вид <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр оценщика

Экземпляр оценщика.

set_transform_request(*, copy:bool|None|str='$UNCHANGED$') → TfidfTransformer[source]

Запрос метаданных, передаваемых методу transform.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, см. Руководство пользователя для получения информации о том, как работает механизм маршрутизации.

Возможные значения для каждого параметра:

  • True: метаданные запрашиваются и передаются в transform при наличии. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-оценщик не передаст их transform.
  • None: метаданные не запрашиваются, и мета-оценщик выведет ошибку, если пользователь предоставит их.
  • str: метаданные должны быть переданы мета-оценщику с указанным псевдонимом вместо исходного названия.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров и не менять для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот оценщик используется как под-оценщик мета-оценщика, например, внутри Pipeline. В противном случае он не влияет.

Параметры:
copystr, True, False, или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра copy в transform.

Возвращает:
selfобъект

Обновленный объект.

transform(X, copy=True)[source]

Преобразование матрицы подсчетов в представление tf или tf-idf.

Параметры:
Xразреженная матрица (n_samples, n_features)

Матрица подсчетов терминов/токенов.

copybool, по умолчанию=True

Копировать X и выполнять операции над копией или выполнять операции на месте. copy=False будет эффективным только с CSR разреженной матрицей.

Возвращает:
vectorsразреженная матрица формы (n_samples, n_features)

Матрица весов документов-терминов, взвешенных по tf-idf.

Примеры из галереи

Полунадзорная классификация текстовых данных

Кластеризация текстовых документов с помощью k-средних

Сравнение FeatureHasher и DictVectorizer

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.feature_extraction.text.TfidfTransformer.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API