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.
См. также
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
-
Список стоп-слов.
- свойство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 весами.
Примеры из галереи
Извлечение тем с помощью Неотрицательной матричной факторизации и Распределения по темам Лапласа
© 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