¿Qué es el count vectorizer?

Autor: | Última modificación: 12 de abril de 2024 | Tiempo de Lectura: 3 minutos
Temas en este post: ,

Algunos de nuestros reconocimientos:

Premios KeepCoding

En un post pasado hablamos de las tres maneras estándar que existen para representar textos en NLP, que son:

  • One-hot encoding.
  • Count vectorizer.
  • Word embeddings.

En dicho artículo profundizamos en el one-hot encoding y, ahora, veremos de qué trata el count vectorizer.

¿Qué es el count vectorizer?

El count vectorizer es una forma de representar un texto en natural language processing que convierte una colección de documentos en una matriz de documentos-palabras. La codificación se realiza, por tanto, a nivel de documento, en lugar de a nivel de token.

Al ser un modelo de bag-of-words, no se codifica la información relativa a la posición de los tokens ni su contexto, solo información sobre si aparecen y su frecuencia.

Vamos a ver un ejercicio corto que nos permitirá comprender de qué hablamos al mencionar la manera más simple posible.

Vamos a trabajar con un corpus corto compuesto por tres frases:

  • ‘me gustan los perros’
  • ‘hay perros y perros’
  • ‘hay muchas razas de perros’
#count vectorizer
import pandas as pd
from sklearn.feature_extraction.text import CountVectorizer
#count vectorizer
sent_1 = 'me gustan los perros'
sent_2 = 'hay perros y perros'
sent_3 = 'hay muchas razas de perros'

Juntamos las tres frases en un corpus:

#count vectorizer
corpus = [sent_1, sent_2, sent_3]

Ejemplo básico de count vectorizer

Una vez tengamos el corpus, con el count vectorizer lo que vamos a obtener es el vocabulario de este corpus.

Lo primero que haremos es instanciar el objeto y aplicar un fit transform. La función de fit transform utiliza el propio corpus para entrenar y generar predicciones sobre este mismo corpus. Esto es, precisamente, lo que obtendremos de nuestra variable X.

#count vectorizer
vectorizer = CountVectorizer ()
#count vectorizer
X = vectorizer.fit_transform (corpus)

Ahora vamos a obtener cuáles son los nombres de las features:

#count vectorizer
print (vectorizer.get_feature_names ())
count vectorizer

El resultado mostrado se ha creado a partir de nuestro vocabulario. Las que se observan en el resultado son las palabras únicas que hay dentro de nuestro corpus (de, gustan, hay, los, me, muchas, perros, razas).

Ahora lo que podemos hacer es convertir cada una de las entradas en un dataframe y representarlo:

#count vectorizer
doc_term_matrix = pd.DataFrame (X.toarray (), columns = vectorizer.get_feature_names ())
doc_term_matrix
¿Qué es el count vectorizer?
degustanhaylosmemuchasperrosrazas
001011010
100100020
210100111

Lo que nos aparece es la tabla de arriba. En ella podemos ver que cada fila es una frase. En la primera fila se encuentra el vocabulario. Por ejemplo, para la primera frase, que es la 0 y corresponde a «me gustan los perros», lo único que hace es contar, ya que es un count vectorizer. De modo que la palabra «me» la marca como 1, luego «gustan» también la marca como 1. Asimismo, «los» y «perros» las marca como 1. Cada palabra que aparezca nos la va contando.

Sin embargo, en la segunda frase, que dice «hay perros y perros», por lo que nos va a marcar «hay» con un 1 y «perros» con un 2, ya que existe dos veces la misma palabra en la frase y, por tanto, esta se suma.

Lo mismo sucede con la última frase, «hay muchas razas de perros».

Con todas las frases que pongamos se procede del mismo modo y con el mismo rigor.

Estos modelos son computacionalmente mucho más óptimos, ya que no necesitan strings de texto, sino que se trabaja directamente con listas.

¿Quieres seguir avanzando?

Si quieres seguir aprendiendo sobre el count vectorizer y otras técnicas para representar texto en NLP, te invitamos a que sigas formándote. Para poder acceder a las opciones laborales del Big Data, una de las áreas en el mundo tech mejor pagadas y con más demanda, tenemos para ti nuestro Big Data, Inteligencia Artificial & Machine Learning Full Stack Bootcamp.

En muy pocos meses, con esta formación intensiva e íntegra adquirirás todos los conocimientos teóricos y prácticos que necesitas para conseguir el trabajo de tus sueños. Estarás acompañado en todo momento por profesores expertos y, con nuestra Bolsa de Talento, tendrás las puertas del mercado laboral abiertas en cuanto termines. ¡No sigas esperando para impulsar tu carrera y pide ahora más información!

Artículos ms leídos

¡CONVOCATORIA ABIERTA!

Big Data, IA & Machine Learning

Full Stack Bootcamp

Clases en Directo | Profesores en Activo | Temario 100% actualizado