sklearn.feature_extraction.text
.TfidfVectorizer¶
- class sklearn.feature_extraction.text.TfidfVectorizer¶
Convierte una colección de documentos en bruto en una matriz de características TF-IDF.
Equivale a
CountVectorizer
seguido porTfidfTransformer
.Lee más en el Manual de usuario.
- Parámetros
- input{“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.
- encodingcadena de caracteres, 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.
- preprocessorinvocable, default=None
Anula la etapa de preprocesamiento (transformación de cadenas) conservando las etapas de tokenización y generación de n-gramas. Sólo se aplica si
analyzer
no es invocable.- tokenizerinvocable, 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'
.- 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
esfilename
ofile
, los datos se leen primero del archivo y luego se pasan al analizador invocable dado.- stop_words{“english”}, list, default=None
Si es una cadena (string), se pasa a _check_stop_list y se devuelve la lista de palabras funcionales apropiada. Actualmente, “english” es el único valor de cadenas soportado. 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_patterncadena de caracteres, 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_rangetupla (min_n, max_n), default=(1, 1)
El límite inferior y superior del rango de n-valores para los diferentes n-gramas 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 sianalyzer is not callable
.- max_dffloat 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 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) en el rango de [0.0, 1.0], 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 tenga 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.
- vocabularyMapeo 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.
- binarybool, default=False
Si es True, todos los conteos de términos que no sean cero se establecen en 1. Esto no significa que las salidas tendrán sólo valores 0/1, sólo que el término tf en tf-idf es binario. (Establece idf y la normalización en Falso para obtener salidas de 0/1).
- dtypedtype, default=float64
Tipo de la matriz devuelta por fit_transform() o transform().
- norm{“l1”, “l2”}, default=”l2”
Cada fila de salida tendrá una norma unitaria, ya sea * “l2”: La suma de cuadrados de los elementos del vector es 1. La similitud coseno entre dos vectores es su producto punto cuando se ha aplicado la norma l2. * “l1”: La suma de valores absolutos de los elementos del vector es 1. Ver
preprocessing.normalize
.- use_idfbool, default=True
Activa la reponderación de documento-frecuencia-inverso (inverse-document-frequency).
- smooth_idfbool, default=True
Suaviza los pesos de idf añadiendo uno a las frecuencias del documento, como si se viera un documento extra que contiene cada término en la colección exactamente una vez. Evita las divisiones cero.
- sublinear_tfbool, default=False
Aplica el escalamiento sublineal de tf, es decir, reemplaza tf con 1 + log(tf).
- Atributos
- vocabulary_dict
Un mapeo de términos para los índices de características.
- fixed_vocabulary_: bool
True si el usuario proporciona un vocabulario fijo de mapeo de términos a índices
- idf_arreglo de forma (n_features,)
El vector de frecuencia de documentos inverso (IDF); sólo se define si
use_idf
es True.- 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.
Ver también
CountVectorizer
Transforma el texto en una matriz dispersa de conteos de n-gramas.
TfidfTransformer
Realiza la transformación TF-IDF a partir de una matriz de conteos proporcionada.
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 TfidfVectorizer >>> corpus = [ ... 'This is the first document.', ... 'This document is the second document.', ... 'And this is the third one.', ... 'Is this the first document?', ... ] >>> vectorizer = TfidfVectorizer() >>> X = vectorizer.fit_transform(corpus) >>> print(vectorizer.get_feature_names()) ['and', 'document', 'first', 'is', 'one', 'second', 'the', 'third', 'this'] >>> print(X.shape) (4, 9)
Métodos
Devuelve un invocable que maneja el preprocesamiento, tokenización y la generación de n-gramas.
Devuelve una función para preprocesar el texto antes de la tokenización.
Devuelve una función que divide una cadena en una secuencia de tokens.
Decodifica la entrada en una cadena de símbolos Unicode.
Aprende el vocabulario y el idf del conjunto de entrenamiento.
Aprende el vocabulario y el idf, devuelve la matriz documento-término (document-term).
Mapeo de arreglos de índices enteros de características a nombres de características.
Obtiene los parámetros para este estimador.
Construye o busca la lista efectiva de palabras funcionales.
Devuelve los términos por documento con entradas no nulas en X.
Establece los parámetros de este estimador.
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 el vocabulario y el idf del conjunto de entrenamiento.
- Parámetros
- raw_documentsiterable
Un iterable que produce objetos str, unicode o file.
- yNone
Este parámetro no es necesario para calcular tfidf.
- Devuelve
- selfobject
Vectorizador ajustado.
- fit_transform()¶
Aprende el vocabulario y el idf, devuelve la matriz documento-término (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.
- yNone
Este parámetro es ignorado.
- Devuelve
- Xmatriz dispersa de forma (n_samples, n_features)
Matriz documento-término ponderada por Tf-idf.
- 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: list 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_invlist de arreglos 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).
Utiliza el vocabulario y las frecuencias del documento (df) aprendidos por fit (o fit_transform).
- 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 ponderada por Tf-idf.