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_matrix.
Если вы не предоставили словарь a-priori и не используете анализатор, который выполняет какой-либо отбор признаков, то количество признаков будет равно размеру словаря, найденному путём анализа данных.
Для сравнения эффективности различных экстракторов признаков см. Сравнение FeatureHasher и DictVectorizer.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- input{‘filename’, ‘file’, ‘content’}, по умолчанию=’content’
-
- Если
'filename', последовательность, переданная в качестве аргумента fit, должна представлять собой список имён файлов, которые необходимо прочитать для извлечения исходного содержимого для анализа. - Если
'file', элементы последовательности должны иметь метод ‘read’ (объект типа файла), который вызывается для извлечения байтов в памяти. - Если
'content', вход ожидается в виде последовательности элементов, которые могут быть строками или байтами.
- Если
- encodingstr, по умолчанию=’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
-
Переопределение этапа предобработки (strip_accents и lowercase), сохраняя при этом этапы токенизации и генерации n-грамм. Применяется только если
analyzerне является вызываемым объектом. - tokenizerвызываемый объект, по умолчанию=None
-
Переопределение этапа токенизации строк, сохраняя при этом этапы предобработки и генерации n-грамм. Применяется только если
analyzer == 'word'. - stop_words{‘english’}, список, по умолчанию=None
-
Если ‘english’, используется встроенный список стоп-слов для английского языка. Существуют некоторые известные проблемы с ‘english’, и вы должны рассмотреть альтернативу (см. Использование стоп-слов).
Если список, этот список предполагается содержащим стоп-слова, все из которых будут удалены из результирующих токенов. Применяется только если
analyzer == 'word'.Если None, стоп-слова не будут использоваться. В этом случае, установка
max_dfна более высокое значение, например, в диапазоне (0,7, 1,0), может автоматически обнаруживать и фильтровать стоп-слова на основе частоты терминов внутри корпуса документов. - token_patternstr или None, по умолчанию=r”(?u)\b\w\w+\b”
-
Регулярное выражение, определяющее, что представляет собой «токен», используется только если
analyzer == 'word'. По умолчанию regexp выбирает токены из 2 или более буквенно-цифровых символов (знаки препинания полностью игнорируются и всегда обрабатываются как разделители токенов).Если в token_pattern есть группа захвата, то содержимое захваченной группы, а не всё совпадение, становится токеном. Разрешается не более одной группы захвата.
- ngram_rangeкортеж (min_n, max_n), по умолчанию=(1, 1)
-
Нижняя и верхняя граница диапазона n-значений для различных n-грамм слов или n-грамм символов, которые необходимо извлечь. Все значения n такие, что min_n <= n <= max_n будут использоваться. Например,
ngram_rangeзначения(1, 1)означает только униграммы,(1, 2)означает униграммы и биграммы, а(2, 2)означает только биграммы. Применяется только еслиanalyzerне является вызываемым объектом. - analyzer{‘word’, ‘char’, ‘char_wb’} или вызываемый объект, по умолчанию=’word’
-
Определяет, должны ли признаки состоять из n-грамм слов или n-грамм символов. Вариант ‘char_wb’ создаёт n-граммы символов только из текста внутри границ слов; n-граммы на краях слов дополняются пробелами.
Если передан вызываемый объект, он используется для извлечения последовательности признаков из исходных, необработанных входных данных.
Изменено в версии 0.21.
С версии 0.21, если
inputявляетсяfilenameилиfile, данные сначала читаются из файла, а затем передаются в переданный вызываемый объект analyzer. - max_dffloat в диапазоне [0.0, 1.0] или int, по умолчанию=1.0
-
При построении словаря игнорировать термины, у которых частота документов строго выше заданного порога (корпусные стоп-слова). Если float, параметр представляет долю документов; целое число — абсолютное количество. Этот параметр игнорируется, если словарь не задан.
- min_dffloat в диапазоне [0.0, 1.0] или int, по умолчанию=1
-
При построении словаря игнорировать термины, у которых частота документов строго ниже заданного порога. Это значение также называется порогом в литературе. Если float, параметр представляет долю документов; целое число — абсолютное количество. Этот параметр игнорируется, если словарь не задан.
- max_featuresint, по умолчанию=None
-
Если не None, строится словарь, который учитывает только лучшие
max_featuresотсортированные по частоте встречаемости в корпусе. В противном случае используются все признаки.Этот параметр игнорируется, если словарь не задан.
- vocabularyотображение или итерируемый объект, по умолчанию=None
-
Либо отображение (например, словарь), где ключи — термины, а значения — индексы в матрице признаков, либо итерируемый объект по терминам. Если не задано, словарь определяется по входным документам. Индексы в отображении не должны повторяться и не должны иметь разрывов между 0 и наибольшим индексом.
- binarybool, по умолчанию=False
-
Если True, все отличные от нуля подсчёты устанавливаются в 1. Это полезно для дискретных вероятностных моделей, которые моделируют бинарные события, а не целые подсчёты.
- dtypedtype, по умолчанию=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]
-
Декодирует входные данные в строку символов Юникод.
Стратегия декодирования зависит от параметров векторизатора.
- Параметры:
-
- docbytes или str
-
Строка для декодирования.
- Возвращает:
-
- doc: str
-
Строка символов Юникод.
- fit(raw_documents, y=None)[source]
-
Обучает словарь терминов всех токенов в исходных документах.
- Параметры:
-
- raw_documentsитерируемый объект
-
Итерируемый объект, генерирующий объекты типа str, unicode или file.
- yNone
-
Этот параметр игнорируется.
- Возвращает:
-
- selfобъект
-
Обученный векторизатор.
- fit_transform(raw_documents, y=None)[source]
-
Обучает словарь терминов и возвращает матрицу документ-термин.
Это эквивалентно fit, за которым следует transform, но реализовано более эффективно.
- Параметры:
-
- raw_documentsитерируемый объект
-
Итерируемый объект, генерирующий объекты типа str, unicode или file.
- yNone
-
Этот параметр игнорируется.
- Возвращает:
-
- Xмассив формы (n_samples, n_features)
-
Матрица документ-термин.
- get_feature_names_out(input_features=None)[source]
-
Получить имена выходных признаков для преобразования.
- Параметры:
-
- input_featuresмассив-подобный тип str или None, по умолчанию=None
-
Не используется, присутствует здесь для согласованности API по соглашению.
- Возвращает:
-
- feature_names_outмассив объектов str
-
Преобразованные имена признаков.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, обратитесь к Руководству пользователя по тому, как работает механизм маршрутизации.
- Возвращает:
-
- routingMetadataRequest
-
MetadataRequest, содержащий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, вернет параметры этого оценщика и вложенных подобъектов, являющихся оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- get_stop_words()[source]
-
Построение или получение эффективного списка стоп-слов.
- Возвращает:
-
- stop_words: список или None
-
Список стоп-слов.
- inverse_transform(X)[source]
-
Возвращает термины каждого документа с ненулевыми записями в X.
- Параметры:
-
- X{массив-подобный тип, разреженная матрица} формы (n_samples, n_features)
-
Матрица документ-термин.
- Возвращает:
-
- X_invсписок массивов формы (n_samples,)
-
Список массивов терминов.
- set_params(**params)[source]
-
Установить параметры этого оценщика.
Метод работает с простыми оценщиками, а также с вложенными объектами (например,
Pipeline). Последние имеют параметры в форме<component>__<parameter>, чтобы можно было обновить каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценщика.
- Возвращает:
-
- selfэкземпляр оценщика
-
Экземпляр оценщика.
- transform(raw_documents)[source]
-
Преобразование документов в матрицу документ-термин.
Извлечение подсчётов токенов из текстовых документов с помощью словаря, обученного методом fit, или предоставленного в конструкторе.
- Параметры:
-
- raw_documentsiterable
-
Итерируемый объект, генерирующий объекты типа str, unicode или file.
- Возвращаемое значение:
-
- 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.CountVectorizer.html