sklearn.feature_extraction.text.CountVectorizer

class sklearn.feature_extraction.text.CountVectorizer

Convertir una colección de documentos de texto en una matriz de conteo de tokens

Esta implementación produce una representación dispersa de los conteos utilizando scipy.sparse.csr_matrix.

Si no proporcionas un diccionario a priori y no utilizas un analizador que haga algún tipo de selección de características, entonces el número de características será igual al tamaño del vocabulario encontrado al analizar los datos.

Lee más en el Manual de usuario.

Parámetros
inputstring {“filename”, “file”, “content”}, default=”content”

Si es “filename”, se espera que la secuencia pasada como argumento a fit sea una lista de nombres de archivos que necesitan ser leídos para obtener el contenido en bruto a analizar.

Si es “file”, los elementos de la secuencia deben tener un método “read” de lectura (objeto file-like) que se invoca para obtener los bytes en la memoria.

En caso contrario, se espera que la entrada sea una secuencia de elementos que pueden ser de tipo cadena (string) o byte.

encodingstring, default=”utf-8”

Si se dan bytes o archivos para analizar, se utiliza esta codificación para decodificar.

decode_error{“strict”, “ignore”, “replace”}, default=”strict”

Instrucción sobre qué hacer si se proporciona una secuencia de bytes para analizar que contiene caracteres que no pertencen al encoding (codificación) dado. Por defecto, es “strict”, lo que significa que se producirá un UnicodeDecodeError. Otros valores son “ignore” y “replace”.

strip_accents{“ascii”, “unicode”}, default=None

Elimina acentos y realiza otra normalización de caracteres durante el paso de preprocesamiento. “ascii” es un método rápido que sólo funciona sobre caracteres que tienen un mapeo ASCII directo. “unicode” es un método ligeramente más lento que funciona en cualquier carácter. None (predeterminado) no hace nada.

Tanto “ascii” como “unicode” utilizan la normalización NFKD de unicodedata.normalize.

lowercasebool, default=True

Convierte todos los caracteres en minúsculas antes de la tokenización.

preprocessorcallable, default=None

Anula la etapa de preprocesamiento (strip_accents y lowercase) conservando las etapas de tokenización y generación de n-gramas. Sólo se aplica si analyzer no es invocable.

tokenizercallable, default=None

Anula el paso de tokenización de cadenas conservando los pasos de preprocesamiento y generación de n-gramas. Sólo se aplica si analyzer == 'word'.

stop_wordsstring {“english”}, list, default=None

Si es “english”, se utiliza una lista de palabras funcionales incorporada para el inglés. Hay varias incidencias conocidas con “english” y deberías considerar una alternativa (ver Usando palabras funcionales (stop words)).

Si es una lista (list), se asume que dicha lista contiene palabras funcionales, las cuales serán eliminadas de los tokens resultantes. Sólo se aplica si analyzer == 'word'.

Si es None, no se utilizará ninguna de las palabras funcionales. max_df puede establecerse en un valor en el rango [0.7, 1.0) para detectar y filtrar automáticamente las palabras funcionales basándose en la frecuencia de los términos del documento dentro del corpus.

token_patternstr, default=r»(?u)\b\w\w+\b»

Expresión regular que denota lo que constituye un «token», sólo se utiliza si analyzer == 'word'. La regexp predeterminada selecciona tokens de 2 o más caracteres alfanuméricos (la puntuación se ignora por completo y se trata siempre como un separador de tokens).

Si hay un grupo de captura en token_pattern entonces el contenido del grupo capturado, no la correspondencia completa, se convierte en el token. Se permite como máximo un grupo de captura.

ngram_rangetuple (min_n, max_n), default=(1, 1)

El límite inferior y superior del rango de n-valores para los diferentes n-gramas de palabras o n-gramas de caracteres que se van a extraer. Se utilizarán todos los valores de n tales que min_n <= n <= max_n. Por ejemplo, un ngram_range de (1, 1) significa sólo unigramas, (1, 2) significa unigramas y bigramas, y (2, 2) significa sólo bigramas. Sólo se aplica si analyzer is not callable.

analyzer{“word”, “char”, “char_wb”} o callable, default=”word”

Si la característica debe estar hecha de n-gramas de palabras o de n-gramas de caracteres. La opción “char_wb” crea n-gramas de caracteres sólo a partir del texto dentro de los límites de las palabras; los n-gramas en los bordes de las palabras se rellenan con espacio.

Si se pasa un invocable, se utiliza para extraer la secuencia de características de la entrada en bruto y sin procesar.

Distinto en la versión 0.21.

Desde la v0.21, si input es filename o file, los datos se leen primero del archivo y luego se pasan al analizador invocable dado.

max_dffloat en el rango [0.0, 1.0] o int, default=1.0

Cuando se construye el vocabulario se ignoran los términos que tienen una frecuencia de documento estrictamente superior al umbral dado (palabras funcionales específicas del corpus). Si es un número de punto flotante (float), el parámetro representa una proporción de documentos, cuentas absolutas enteras. Este parámetro se ignora si vocabulary no es None.

min_dffloat en el rango [0.0, 1.0] o int, default=1

Al construir el vocabulario se ignoran los términos que tienen una frecuencia de documento estrictamente inferior al umbral dado. Este valor también se denomina cut-off en la literatura. Si es un número de punto flotante (float), el parámetro representa una proporción de documentos, conteo absoluto entero. Este parámetro se ignora si vocabulary no es None.

max_featuresint, default=None

Si no es None, construye un vocabulario que sólo ten en cuenta el top de max_features ordenado por la frecuencia de los términos en todo el corpus.

Este parámetro es ignorado si vocabulary no es None.

vocabularyMapping o iterable, default=None

Un mapeo (por ejemplo, un dict) donde las claves son términos y los valores son índices en la matriz de características, o un iterable sobre términos. Si no se da, se determina un vocabulario a partir de los documentos de entrada. Los índices en el mapeo no deben repetirse y no deben tener ninguna brecha entre 0 y el índice más grande.

binarybool, default=False

Si es True, todos los contadores distintos de cero se establecen en 1. Esto es útil para modelos probabilísticos discretos que modelan eventos binarios en lugar de conteos enteros.

dtypetype, default=np.int64

Tipo de la matriz devuelta por fit_transform() o transform().

Atributos
vocabulary_dict

Un mapeo de términos para los índices de características.

fixed_vocabulary_: boolean

True si el usuario proporciona un vocabulario fijo de mapeo de términos a índices

stop_words_set

Términos que fueron ignorados porque:

  • aparecen en demasiados documentos (max_df)

  • aparecen en muy pocos documentos (min_df)

  • se han eliminado mediante la selección de características (max_features).

Esto sólo está disponible si no se ha dado ningún vocabulario.

Notas

El atributo stop_words_ puede hacerse grande y aumentar el tamaño del modelo cuando se hace el pickling. Este atributo se proporciona sólo para la introspección y se puede eliminar de forma segura utilizando delattr o estableciendo None antes del pickling.

Ejemplos

>>> 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)
>>> print(vectorizer.get_feature_names())
['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)
>>> print(vectorizer2.get_feature_names())
['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]]

Métodos

build_analyzer

Devuelve un invocable que maneja el preprocesamiento, tokenización y la generación de n-gramas.

build_preprocessor

Devuelve una función para preprocesar el texto antes de la tokenización.

build_tokenizer

Devuelve una función que divide una cadena en una secuencia de tokens.

decode

Decodifica la entrada en una cadena de símbolos Unicode.

fit

Aprende un diccionario de vocabulario de todos los tokens en los documentos en bruto.

fit_transform

Aprende el diccionario de vocabulario y devuelve la matriz de términos y documentos (document-term).

get_feature_names

Mapeo de arreglos de índices enteros de características a nombres de características.

get_params

Obtiene los parámetros para este estimador.

get_stop_words

Construye o busca la lista efectiva de palabras funcionales.

inverse_transform

Devuelve los términos por documento con entradas no nulas en X.

set_params

Establece los parámetros de este estimador.

transform

Transforma los documentos a la matriz documento-término (document-term).

build_analyzer()

Devuelve un invocable que maneja el preprocesamiento, tokenización y la generación de n-gramas.

Devuelve
analyzer: callable

Una función para manejar el preprocesamiento, tokenización y la generación de n-gramas.

build_preprocessor()

Devuelve una función para preprocesar el texto antes de la tokenización.

Devuelve
preprocessor: callable

Una función para preprocesar el texto antes de la tokenización.

build_tokenizer()

Devuelve una función que divide una cadena en una secuencia de tokens.

Devuelve
tokenizer: callable

Una función para dividir una cadena en una secuencia de tokens.

decode()

Decodifica la entrada en una cadena de símbolos Unicode.

La estrategia de decodificación depende de los parámetros del vectorizador.

Parámetros
docstr

La cadena a decodificar.

Devuelve
doc: str

Una cadena de símbolos Unicode.

fit()

Aprende un diccionario de vocabulario de todos los tokens en los documentos en bruto.

Parámetros
raw_documentsiterable

Un iterable que produce objetos str, unicode o file.

Devuelve
self
fit_transform()

Aprende el diccionario de vocabulario y devuelve la matriz de términos y documentos (document-term).

Esto es equivalente al ajuste (fit) seguido de la transformación (transform), pero se implementa de forma más eficiente.

Parámetros
raw_documentsiterable

Un iterable que produce objetos str, unicode o file.

Devuelve
Xarreglo de forma (n_samples, n_features)

Matriz documento-término (document-term).

get_feature_names()

Mapeo de arreglos de índices enteros de características a nombres de características.

Devuelve
feature_nameslist

Una lista de nombres de características.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Los nombres de los parámetros mapeados a sus valores.

get_stop_words()

Construye o busca la lista efectiva de palabras funcionales.

Devuelve
stop_words: lista o None

Una lista de palabras funcionales.

inverse_transform()

Devuelve los términos por documento con entradas no nulas en X.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Matriz documento-término (document-term).

Devuelve
X_invlista de arreglo de forma (n_samples,)

Lista de arreglos de términos.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto en estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia de estimador

Instancia del estimador.

transform()

Transforma los documentos a la matriz documento-término (document-term).

Extrae los conteos de tokens de los documentos de texto en bruto utilizando el vocabulario ajustado con fit o el proporcionado al constructor.

Parámetros
raw_documentsiterable

Un iterable que produce objetos str, unicode o file.

Devuelve
Xmatriz dispersa de forma (n_samples, n_features)

Matriz documento-término (document-term).

Ejemplos utilizando sklearn.feature_extraction.text.CountVectorizer