¿Qué es la bolsa de palabras?

Autores

Jacob Murel Ph.D.

Senior Technical Content Creator

Eda Kavlakoglu

Business Development + Partnerships

IBM Research

La caracterización de la bolsa de palabras cuantifica la frecuencia de las palabras en documentos de texto para su procesamiento en modelos de machine learning. Su variante TF-IDF genera modelos que, además, tienen en cuenta la frecuencia de las palabras en un corpus de documentos.

La función de bag of words (también conocida como BoW) es una técnica de extracción de características que modela datos de texto para su procesamiento mediante algoritmos de recuperación de información y machine learning. Más concretamente, los modelos BoW son una variedad no estructurada de todas las palabras conocidas de un documento de texto definidas únicamente en función de la frecuencia e ignorando el orden de las palabras y el contexto1 Bag of words es uno de los diversos pasos de muchos pipelines de minería de textos.

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

Las últimas tendencias de IA presentadas por expertos

Obtenga insights curados sobre las noticias más importantes e intrigantes de la IA. Suscríbase a nuestro boletín semanal Think. Consulte la Declaración de privacidad de IBM .

¡Gracias! Ya está suscrito.

Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.

Cómo funcionan los modelos de bolsas de palabras

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

Comprender la caracterización de la bolsa de palabras exige una comprensión, al menos a nivel de principiante, 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 separada (o eje) del espacio vectorial. Si un conjunto de texto tiene n cantidad de palabras, el espacio vectorial resultante tiene n dimensiones, una dimensión por cada palabra única en el conjunto de textos. Luego, el modelo traza cada documento de texto por 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 textos en el que los contenidos de dos documentos separados son respectivamente los siguientes:

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

Documento 2: Mi amor es como una roja, roja rosa

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 puede verse así:

Espacio vectorial con rojo, rosa y violeta como características-dimensiones

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, rojo aparece dos veces, rosa aparece una vez y violeta no aparece en absoluto. Por lo tanto, el punto vectorial para el documento 2 es (2,1,0). Ambos puntos del documento se representarán en el espacio vectorial tridimensional como:

Espacio vectorial 3D con dos documentos como puntos

Tenga en cuenta que esta figura visualiza documentos de texto como vectores de datos en un espacio de características tridimensionales. Pero la 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). Así que los vectores de características para red, rose y violet en los Documentos 1 y 2 se verían así:2

Espacio vectorial de características para rojo, rosa y violeta en dos documentos

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 la cantidad de ocurrencias de cada palabra en el conjunto de textos.

Por qué usar modelos de bolsa de palabras

Debido a que los modelos de bag of words solo cuantifican la frecuencia de las palabras en un documento determinado, la bag of words a menudo se describe 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 Naïve Bayes.3

Las tareas de clasificación de texto interpretan que las palabras con alta frecuencia en un documento son representativas de las ideas principales del documento.4 Esta suposición no es irracional. Por ejemplo, si algunas de las palabras más frecuentes en un documento son presidente, votantes y elección, existe una alta probabilidad de que el documento sea un texto político, que habla específicamente de una elección presidencial. La clasificación de texto con bag of words extrapola que los documentos con contenido similar son de tipo similar.

Mixture of Experts | 12 de diciembre, episodio 85

Decodificación de 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 revuelo de la IA para ofrecerle las últimas noticias e insights 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 entre sí en un documento o corpus. Es más probable que la palabra elección aparezca en un contexto compartido con presidente que con poeta. Al medir la frecuencia de términos individuales, la bag of words no tiene en cuenta las correlaciones en el uso entre palabras. Debido a que la bag of words extrae cada palabra de un documento como una característica del modelo de la bag of words, donde la frecuencia del término es el peso de esa característica, dos o más palabras correlacionadas pueden, teóricamente, inducir multicolinealidad en clasificadores estadísticos que utilizan ese modelo. Sin embargo, se ha demostrado que el supuesto de simplificación de Naïve Bayes produce modelos robustos a pesar de las posibles deficiencias.5

Palabras compuestas. La correlación de palabras se extiende a las representaciones 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 a Sr. Darcy como dos palabras únicas y no relacionadas, aunque funcionen en conjunto. Tal representación de una bolsa de palabras no refleja la naturaleza semántica y sintáctica de los conceptos de varias palabras.

Palabras polisémicas. Muchas palabras tienen significados múltiples y notoriamente diferentes. Por ejemplo, bat puede significar un instrumento deportivo [bate] o un animal [murciélago], y estos significados suelen ocurrir en contextos claramente diferentes. Del mismo modo, las palabras pueden cambiar de significado dependiendo de la ubicación del acento en el lenguaje hablado, por ejemplo, CON-tent [contenido] versus con-TENT [satisfacción]. Debido a que la bolsa de palabras no tiene en cuenta el contexto y el significado al modelar palabras, contrae 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 documento 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, se denomina matriz dispersa). La esparcialidad del modelo da como resultado una alta dimensionalidad, lo que, a su vez, conduce a un sobreajuste en los datos de entrenamiento.6

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 a la cantidad 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, en el o de la. Sin embargo, es un medio para dar cuenta de problemas como las palabras compuestas y la correlación de palabras.7

Técnicas de normalización de textos. Es posible que los datos de texto sin procesar se deban normalizar 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, las palabras como artículos (por ejemplo, un, el, etc.) y preposiciones (por ejemplo, desde, de, sobre, etc.) pueden tener la cantidad más alta 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 los 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, vienen con funciones para llevar a cabo técnicas comunes de preprocesamiento.

Hash. Básicamente, el hash de características convierte palabras individuales de los datos de texto de entrada a 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 hash son las llamadas colisiones. Una colisión de hash se produce cuando dos tokens no relacionados se asignan al mismo entero. Otra desventaja del hash es que no tiene en cuenta las palabras polisémicas.8

TF-IDF

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

Ecuación TF-IDF

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 a la cantidad total de documentos del conjunto de texto y n es igual al número de documentos en los que aparece una palabra determinada. Cuantos mayor sea la cantidad de documentos en los que aparezca una palabra determinada, mayor será la reducción de TF-IDF del peso de esa palabra. De esta manera, TF-IDF es un ejemplo de escalado de características en modelos de machine learning.9

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

Investigación reciente

Se utilizan variaciones de modelos de bolsas de palabras en una variedad de tareas de PNL. Por ejemplo, word2vec de redes neuronales utiliza una bag of words continua para producir modelos de incrustación de palabras.10 El análisis y clasificación de sentimientos también puede hacer uso de modelos de bag of words.11

Idiomas

La investigación inicial de una gran cantidad de técnicas de PLN se centra en el inglés u otros idiomas que usan el alfabeto latino, como el español o el francés. Más recientemente, los investigadores recurrieron a otros idiomas, como el árabe. Estudios recientes examinaron la eficacia de los modelos de bag of words junto con otras herramientas de PNL como word2vec para el análisis de sentimientos y la clasificación de textos árabes con resultados prometedores.12 Otros muestran el potencial de los clasificadores Bayes ingenuos basados en modelos de bag of words para la desambiguación del sentido de las palabras de textos sánscritos.13

Discurso que incita al odio

Se han probado enfoques de bolsas de palabras en algoritmos para detectar discursos que incitan odio en plataformas de redes sociales con éxito variable. Un estudio compara la bag of words con word2vec y clasificadores de aprendizaje profundo como BERT, argumentando que BERT supera a la bag of words y que TF-IDF no mejora significativamente las predicciones de los modelos de bag of words.14 Por el contrario, un estudio posterior presenta un algoritmo que emplea la bag of words y Naive Bayes para la detección del discurso del odio con una precisión de aproximadamente el 99%.15 Las diferencias en el tamaño de los datos y la ejemplificación, 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 bolsas de palabras depende del tamaño de las categories de clasificación del conjunto de datos.16

Visión artificial

Más recientemente, las comunidades de visión artificial adoptaron su propia variación de bag of words para la extracción de características en tareas de clasificación y recuperación de imágenes. Este enfoque detecta y extrae características de imágenes y agrupa parches similares como “palabras clave". Muchos de los desafíos que plagan los enfoques de bag of words para la clasificación de imágenes son los mismos que en otras tareas de visión artificial: por ejemplo, objetos con colores o fondos similares, objetos ocluidos y superpuestos, variación dentro de la clase, etc.17

Soluciones relacionadas
IBM watsonx.ai

Entrene, valide, ajuste y despliegue IA generativa, modelos fundacionales y capacidades de machine learning con IBM watsonx.ai, un estudio empresarial de próxima generación para creadores de IA. Diseñe aplicaciones de IA en menos tiempo y con menos datos.

Descubra watsonx.ai
Soluciones de inteligencia artificial

Ponga la IA a trabajar en su negocio con la experiencia en IA líder en la industria y la cartera de soluciones de IBM a su lado.

Explore las soluciones de IA
Consultoría y servicios de IA

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

Conozca los servicios de IA
Dé el siguiente paso

Obtenga acceso único a capacidades que abarcan el ciclo de vida del desarrollo de IA. Produzca potentes soluciones de IA con interfaces fáciles de usar, flujos de trabajo y acceso a API y SDK estándar de la industria.

Explore watsonx.ai Reserve una demostración en vivo
Notas de pie de página

1 Ruslan Mitkov (ed.), Oxford Handbook of Computational Linguistics, 2nd edition, Oxford University Press, 2014.

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

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

4 Dongyang Yan, Keping Li, Shuang Gu, and 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 and Hinrich Schütze, Foundations of Statistical Natural Language Processing, MIT Press, 2000.

6 Dani Yogatama, “Sparse Models of Natural Language Text,” doctoral thesis, 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 and Amanda Casari, Feature Engineering for Machine Learning, O’Reilly, 2018.

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

10 Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean, “Efficient Estimation of Word Representations in Vector Space,” Workshop Track Proceedings of 1st International Conference on Learning Representations (ICLR), 2013, https://arxiv.org/abs/1301.3781.

11 Tan Thongtan and Tanasanee Phienthrakul, “Sentiment Classification Using Document Embeddings Trained with Cosine Similarity,” Proceedings of the 57th Annual Meeting of the Association for Computational Linguistics: Student Research Workshop, 2019, pp. 407-414, https://aclanthology.org/P19-2057/.

12 Huda Abdulrahman Almuzaini and 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, and Abderrahim Beni-Hssane, “A comparison of features extraction methods for Arabic sentiment analysis,” Proceedings of the 4th International Conference on Big Data and Internet of Things (BDIoT ‘19), 2019, https://dl.acm.org/doi/abs/10.1145/3372938.3372998.

13 Archana Sachindeo Maurya, Promila Bahadur, and Srishti Garg, “Approach Toward Word Sense Disambiguation for the English-To-Sanskrit Language Using Naïve Bayesian Classification,” Proceedings of Third Doctoral Symposium on Computational Intelligence, 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, and 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, and 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, and 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, and Bilal I. Ahmed, “An Overview of Bag of Words: Importance, Implementation, Applications, and Challenges,” Proceedings of the Fifth International Engineering Conference on Developments in Civil & Computer Engineering Applications (IEC2019), 2019, pp. 200-204, https://ieeexplore.ieee.org/document/8950616.