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_idfTrue.Добавлен в версии 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_featuresNone, то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.
Примеры из галереи
© 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