Spec-Zone.ru › scikit-learn

CountVectorizer

classsklearn.feature_extraction.text.CountVectorizer(*, 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', max_df=1.0, min_df=1, max_features=None, vocabulary=None, binary=False, dtype=<class 'numpy.int64'>)[source]

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

Эта реализация создаёт разреженное представление счётчиков с помощью scipy.sparse.csr_array.

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

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

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

Параметры:
input{‘filename’, ‘file’, ‘content’}, default=’content’
  • Если 'filename', предполагается, что последовательность, переданная в качестве аргумента методу fit, представляет собой список имён файлов, которые нужно прочитать для получения исходного содержимого для анализа.
  • Если 'file', элементы последовательности должны иметь метод ‘read’ (файловый объект), который вызывается для получения байтов в памяти.
  • Если 'content', ожидается, что входные данные — это последовательность элементов типа string или byte.
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

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

tokenizercallable, default=None

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

stop_words{‘english’}, list, default=None

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

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

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

token_patternstr or None, default=r”(?u)\b\w\w+\b”

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

Если в 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, данные сначала считываются из файла, а затем передаются указанному вызываемому анализатору.

max_dffloat in range [0.0, 1.0] or int, default=1.0

При построении словаря игнорирует термины, частота документов которых строго превышает заданный порог (стоп-слова, характерные для корпуса). Если задано значение float, параметр задаёт долю документов; если целое число — абсолютное количество. Этот параметр игнорируется, если vocabulary не равно None.

min_dffloat in range [0.0, 1.0] or int, default=1

При построении словаря игнорирует термины, частота документов которых строго ниже заданного порога. В литературе это значение также называют порогом отсечения. Если задано значение float, параметр задаёт долю документов; если целое число — абсолютное количество. Этот параметр игнорируется, если vocabulary не равно None.

max_featuresint, default=None

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

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

vocabularyMapping or iterable, default=None

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

binarybool, default=False

Если задано значение True, все ненулевые счётчики устанавливаются в 1. Это полезно для дискретных вероятностных моделей, которые моделируют бинарные события, а не целочисленные счётчики.

dtypedtype, default=np.int64

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

Атрибуты:
vocabulary_dict

Отображение терминов на индексы признаков.

fixed_vocabulary_bool

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

См. также

HashingVectorizer

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

TfidfVectorizer

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

Примеры

>>> from sklearn.feature_extraction.text import CountVectorizer
>>> corpus = [
...     'This is the first document.',
...     'This document is the second document.',
...     'And this is the third one.',
...     'Is this the first document?',
... ]
>>> vectorizer = CountVectorizer()
>>> X = vectorizer.fit_transform(corpus)
>>> vectorizer.get_feature_names_out()
array(['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third',
       'this'], ...)
>>> print(X.toarray())
[[0 1 1 1 0 0 1 0 1]
 [0 2 0 1 0 1 1 0 1]
 [1 0 0 1 1 0 1 1 1]
 [0 1 1 1 0 0 1 0 1]]
>>> vectorizer2 = CountVectorizer(analyzer='word', ngram_range=(2, 2))
>>> X2 = vectorizer2.fit_transform(corpus)
>>> vectorizer2.get_feature_names_out()
array(['and this', 'document is', 'first document', 'is the', 'is this',
       'second document', 'the first', 'the second', 'the third', 'third one',
       'this document', 'this is', 'this the'], ...)
 >>> print(X2.toarray())
 [[0 0 1 1 0 0 1 0 0 0 0 1 0]
 [0 1 0 1 0 1 0 1 0 0 1 0 0]
 [1 0 0 1 0 0 0 0 1 1 0 1 0]
 [0 0 1 0 1 0 1 0 0 0 0 0 1]]
build_analyzer()[source]

Возвращает вызываемый объект для обработки входных данных.

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

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

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

build_preprocessor()[source]

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

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

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

build_tokenizer()[source]

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

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

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

decode(doc)[source]

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

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

Параметры:
docbytes or str

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

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

Строка символов Unicode.

fit(raw_documents, y=None)[source]

Обучает словарь, содержащий все токены из исходных документов.

Параметры:
raw_documentsiterable

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

yNone

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

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

Обученный векторизатор.

fit_transform(raw_documents, y=None)[source]

Обучает словарь и возвращает матрицу «документ — термин».

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

Параметры:
raw_documentsiterable

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

yNone

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

Возвращает:
Xarray of shape (n_samples, n_features)

Матрица «документ — термин».

get_feature_names_out(input_features=None)[source]

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

Параметры:
input_featuresarray-like of str or None, default=None

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

Возвращает:
feature_names_outndarray of str objects

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

get_metadata_routing()[source]

Возвращает сведения о маршрутизации метаданных этого объекта.

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

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

Объект MetadataRequest, содержащий сведения о маршрутизации.

get_params(deep=True)[source]

Возвращает параметры этого оценщика.

Параметры:
deepbool, default=True

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

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

Имена параметров и соответствующие им значения.

get_stop_words()[source]

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

Возвращает:
stop_words: list or None

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

inverse_transform(X)[source]

Возвращает термины для каждого документа, соответствующие ненулевым элементам X.

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

Матрица «документ — термин».

Возвращает:
X_originallist of arrays of shape (n_samples,)

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

set_params(**params)[source]

Задаёт параметры этого оценщика.

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

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

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

Возвращает:
selfestimator instance

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

transform(raw_documents)[source]

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

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

Параметры:
raw_documentsiterable

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

Возвращает:
Xsparse matrix of shape (n_samples, n_features)

Матрица «документ — термин».

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

Извлечение тем с помощью неотрицательной матричной факторизации и латентного размещения Дирихле

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

Сравнение FeatureHasher и DictVectorizer

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.feature_extraction.text.CountVectorizer.html

Spec-Zone.ru

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