Spec-Zone.ru › scikit-learn

TfidfVectorizer

classsklearn.feature_extraction.text.TfidfVectorizer(*, input='content', encoding='utf-8', decode_error='strict', strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, analyzer='word', stop_words=None, token_pattern='(?u)\\b\\w\\w+\\b', ngram_range=(1, 1), max_df=1.0, min_df=1, max_features=None, vocabulary=None, binary=False, dtype=<class 'numpy.float64'>, norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)[source]

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

Эквивалентно CountVectorizer, после чего следует TfidfTransformer.

Пример использования см. в Классификация текстовых документов с использованием разреженных признаков.

Сравнение эффективности различных экстракторов признаков см. в Сравнение FeatureHasher и DictVectorizer.

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

Подробнее см. в Руководстве пользователя.

Параметры:
input{‘filename’, ‘file’, ‘content’}, по умолчанию=’content’
  • Если 'filename', последовательность, переданная в качестве аргумента в fit, ожидается как список имен файлов, которые необходимо прочитать для извлечения исходного содержимого для анализа.
  • Если 'file', элементы последовательности должны иметь метод ‘read’ (объект типа файла), который вызывается для извлечения байтов в памяти.
  • Если 'content', входной параметр ожидается как последовательность элементов, которые могут быть строками или байтами.
encodingстрока, по умолчанию=’utf-8’

Если для анализа используются байты или файлы, для декодирования используется указанная кодировка.

decode_error{‘strict’, ‘ignore’, ‘replace’}, по умолчанию=’strict’

Инструкции по обработке, если для анализа передается последовательность байтов, содержащая символы, не соответствующие указанной encoding. По умолчанию используется ‘strict’, что означает, что будет возбуждено исключение UnicodeDecodeError. Допустимы также значения ‘ignore’ и ‘replace’.

strip_accents{‘ascii’, ‘unicode’} или вызываемый объект, по умолчанию=None

Удаляет ударения и выполняет другую нормализацию символов во время предварительной обработки. ‘ascii’ — быстрый метод, работающий только с символами, имеющими прямое соответствие в ASCII. ‘unicode’ — немного медленный метод, работающий с любыми символами. None (по умолчанию) означает, что нормализация символов не выполняется.

‘ascii’ и ‘unicode’ используют нормализацию NFKD из unicodedata.normalize.

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

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

preprocessorвызываемый объект, по умолчанию=None

Переопределить этап предварительной обработки (преобразование строк), сохранив при этом этапы токенизации и генерации n-грамм. Применяется только если analyzer не является вызываемым объектом.

tokenizerвызываемый объект, по умолчанию=None

Переопределить этап токенизации строк, сохранив при этом этапы предварительной обработки и генерации n-грамм. Применяется только если analyzer == 'word'.

analyzer{‘word’, ‘char’, ‘char_wb’} или вызываемый объект, по умолчанию=’word’

Определяет, должны ли признаки быть n-граммами слов или символов. Вариант ‘char_wb’ создает n-граммы символов только из текста внутри границ слов; n-граммы на границах слов дополняются пробелами.

Если передан вызываемый объект, он используется для извлечения последовательности признаков из исходного, необработанного ввода.

Изменено в версии 0.21: Начиная с версии 0.21, если input равно 'filename' или 'file', данные сначала считываются из файла, а затем передаются в переданный вызываемый объект анализатор.

stop_words{‘english’}, список, по умолчанию=None

Если строка, она передается в _check_stop_list, и возвращается соответствующий список стоп-слов. ‘english’ — единственное поддерживаемое строковое значение на данный момент. Существуют известные проблемы с ‘english’, и вы должны рассмотреть альтернативные варианты (см. Использование стоп-слов).

Если список, предполагается, что этот список содержит стоп-слова, которые будут удалены из полученных токенов. Применяется только если analyzer == 'word'.

Если None, стоп-слова не будут использоваться. В этом случае установка max_df на большее значение, например, в диапазоне (0.7, 1.0), может автоматически обнаруживать и отфильтровывать стоп-слова на основе частоты терминов внутри корпуса документов.

token_patternстрока, по умолчанию=r”(?u)\b\w\w+\b”

Регулярное выражение, определяющее, что такое «токен», используется только если analyzer == 'word'. По умолчанию регулярное выражение выбирает токены из 2 или более буквенно-цифровых символов (знаки препинания полностью игнорируются и всегда обрабатываются как разделители токенов).

Если в token_pattern есть группа захвата, то содержимое этой группы, а не все совпадение, становится токеном. Разрешено не более одной группы захвата.

ngram_rangeкортеж (min_n, max_n), по умолчанию=(1, 1)

Нижняя и верхняя граница диапазона n-значений для разных n-грамм, которые необходимо извлечь. Все значения n такие, что min_n <= n <= max_n, будут использованы. Например, ngram_range от (1, 1) означает только униграммы, (1, 2) означает униграммы и биграммы, а (2, 2) означает только биграммы. Применяется только если analyzer не является вызываемым объектом.

max_dfвещественное или целое число, по умолчанию=1.0

При построении словаря игнорируются термины, частота которых в документах строго больше заданного порога (корпусные стоп-слова). Если вещественное число в диапазоне [0.0, 1.0], параметр представляет собой долю документов, целое число — абсолютные счетчики. Этот параметр игнорируется, если словарь не None.

min_dfвещественное или целое число, по умолчанию=1

При построении словаря игнорируются термины, частота которых в документах строго меньше заданного порога. Это значение также называется порогом в литературе. Если вещественное число в диапазоне [0.0, 1.0], параметр представляет собой долю документов, целое число — абсолютные счетчики. Этот параметр игнорируется, если словарь не None.

max_featuresцелое число, по умолчанию=None

Если не None, строится словарь, который учитывает только max_features самых частотных терминов в корпусе. В противном случае используются все признаки.

Этот параметр игнорируется, если словарь не None.

vocabularyотображение или итерируемый объект, по умолчанию=None

Либо отображение (например, словарь), где ключи — термины, а значения — индексы в матрице признаков, либо итерируемый объект над терминами. Если не задано, словарь определяется по входным документам.

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

Если True, все не нулевые подсчеты терминов устанавливаются в 1. Это не означает, что выходы будут только значениями 0/1, только что tf-термин в tf-idf является двоичным. (Установите binary на True, use_idf на False и norm на None, чтобы получить выходы 0/1).

dtypedtype, по умолчанию=float64

Тип матрицы, возвращаемой fit_transform() или transform().

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).

Атрибуты:
vocabulary_словарь

Сопоставление терминов с индексами признаков.

fixed_vocabulary_bool

True, если пользователь предоставил фиксированный словарь сопоставления терминов и индексов.

idf_массив формы (n_features,)

Вектор обратной частоты документов, определен только если use_idf=True.

END_OF_DOCUMENT_MARKER

См. также

CountVectorizer

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

TfidfTransformer

Выполняет преобразование TF-IDF из предоставленной матрицы подсчетов.

Примеры

>>> from sklearn.feature_extraction.text import TfidfVectorizer
>>> corpus = [
...     'This is the first document.',
...     'This document is the second document.',
...     'And this is the third one.',
...     'Is this the first document?',
... ]
>>> vectorizer = TfidfVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> vectorizer.get_feature_names_out()
array(['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third',
       'this'], ...)
>>> print(X.shape)
(4, 9)
build_analyzer()[source]

Возвращает вызываемую функцию для обработки входных данных.

Вызываемая функция обрабатывает предобработку, токенизацию и генерацию n-грамм.

Возвращает:
analyzer: callable

Функция для обработки предобработки, токенизации и генерации n-грамм.

build_preprocessor()[source]

Возвращает функцию для предобработки текста перед токенизацией.

Возвращает:
preprocessor: callable

Функция для предобработки текста перед токенизацией.

build_tokenizer()[source]

Возвращает функцию, которая разделяет строку на последовательность токенов.

Возвращает:
tokenizer: callable

Функция для разделения строки на последовательность токенов.

decode(doc)[source]

Декодирует вход в строку символов Юникод.

Стратегия декодирования зависит от параметров векторной модели.

Параметры:
docbytes или str

Строка для декодирования.

Возвращает:
doc: str

Строка символов Юникод.

fit(raw_documents, y=None)[source]

Обучает словарь и idf на наборе обучения.

Параметры:
raw_documentsитерируемый объект

Итерируемый объект, генерирующий str, unicode или объекты файлов.

yNone

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

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

Обученный векторizer.

fit_transform(raw_documents, y=None)[source]

Обучает словарь и idf, возвращает матрицу документов-терминов.

Это эквивалентно fit, за которым следует transform, но реализовано более эффективно.

Параметры:
raw_documentsитерируемый объект

Итерируемый объект, генерирующий str, unicode или объекты файлов.

yNone

Этот параметр игнорируется.

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

Матрица документов-терминов с весами TF-IDF.

get_feature_names_out(input_features=None)[source]

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

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

Не используется, присутствует здесь для согласованности API по соглашению.

Возвращает:
feature_names_outndarray из str объектов

Преобразованные имена признаков.

get_metadata_routing()[source]

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

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

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

Оборачивающий MetadataRequest информацию о маршрутизации.

get_params(deep=True)[source]

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

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

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

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

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

get_stop_words()[source]

Создать или получить эффективный список стоп-слов.

Возвращает:
stop_words: список или None

Список стоп-слов.

END_OF_DOCUMENT_MARKER
свойствоidf_

Вектор обратной частоты документа, определён только если use_idf=True.

Возвращает:
вектор ndarray формы (n_features,)
inverse_transform(X)[source]

Возвращает термины на документ с ненулевыми значениями в X.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Матрица документ-термин.

Возвращает:
X_invсписок массивов формы (n_samples,)

Список массивов терминов.

set_params(**params)[source]

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

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

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

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

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

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

transform(raw_documents)[source]

Преобразует документы в матрицу документ-термин.

Использует словарь и частоты документов (df), вычисленные в результате метода fit (или fit_transform).

Параметры:
raw_documentsiterable

Итерируемый объект, генерирующий объекты str, unicode или file.

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

Матрица документ-термин с tf-idf весами.

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

Биклостеризация документов с помощью алгоритма спектральной ко-кластеризации

Извлечение тем с помощью Неотрицательной матричной факторизации и Распределения по темам Лапласа

Пример конвейера для извлечения текстовых признаков и оценки

Преобразователь столбцов с разнородными источниками данных

Классификация текстовых документов с использованием разреженных признаков

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

Сравнение 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.TfidfVectorizer.html

Spec-Zone.ru

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