HashingVectorizer
- classsklearn.feature_extraction.text.HashingVectorizer(*, input='content', encoding='utf-8', decode_error='strict', strip_accents=None, lowercase=True, preprocessor=None, tokenizer=None, stop_words=None, token_pattern='(?u)\\b\\w\\w+\\b', ngram_range=(1, 1), analyzer='word', n_features=1048576, binary=False, norm='l2', alternate_sign=True, dtype=<class 'numpy.float64'>)[source]
-
Преобразование коллекции текстовых документов в матрицу встречаемости токенов.
Преобразует коллекцию текстовых документов в матрицу scipy.sparse, содержащую подсчеты встречаемости токенов (или двоичную информацию о встречаемости), возможно, нормализованную как частоты токенов, если norm=’l1’, или спроецированную на единичную сферу евклидова пространства, если norm=’l2’.
Эта реализация векторного преобразования текста использует хэширование для поиска соответствия между именем токена и целочисленным индексом признака.
Эта стратегия имеет несколько преимуществ:
- она очень масштабируема по памяти для больших наборов данных, так как нет необходимости хранить словарь словаря в памяти.
- она быстро сериализуется и десериализуется, поскольку не хранит состояние, кроме параметров конструктора.
- она может использоваться в потоковой (частичной подгонке) или параллельной обработке, так как при подгонке не вычисляется состояние.
Также есть несколько недостатков (по сравнению с использованием CountVectorizer со словарем в памяти):
- нет возможности вычислить обратное преобразование (от индексов признаков к строковым именам признаков), что может быть проблемой, когда нужно проанализировать, какие признаки наиболее важны для модели.
- могут возникать коллизии: разные токены могут быть отображены на один и тот же индекс признака. Однако на практике это редко проблема, если n_features достаточно велико (например, 2 ** 18 для задач классификации текста).
- нет взвешивания IDF, так как это сделало бы преобразователь состоятельным.
Используемая функция хэширования — это 32-битная версия Murmurhash3 со знаком.
Для сравнения эффективности различных экстракторов признаков см. Сравнение FeatureHasher и DictVectorizer.
Для примера кластеризации документов и сравнения с
TfidfVectorizer, см. Кластеризация текстовых документов с помощью k-means.Дополнительную информацию см. в Руководстве пользователя.
- Параметры:
-
- input{‘filename’, ‘file’, ‘content’}, default=’content’
-
- Если
'filename', ожидается, что последовательность, переданная в качестве аргумента в fit, представляет собой список имен файлов, которые необходимо прочитать, чтобы получить исходное содержимое для анализа. - Если
'file', элементы последовательности должны иметь метод ‘read’ (объект типа файла), который вызывается для извлечения байтов в памяти. - Если
'content', входные данные ожидают последовательность элементов, которые могут быть строками или байтами.
- Если
- encodingstr, default=’utf-8’
-
Если для анализа предоставляются байты или файлы, используется эта кодировка для декодирования.
- decode_error{‘strict’, ‘ignore’, ‘replace’}, default=’strict’
-
Инструкция о том, что делать, если для анализа передается последовательность байтов, содержащая символы, не относящиеся к заданной
encoding. По умолчанию это ‘strict’, что означает, что будет возбуждено исключение UnicodeDecodeError. Другие значения — ‘ignore’ и ‘replace’. - strip_accents{‘ascii’, ‘unicode’} or callable, default=None
-
Удаление акцентов и выполнение другой нормализации символов во время предварительной обработки. ‘ascii’ — быстрый метод, который работает только с символами, имеющими прямое соответствие в ASCII. ‘unicode’ — немного более медленный метод, который работает с любым символом. None (по умолчанию) означает, что нормализация символов не выполняется.
И ‘ascii’, и ‘unicode’ используют нормализацию NFKD из
unicodedata.normalize. - lowercasebool, default=True
-
Преобразование всех символов в нижний регистр перед токенизацией.
- preprocessorcallable, default=None
-
Переопределение этапа предварительной обработки (преобразование строк), сохраняя при этом шаги токенизации и генерации n-грамм. Применяется только если
analyzerне является вызываемым. - tokenizercallable, default=None
-
Переопределение шага токенизации строк, сохраняя при этом этапы предварительной обработки и генерации n-грамм. Применяется только если
analyzer == 'word'. - stop_words{‘english’}, list, default=None
-
Если ‘english’, используется встроенный список стоп-слов для английского языка. Существует несколько известных проблем с ‘english’, и вы должны рассмотреть альтернативу (см. Использование стоп-слов).
Если список, предполагается, что этот список содержит стоп-слова, все из которых будут удалены из полученных токенов. Применяется только если
analyzer == 'word'. - token_patternstr or None, default=r”(?u)\b\w\w+\b”
-
Регулярное выражение, определяющее, что представляет собой «токен», используется только если
analyzer == 'word'. По умолчанию регулярное выражение выбирает токены из 2 или более буквенно-цифровых символов (знаки препинания полностью игнорируются и всегда рассматриваются как разделители токенов).Если в token_pattern есть группа захвата, то содержимое захваченной группы, а не весь совпадение, становится токеном. Разрешается не более одной группы захвата.
- ngram_rangetuple (min_n, max_n), default=(1, 1)
-
Нижняя и верхняя границы диапазона n-значений для различных n-грамм, которые необходимо извлечь. Все значения n такие, что min_n <= n <= max_n будут использованы. Например,
ngram_range(1, 1)означает только униграммы,(1, 2)означает униграммы и биграммы, а(2, 2)означает только биграммы. Применяется только еслиanalyzerне является вызываемым. - analyzer{‘word’, ‘char’, ‘char_wb’} or callable, default=’word’
-
Определяет, должны ли признаки представлять собой n-граммы слов или символов. Опция ‘char_wb’ создает n-граммы символов только из текста внутри границ слов; n-граммы на краях слов дополняются пробелами.
Если передается вызываемый объект, он используется для извлечения последовательности признаков из исходных, необработанных входных данных.
Изменено в версии 0.21: Начиная с версии 0.21, если
inputявляется'filename'или'file', данные сначала считываются из файла, а затем передаются в указанный вызываемый объект анализатор. - n_featuresint, default=(2 ** 20)
-
Количество признаков (столбцов) в выходных матрицах. Маленькое количество признаков, вероятно, приведет к коллизиям хэшей, но большое количество приведет к увеличению размерности коэффициентов в линейных моделях.
- binarybool, default=False
-
Если True, все ненулевые счетчики устанавливаются в 1. Это полезно для дискретных вероятностных моделей, которые моделируют бинарные события, а не целочисленные счетчики.
- norm{‘l1’, ‘l2’}, default=’l2’
-
Норма, используемая для нормализации векторов терминов. None для отсутствия нормализации.
- alternate_signbool, default=True
-
При значении True к признакам добавляется чередующийся знак, чтобы приблизительно сохранить скалярное произведение в хэшированном пространстве даже при небольшом количестве признаков. Этот подход похож на рассеянную случайную проекцию.
Добавлен в версии 0.19.
- dtypetype, default=np.float64
-
Тип матрицы, возвращаемой методом fit_transform() или transform().
См. также
CountVectorizer-
Преобразование коллекции текстовых документов в матрицу подсчета токенов.
TfidfVectorizer-
Преобразование коллекции исходных документов в матрицу признаков TF-IDF.
Примечания
Этот оценщик бессостоятельный и не нуждается в подгонке. Однако мы рекомендуем вызывать
fit_transformвместоtransform, так как проверка параметров выполняется только вfit.Примеры
>>> from sklearn.feature_extraction.text import HashingVectorizer >>> corpus = [ ... 'This is the first document.', ... 'This document is the second document.', ... 'And this is the third one.', ... 'Is this the first document?', ... ] >>> vectorizer = HashingVectorizer(n_features=2**4) >>> X = vectorizer.fit_transform(corpus) >>> print(X.shape) (4, 16)
- 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(X, y=None)[source]
-
Только проверяет параметры оценщика.
Этот метод позволяет: (i) проверить параметры оценщика и (ii) обеспечить соответствие API преобразователя scikit-learn.
- Параметры:
-
- Xndarray формы [n_samples, n_features]
-
Данные обучения.
- yИгнорируется
-
Не используется, присутствует для соответствия API по соглашению.
- Возвращает:
-
- selfобъект
-
Экземпляр HashingVectorizer.
- fit_transform(X, y=None)[source]
-
Преобразует последовательность документов в матрицу документ-термин.
- Параметры:
-
- Xитерируемый по текстовым документам, длина = n_samples
-
Образцы. Каждый образец должен быть текстовым документом (строками байтов или Юникод, именем файла или объектом файла в зависимости от аргумента конструктора), который будет токенизирован и хеширован.
- yлюбое
-
Игнорируется. Этот параметр существует только для совместимости с sklearn.pipeline.Pipeline.
- Возвращает:
-
- Xразреженная матрица формы (n_samples, n_features)
-
Матрица документ-термин.
- get_metadata_routing()[source]
-
Получает маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя о том, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
Оборачивающий
MetadataRequestобъект, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получает параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценщика и содержащихся в нём подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Названия параметров и их значения.
- get_stop_words()[source]
-
Создает или извлекает список эффективных стоп-слов.
- Возвращает:
-
- stop_words: список или None
-
Список стоп-слов.
- partial_fit(X, y=None)[source]
-
Только проверяет параметры оценщика.
Этот метод позволяет: (i) проверить параметры оценщика и (ii) обеспечить соответствие API преобразователя scikit-learn.
- Параметры:
-
- Xndarray формы [n_samples, n_features]
-
Данные обучения.
- yИгнорируется
-
Не используется, присутствует для соответствия API по соглашению.
- Возвращает:
-
- selfобъект
-
Экземпляр HashingVectorizer.
- 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экземпляр оценщика
-
Экземпляр оценщика.
- transform(X)[source]
-
Преобразовать последовательность документов в матрицу документ-термин.
- Параметры:
-
- Xитерируемый по текстовым документам, длина = n_samples
-
Примеры. Каждый пример должен быть текстовым документом (строки байтов или юникод, имя файла или объект файла в зависимости от аргумента конструктора), который будет токенизирован и хеширован.
- Возвращаемое значение:
-
- Xразреженная матрица формы (n_samples, n_features)
-
Матрица документ-термин.
Примеры галереи
© 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.HashingVectorizer.html