Spec-Zone.ru › scikit-learn

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)

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

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

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

Кластеризация текстовых документов с помощью 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.HashingVectorizer.html

Spec-Zone.ru

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