Mi IBM Inicie sesión Suscríbase

¿Qué es la bolsa de palabras?

19 de enero de 2024

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Program Manager

La caracterización de la bolsa de palabras cuantifica la frecuencia de las palabras en los documentos de texto para su procesamiento en modelos de machine learning. Su variación TF-IDF genera modelos que dan cuenta de la frecuencia de palabras en un corpus de documentos.

La bag of words (BoW; también llamada bolsa de palabras) es una técnica de extracción de características que modela datos de texto para su procesamiento en algoritmos de recuperación de información y machine learning. En concreto, los modelos BoW son un surtido no estructurado de todas las palabras conocidas de un documento de texto, definidas únicamente en función de su frecuencia, sin tener en cuenta el orden de las palabras ni el contexto1. El bag of words es uno de los pasos de muchos procesos de minería de texto.

La mayoría de los paquetes de procesamiento del lenguaje natural (PLN) vienen cargados con funciones para crear modelos de bag of words, como la función CountVectorizer de scikit-learn.

Diseño 3D de bolas rodando por un circuito

Las últimas noticias + conocimientos de IA 


Descubra ideas y noticias de expertos sobre IA, nube y mucho más en el boletín semanal Think. 

Cómo funcionan los modelos de bolsas de palabras

La caracterización de la bolsa de palabras puede, a veces, considerarse una forma de procesamiento de texto de nivel principiante, dada su aparente simplicidad conceptual a la hora de contar palabras en un conjunto de texto determinado. Sin embargo, los modelos de bolsa de palabras son más complicados.

Para comprender la caracterización de las bolsas de palabras se necesita, al menos para principiantes, un conocimiento de los espacios vectoriales. Un espacio vectorial es un espacio multidimensional en el que se trazan puntos. En un enfoque de bolsa de palabras, cada palabra individual se convierte en una dimensión (o eje) separada del espacio vectorial. Si un conjunto de texto tiene n número de palabras, el espacio vectorial resultante tiene n dimensiones, una dimensión para cada palabra única en el conjunto de texto. A continuación, el modelo traza cada documento de texto separado como un punto en el espacio vectorial. La posición de un punto a lo largo de una determinada dimensión está determinada por la cantidad de veces que aparece la palabra de esa dimensión dentro del documento del punto.

Por ejemplo, supongamos que tenemos un conjunto de texto en el que los contenidos de dos documentos separados son respectivamente:

Documento 1: Una rosa es roja, una violeta es azul

Documento 2: Mi amor es como una rosa roja

Debido a que es difícil imaginar algo más allá de un espacio tridimensional, nos limitaremos a eso. Un espacio vectorial para un corpus que contenga estos dos documentos tendría dimensiones separadas para rojo, rosa y violeta. Un espacio vectorial tridimensional para estas palabras podría verse así:

Dado que rojo, rosa y violeta aparecen una vez en el documento 1, el vector para ese documento en este espacio será (1,1,1). En el documento 2, el rojo aparece dos veces, el rosa una vez y el violeta no aparece en absoluto. Por lo tanto, el punto vectorial para el documento 2 es (2,1,0). Ambos puntos de documento se asignarán en el espacio vectorial tridimensional como:

Tenga en cuenta que esta figura visualiza documentos de texto como vectores de datos en un espacio de características tridimensional. Pero una bag of words también puede representar palabras como vectores de características en un espacio de datos. Un vector de características significa el valor (ocurrencia) de una característica determinada (palabra) en un punto de datos específico (documento). Por lo tanto, los vectores característicos para rojo, rosa y violeta en los documentos 1 y 2 se verían así2:

Tenga en cuenta que el orden de las palabras en los documentos originales es irrelevante. Para un modelo de bolsa de palabras, lo único que importa es el número de apariciones de cada palabra en el conjunto de texto.

¿Por qué utilizar modelos de bolsas de palabras?

Dado que los modelos de bag of words solo cuantifican la frecuencia de las palabras en un documento determinado, la bag of words se describe a menudo como una técnica de modelado simple. Pero la bag of words ayuda en muchas tareas de PLN, sobre todo en la clasificación de documentos. De hecho, la literatura a menudo analiza la bag of words junto con clasificadores estadísticos como el Naïve Bayes3.

Las tareas de clasificación de texto interpretan aquellas palabras con alta frecuencia en un documento como si representaran las ideas principales del mismo4. No es una suposición descabellada. Por ejemplo, si algunas de las palabras más frecuentes en un documento son presidente, votantes y elecciones, existe una alta probabilidad de que el documento sea un texto político, en concreto sobre una elección presidencial. La clasificación de texto con la bag of words extrapola entonces que los documentos con contenido similar son de tipo similar.

Mixture of Experts | Pódcast

Descifrar la IA: resumen semanal de noticias

Únase a nuestro panel de ingenieros, investigadores, responsables de producto y otros profesionales de talla mundial que se abren paso entre el bullicio de la IA para ofrecerle las últimas noticias y conocimientos al respecto.

Limitaciones de los modelos de bolsa de palabras

Aunque los clasificadores probabilísticos que utilizan un enfoque de bolsa de palabras resultan muy eficaces, la bolsa de palabras tiene varias desventajas.

Correlación de palabras. La bag of words supone que las palabras son independientes unas de otras en un documento o corpus. Es más probable que elección aparezca en un contexto compartido con presidente que con poeta. Al medir la frecuencia de los términos individuales, la bag of words no tiene en cuenta las correlaciones de uso entre las palabras. Como la bag of words extrae cada palabra de un documento como una característica del modelo de bag of words, siendo la frecuencia de los términos la ponderación de esa característica, dos o más palabras correlacionadas pueden inducir teóricamente la multicolinealidad en los clasificadores estadísticos que utilizan ese modelo. Sin embargo, la suposición simplificadora de Naïve Bayes ha demostrado producir modelos sólidos a pesar de estas posibles deficiencias5.

Palabras compuestas. La correlación de palabras se extiende a las representaciones en bolsas de palabras de frases compuestas, en las que dos o más palabras funcionan como una unidad semántica. Por ejemplo, un modelo simple de bolsa de palabras puede representar al Sr. Darcy como dos palabras únicas y no relacionadas, aunque funcionen en conjunto. Esta representación de un conjunto de palabras no refleja la naturaleza semántica y sintáctica de conceptos compuestos por varias palabras.

Palabras polisémicas. Muchas palabras tienen significados múltiples y marcadamente diferentes. Por ejemplo, ratón puede significar un animal o un dispositivo electrónico, y estos significados suelen aparecer en contextos significativamente diferentes. Del mismo modo, las palabras pueden cambiar de significado en función de la ubicación de su acento en el lenguaje hablado, por ejemplo, PÚ-blico frente a publi-CÓ. Dado que la bolsa de palabras no tiene en cuenta el contexto y el significado al modelar las palabras, colapsa todos estos significados distintos en una sola palabra, eliminando así información potencialmente significativa sobre el tema de un texto (y, por lo tanto, la clasificación potencial).

Dispersión. En un modelo de bag of words, cada palabra es una característica, o dimensión, del modelo, y cada uno de los denominados documentos es un vector. Dado que un documento no utiliza todas las palabras del vocabulario del modelo generado, muchos de los valores de las características de un vector determinado pueden ser cero. Cuando la mayoría de los valores de los vectores son cero, el modelo es disperso (si se representan los vectores como una matriz, esto se denomina matriz dispersa). La escasez de modelos se traduce en una alta dimensionalidad, lo que, a su vez, lleva a un sobreajuste de los datos de entrenamiento6.

Modificaciones

Bolsa de n-gramas. La adopción de n-gramas en lugar de palabras puede corregir una serie de desventajas inherentes a los modelos de bag of words. En lugar de crear un modelo en el que cada palabra sea una característica, se pueden utilizar n-gramas como características vectoriales. En este contexto, n se refiere al número de palabras que se tratan como una unidad semántica; quizás la más común en la bolsa de n-gramas son los bigramas (es decir, dos palabras). Los bigramas de palabras son útiles porque pueden dar cuenta de palabras compuestas, como Nueva York o Torre Eiffel. Por supuesto, no todos los bigramas de palabras son informativos, por ejemplo on the o of the. Sin embargo, este es un medio para dar cuenta de cuestiones como las palabras compuestas y la correlación de palabras7.

Técnicas de normalización de textos. Es posible que los datos de texto sin procesar deban normalizarse para mejorar la estructura y la función de los modelos de bag of words. Al crear una bag of words, o una bolsa de n-gramas, el modelo, las palabras como artículos (por ejemplo, un, la, etc.) y preposiciones (por ejemplo, desde, de, en, etc.) pueden tener el número más alto de ocurrencias. Estas palabras no proporcionan mucha información sobre el contenido o el tipo de un documento, por lo que son en gran medida inútiles en las tareas de clasificación. Las técnicas de preprocesamiento de texto, como la eliminación de palabras vacías (a menudo utilizadas en stemming) pueden ayudar a eliminar palabras irrelevantes de conjuntos de datos de texto para ayudar a mejorar la estructura de los modelos de bag of words. Afortunadamente, muchas bibliotecas y paquetes de Python, como NLTK o sklearn, incluyen funciones para llevar a cabo técnicas comunes de preprocesamiento.

Hashing. El hash de características básicamente convierte palabras individuales de datos de texto de entrada en un conjunto numérico de tamaño fijo. Este rango fijo de números se utiliza para construir el espacio vectorial para el modelo de bag of words. Limitar el rango de números y, por lo tanto las dimensiones del modelo, a un tamaño fijo ayuda a evitar la dispersión y la alta dimensionalidad. Una desventaja clave del hashing son las llamadas colisiones. Una colisión de hash se produce cuando dos tokens no relacionados se asignan al mismo entero. Otra desventaja del hashing es que no tiene en cuenta las palabras polisémicas8.

TF-IDF

Con los modelos estándar de bolsa de palabras, las palabras semánticamente irrelevantes (por ejemplo, el, algunos, etc.) pueden tener la mayor frecuencia de términos y, por lo tanto, el mayor peso en un modelo. El término frecuencia de documento de frecuencia inversa (TF-IDF) tiene como objetivo corregir esto. Mientras que la bolsa de palabras solo cuenta el número de veces que aparece una palabra en un documento, TF-IDF tiene en cuenta la prevalencia de la palabra en todos los documentos de un conjunto de texto. TF-IDF se representa en la ecuación:

En esta ecuación, el primer término es el valor calculado por el modelo de bag of words, es decir, la frecuencia de los términos. El segundo término representa la frecuencia inversa de los documentos. N es igual al número total de documentos del conjunto de textos y n es igual al número de documentos en los que aparece una palabra determinada. Cuantos más documentos aparezcan en los que esté presente una palabra determinada, mayor es la reducción de la ponderación de esa palabra por TF-IDF. En este sentido, TF-IDF es un ejemplo de escalado de características en los modelos de machine learning9.

Al igual que los modelos generales de bolsa de palabras, los paquetes de PNL suelen disponer de funciones preexistentes para implementar el TF-IDF, como la función tfidfvectorizer de scikit-learn.

Investigación reciente

Las variaciones de los modelos de bag of words se utilizan en diversas tareas de PLN. Por ejemplo, la red neuronal word2vec utiliza una bag of words continua para producir modelos de incrustación de palabras10. El análisis y la clasificación de sentimientos también pueden hacer uso de modelos de bag of words11.

Idiomas

La investigación inicial para una gran cantidad de técnicas de PLN se centra en el inglés u otros lenguajes de escritura latina, como el español o el francés. Más recientemente, los investigadores han recurrido a otros idiomas, como el árabe. Estudios recientes han examinado la eficacia de los modelos de bag of words junto con otras herramientas de PLN como word2vec para el análisis de sentimientos y la clasificación de textos árabes con resultados prometedores12. Otros muestran el potencial de los clasificadores Naïve Bayes basados en modelos de bag of words para la desambiguación del sentido de las palabras de textos sánscritos13.

Discurso de odio

Los enfoques de bag of words se han probado en algoritmos para detectar discursos de odio en plataformas de redes sociales con éxito variable. Un estudio compara la bag of words con word2vec y clasificadores de deep learning como BERT, argumentando que BERT supera a la bag of words y que TF-IDF no mejora de manera significativa las predicciones de los modelos de bag of words14. Por el contrario, un estudio posterior presenta un algoritmo que utiliza una bag of words y Naïve Bayes para la detección de discursos de odio con una precisión de aproximadamente el 99 %15. Las diferencias en el tamaño de los datos y el muestreo, así como el preprocesamiento del texto, pueden contribuir a la brecha en tales hallazgos. De hecho, otros estudios sugieren que el rendimiento comparativo entre BERT y los clasificadores que utilizan una bag of words depende del tamaño de las categorías de clasificación de los conjuntos de datos16.

Computer vision

Más recientemente, las comunidades de visión artificial han adoptado su propia variación de bag of words para la extracción de características en las tareas de clasificación y recuperación de imágenes. Este enfoque detecta y extrae las características de la imagen y agrupa fragmentos similares como "palabras de código". Muchos de los retos que afectan a los enfoques basados en bag of words para la clasificación de imágenes son los mismos que los de otras tareas de visión artificial: por ejemplo, objetos con colores o fondos similares, objetos ocluidos y superpuestos, variaciones dentro de la clase, etc.17

Soluciones relacionadas

Soluciones relacionadas

IBM watsonx Orchestrate

Diseñe asistentes y agentes de IA escalables con facilidad, automatice tareas repetitivas y simplifique procesos complejos con IBM watsonx Orchestrate.

Descubra watsonx Orchestrate
Herramientas y API de procesamiento del lenguaje natural

Acelere el valor empresarial de la inteligencia artificial con una cartera potente y flexible de bibliotecas, servicios y aplicaciones.

Explore soluciones de PLN
Consultoría y servicios de IA

Reinvente las operaciones y flujos de trabajo críticos añadiendo IA para maximizar las experiencias, la toma de decisiones en tiempo real y el valor empresarial.

Explore los servicios de IA
Dé el siguiente paso

Diseñe asistentes y agentes de IA escalables con facilidad, automatice tareas repetitivas y simplifique procesos complejos con IBM watsonx Orchestrate.

Descubra watsonx Orchestrate Explore soluciones de PLN
Notas a pie de página

1 Ruslan Mitkov (ed.). Oxford Handbook of Computational Linguistics. 2a edición. Oxford University Press. 2014.

2 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning. O’Reilly. 2018.

3 Daniel Jurafsky y James Martin. Speech and Language Processing: An Introduction to Natural Language Processing, Computational Linguistics, and Speech Recognition. 3a edición. 2023. https://web.stanford.edu/~jurafsky/slp3. Christopher Manning y Hinrich Schütze. Foundations of Statistical Natural Language Processing. MIT Press. 2000.

4 Dongyang Yan, Keping Li, Shuang Gu y Liu Yang. “Network-Based Bag-of-Words Model for Text Classification”. IEEE Access. Vol. 8. 2020. Pp. 82641-82652. https://ieeexplore.ieee.org/document/9079815.

5 Christopher Manning y Hinrich Schütze. Foundations of Statistical Natural Language Processing. MIT Press. 2000.

6 Dani Yogatama. "Sparse Models of Natural Language Text". Tesis doctoral. Carnegie Mellon University. 2015. https://lti.cmu.edu/people/alumni/alumni-thesis/yogatama-dani-thesis.pdf.

7 Yoav Goldberg. Neural Network Methods for Natural Language Processing. Springer. 2022.

8 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning. O’Reilly. 2018.

9 Alice Zheng y Amanda Casari. Feature Engineering for Machine Learning. O’Reilly. 2018.

10 Tomas Mikolov, Kai Chen, Greg Corrado y Jeffrey Dean. "Efficient Estimation of Word Representations in Vector Space". Actas del taller de la 1.ª International Conference on Learning Representations (ICLR). 2013. https://arxiv.org/abs/1301.3781.

11 Tan Thongtan y Tanasanee Phienthrakul. "Sentiment Classification Using Document Embeddings Trained with Cosine Similarity". Actas de la 57.ª reunión anual de la Asociación de Lingüística Computacional: Taller de Investigación para Estudiantes. 2019. Pp. 407-414. https://aclanthology.org/P19-2057/.

12 Huda Abdulrahman Almuzaini y Aqil M. Azmi. "Impact of Stemming and Word Embedding on Deep Learning-Based Arabic Text Categorization". IEEE Access. Vol. 8. 2020. Pp. 127913-127928. https://ieeexplore.ieee.org/abstract/document/9139948. Mohammed Kasri, Marouane Birjali y Abderrahim Beni-Hssane. "A comparison of features extraction methods for Arabic sentiment analysis". Actas de la 4.ª Conferencia Internacional sobre Big Data e Internet de las Cosas (BDIoT '19). 2019. https://dl.acm.org/doi/abs/10.1145/3372938.3372998.

13 Archana Sachindeo Maurya, Promila Bahadur y Srishti Garg. "Approach Toward Word Sense Disambiguation for the English-To-Sanskrit Language Using Naïve Bayesian Classification". Actas del Tercer Simposio Doctoral sobre Inteligencia Computacional. 2023. Pp. 477–491. https://link.springer.com/chapter/10.1007/978-981-19-3148-2_40.

14 Joni Salminen, Maximilian Hopf, Shammur A. Chowdhury, Soon-gyo Jung, Hind Almerekhi y Bernard J. Jansen. "Developing an online hate classifier for multiple social media platforms". Human-centric Computing and Information Sciences. Vol. 10. 2020. https://hcis-journal.springeropen.com/articles/10.1186/s13673-019-0205-6.

15 Yogesh Pandey, Monika Sharma, Mohammad Kashaf Siddiqui y Sudeept Singh Yadav. "Hate Speech Detection Model Using Bag of Words and Naïve Bayes". Advances in Data and Information Sciences. 2020. Pp. 457–470. https://link.springer.com/chapter/10.1007/978-981-16-5689-7_40.

16 Paula Fortuna, Juan Soler-Company y Leo Wanner. "How well do hate speech, toxicity, abusive and offensive language classification models generalize across datasets?". Information Processing and Management. Vol. 58. 2021. https://www.sciencedirect.com/science/article/pii/S0306457321000339.

17 Wisam A. Qader, Musa M. Ameen y Bilal I. Ahmed. “An Overview of Bag of Words: Importance, Implementation, Applications, and Challenges". Actas de la Quinta Conferencia Internacional de Ingeniería sobre Avances en Aplicaciones de Ingeniería Civil e Informática (IEC2019). 2019. Pp. 200-204. https://ieeexplore.ieee.org/document/8950616.