TfidfVectorizer#
-
класс sklearn.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=
'numpy.float64'> , norm='l2', use_idf=True, smooth_idf=True, sublinear_tf=False)[источник]# Преобразовать коллекцию необработанных документов в матрицу признаков TF-IDF.
Эквивалентно
CountVectorizerс последующимTfidfTransformer.Подробнее в Руководство пользователя.
- Параметры:
- входные данные{'filename', 'file', 'content'}, по умолчанию='content'
Если
'filename', последовательность, передаваемая в качестве аргумента в fit, ожидается быть списком имён файлов, которые необходимо прочитать для получения исходного содержимого для анализа.Если
'file', элементы последовательности должны иметь метод 'read' (объект, подобный файлу), который вызывается для получения байтов в памяти.Если
'content', ожидается, что входные данные будут последовательностью элементов, которые могут быть строкового или байтового типа.
- кодировкаstr, по умолчанию='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.- нижний регистрbool, по умолчанию=True
Преобразовать все символы в нижний регистр перед токенизацией.
- препроцессорвызываемый объект, по умолчанию=None
Переопределить этап предобработки (преобразование строк), сохраняя шаги токенизации и генерации n-грамм. Применяется только если
analyzerне является вызываемым.- токенизаторвызываемый объект, по умолчанию=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’}, list, default=None
Если строка, она передается в _check_stop_list и возвращается соответствующий стоп-лист. 'english' в настоящее время единственное поддерживаемое строковое значение. Есть несколько известных проблем с 'english', и вам следует рассмотреть альтернативу (см. Использование стоп-слов).
Если список, предполагается, что этот список содержит стоп-слова, все из которых будут удалены из результирующих токенов. Применяется только если
analyzer == 'word'.Если None, стоп-слова не будут использоваться. В этом случае установка
max_dfдо более высокого значения, например, в диапазоне (0.7, 1.0), может автоматически обнаруживать и фильтровать стоп-слова на основе внутрикорпусной частоты документов терминов.- token_patternstr, по умолчанию=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_rangeof(1, 1)означает только униграммы,(1, 2)означает униграммы и биграммы, и(2, 2)означает только биграммы. Применяется только еслиanalyzerне является вызываемым.- max_dffloat или int, по умолчанию=1.0
При построении словаря игнорировать термины, имеющие частоту документа строго выше заданного порога (стоп-слова, специфичные для корпуса). Если float в диапазоне [0.0, 1.0], параметр представляет долю документов, целочисленные абсолютные значения. Этот параметр игнорируется, если vocabulary не None.
- min_dffloat или int, по умолчанию=1
При построении словаря игнорировать термины, частота документов которых строго ниже заданного порога. Это значение также называется отсечкой в литературе. Если значение типа float в диапазоне [0.0, 1.0], параметр представляет долю документов, целое число — абсолютные количества. Этот параметр игнорируется, если vocabulary не равен None.
- max_featuresint, default=None
Если не None, создает словарь, который учитывает только верхние
max_featuresупорядочены по частоте терминов в корпусе. В противном случае используются все признаки.Этот параметр игнорируется, если vocabulary не None.
- vocabularyMapping или iterable, по умолчанию=None
Либо отображение (например, словарь), где ключи — это термины, а значения — индексы в матрице признаков, либо итерируемый объект по терминам. Если не задано, словарь определяется из входных документов.
- бинарныйbool, по умолчанию=False
Если True, все ненулевые частоты терминов устанавливаются в 1. Это не означает, что выходы будут иметь только значения 0/1, только что tf-компонент в tf-idf является бинарным. (Установите
binaryв True,use_idfв False иnormв None, чтобы получить выходы 0/1).- dtypedtype, default=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_dict
Отображение терминов в индексы признаков.
- 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()[источник]#
Возвращает вызываемый объект для обработки входных данных.
Вызываемый объект обрабатывает предобработку, токенизацию и генерацию n-грамм.
- Возвращает:
- analyzer: вызываемый объект
Функция для обработки предварительной обработки, токенизации и генерации n-грамм.
- build_preprocessor()[источник]#
Возвращает функцию для предварительной обработки текста перед токенизацией.
- Возвращает:
- препроцессор: вызываемый объект
Функция для предварительной обработки текста перед токенизацией.
- build_tokenizer()[источник]#
Возвращает функцию, которая разбивает строку на последовательность токенов.
- Возвращает:
- tokenizer: вызываемый объект
Функция для разделения строки на последовательность токенов.
- декодировать(doc)[источник]#
Декодировать входные данные в строку символов Unicode.
Стратегия декодирования зависит от параметров векторизатора.
- Параметры:
- docbytes или str
Строка для декодирования.
- Возвращает:
- doc: str
Строка символов юникода.
- fit(raw_documents, y=None)[источник]#
Изучить словарь и idf из обучающего набора.
- Параметры:
- raw_documentsитерируемый объект
Итерируемый объект, который генерирует либо str, unicode, либо файловые объекты.
- yNone
Этот параметр не нужен для вычисления tfidf.
- Возвращает:
- selfobject
Подобранный векторизатор.
- fit_transform(raw_documents, y=None)[источник]#
Изучите словарь и idf, верните матрицу документ-термин.
Это эквивалентно fit, за которым следует transform, но реализовано более эффективно.
- Параметры:
- raw_documentsитерируемый объект
Итерируемый объект, который генерирует либо str, unicode, либо файловые объекты.
- yNone
Этот параметр игнорируется.
- Возвращает:
- Xразреженная матрица (n_samples, n_features)
Tf-idf-взвешенная матрица документ-термин.
- get_feature_names_out(input_features=None)[источник]#
Получить имена выходных признаков для преобразования.
- Параметры:
- input_featuresarray-like из str или None, по умолчанию=None
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
- feature_names_outndarray из str объектов
Преобразованные имена признаков.
- 6332()[источник]#
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.
- Возвращает:
- маршрутизацияMetadataRequest
A
MetadataRequestИнкапсуляция информации о маршрутизации.
- get_params(глубокий=True)[источник]#
Получить параметры для этого оценщика.
- Параметры:
- глубокийbool, по умолчанию=True
Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.
- Возвращает:
- paramsdict
Имена параметров, сопоставленные с их значениями.
- get_stop_words()[источник]#
Построить или получить эффективный список стоп-слов.
- Возвращает:
- stop_words: list или None
Список стоп-слов.
- inverse_transform(X)[источник]#
Возвращает термины на документ с ненулевыми элементами в X.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Матрица документ-термин.
- Возвращает:
- X_originalсписок массивов формы (n_samples,)
Список массивов терминов.
- set_params(**params)[источник]#
Установить параметры этого оценщика.
Метод работает как на простых оценщиках, так и на вложенных объектах (таких как
Pipeline). Последние имеют параметры видачтобы можно было обновить каждый компонент вложенного объекта.__ - Параметры:
- **paramsdict
Параметры оценщика.
- Возвращает:
- selfэкземпляр estimator
Экземпляр оценщика.
- преобразовать(raw_documents)[источник]#
Преобразовать документы в матрицу документ-термин.
Использует словарь и частоты документов (df), изученные fit (или fit_transform).
- Параметры:
- raw_documentsитерируемый объект
Итерируемый объект, который генерирует либо str, unicode, либо файловые объекты.
- Возвращает:
- Xразреженная матрица (n_samples, n_features)
Tf-idf-взвешенная матрица документ-термин.
Примеры галереи#
Бикластеризация документов с помощью алгоритма спектральной совместной кластеризации
Трансформер столбцов с разнородными источниками данных
Примерный пайплайн для извлечения и оценки текстовых признаков
Классификация текстовых документов с использованием разреженных признаков
Кластеризация текстовых документов с использованием k-means