Data di pubblicazione: 19 gennaio 2024
Collaboratori: Jacob Murel Ph.D., Eda Kavlakoglu
La funzionalità bag of words quantifica la frequenza delle parole nei documenti di testo per l'elaborazione nei modelli di machine learning. La sua variante TF-IDF genera modelli che tengono ulteriormente conto della frequenza delle parole in un corpus di documenti.
Bag of words (BoW; stilizzato anche come bag-of-words) è una tecnica di estrazione di funzioni che modella i dati di testo per l'elaborazione negli algoritmi di recupero delle informazioni e di machine learning. Più specificamente, i modelli BoW rappresentano un assortimento non strutturato di tutte le parole conosciute in un documento di testo definito esclusivamente in base alla frequenza, ignorando l'ordine e il contesto delle parole.1 Bag of words è uno dei tanti passaggi di molte pipeline di di text mining
.
La maggior parte dei pacchetti di elaborazione del linguaggio naturale (NLP) sono dotati di funzioni per creare modelli di bag of words, come la funzione CountVectorizer di scikit-learn.
Esplora IBM watsonx e scopri come creare modelli di machine learning utilizzando set di dati statistici.
Iscriviti alla newsletter Think
Talvolta, la caratterizzazione di una bag of words può essere considerata una forma di elaborazione del testo di livello principiante, data la sua apparente semplicità concettuale nel contare le parole in un determinato set di testo. I modelli di bag of words sono però più complessi.
Comprendere la funzioni di una bag of words richiede una comprensione, almeno per i principianti, degli spazi vettoriali. Uno spazio vettoriale è uno spazio multidimensionale in cui vengono tracciati dei punti. In un approccio di tipo bag of words, ogni singola parola diventa una dimensione separata (o asse) dello spazio vettoriale. Se un set di testo ha un numero di parole n, lo spazio vettoriale risultante presenta n dimensioni, una dimensione per ogni parola univoca nel set di testo. Il modello traccia quindi ogni documento di testo separato come un punto nello spazio vettoriale. La posizione di un punto lungo una determinata dimensione è determinata dal numero di volte in cui la parola di quella dimensione appare all'interno del documento del punto.
Ad esempio, supponiamo di avere un set di testo in cui il contenuto di due documenti separati sono rispettivamente:
Documento 1: Una rosa è rossa, una viola è blu
Documento 2: Il mio amore è come una rosa rossa
Poiché è difficile immaginare qualcosa al di là di uno spazio tridimensionale, ci limiteremo proprio a questo. Uno spazio vettoriale per un corpus contenente questi due documenti avrebbe dimensioni separate per il rosso, la rosa e il viola. Uno spazio vettoriale tridimensionale per queste parole può assomigliare a:
Poiché il rosso, il rosa e il viola ricorrono tutti una volta nel documento 1, il vettore per quel documento in questo spazio sarà (1,1,1). Nel Documento 2, il rosso appare due volte, il rosa una volta e il viola per niente. Pertanto, il punto vettoriale per il documento 2 è (2,1,0). Entrambi questi punti del documento verranno mappati nello spazio vettoriale tridimensionale come:
Tieni presente che questa figura visualizza i documenti di testo come vettori di dati in uno spazio di caratteristiche tridimensionale. Ma bag of words può anche rappresentare le parole come vettori di caratteristiche in uno spazio di dati. Un vettore di caratteristiche indica il valore (occorrenza) di una determinata caratteristica (parola) in un punto dati specifico (documento). Quindi i vettori di caratteristiche per rosso, rosa e viola nei documenti 1 e 2 verrebbero visualizzati come:2
Si noti che l'ordine delle parole nei documenti originali è irrilevante. Per un modello di tipo bag of words, tutto ciò che conta è il numero di occorrenze di ciascuna parola nell'insieme del testo.
Poiché i modelli "bag of words" quantificano solo la frequenza delle parole in un determinato documento, bag of words è spesso descritto come una semplice tecnica di modellazione. Ma il sistema bag of words è utile per molti compiti di PNL, in particolare per la classificazione dei documenti. In effetti, la letteratura spesso discute la tecnica bag of words insieme a classificatori statistici come Naïve Bayes.3
I compiti di classificazione del testo interpretano le parole ad alta frequenza in un documento come rappresentanti delle idee principali del documento stesso.4 Non è un'ipotesi irragionevole. Ad esempio, se alcune delle parole più frequenti in un documento sono presidente, elettori ed elezione, c'è un'elevata probabilità che il documento sia un testo politico, in particolare che parli di un'elezione presidenziale. La classificazione del testo con la bag of words estrapola poi che i documenti con contenuti simili sono simili nella tipologia.
Sebbene i classificatori probabilistici che utilizzano un approccio bag of words si dimostrino ampiamente efficaci, il modello bag of words presenta diversi svantaggi.
Correlazione di parole. La tecnica bag of words presuppone che le parole siano indipendenti l'una dall'altra in un documento o corpus. È più probabile che la parola elezione appaia in un contesto insieme a presidente piuttosto che con poeta. Nella misurazione della frequenza dei singoli termini, il sistema bag of words non tiene conto delle correlazioni nell'uso tra le parole. Poiché bag of words estrae ogni parola in un documento come caratteristica del modello bag of words, dove la frequenza dei termini è il peso di quella caratteristica, due o più parole correlate possono teoricamente indurre la multicollinearità nei classificatori statistici che utilizzano quel modello. Ciononostante, l'ipotesi semplificatrice di Naïve Bayes ha dimostrato di produrre modelli efficaci nonostante tali potenziali carenze.5
Parole composte. La correlazione delle parole si estende alle rappresentazioni di frasi composte, in cui due o più parole operano come un'unica unità semantica. Ad esempio, un semplice modello bag of words può rappresentare Mr. Darcy come due parole uniche e non correlate anche se funzionano in tandem. Una tale rappresentazione di un insieme di parole non riesce a riflettere la natura semantica e sintattica dei concetti multi-parola.
Parole polisemiche. Molte parole hanno significati multipli e marcatamente diversi. Ad esempio, batteria può indicare uno strumento musicale o un dispositivo per conservare e dispensare elettricità e questi significati di solito si verificano in contesti significativamente diversi. Allo stesso modo, le parole possono cambiare significato a seconda della posizione dell'accento nella lingua parlata, ad esempio AN-cora e an-CORA. Poiché la bag of words non considera il contesto e il significato quando modella le parole, raggruppa tutti questi significati distinti in un'unica parola, eludendo così informazioni potenzialmente significative sull'oggetto di un testo (e quindi una potenziale classificazione).
Scarsità. In un modello bag of words, ogni parola è una funzione, o dimensione, del modello, e ogni cosiddetto documento è un vettore. Poiché un documento non utilizza ogni parola nel vocabolario del modello generato, molti valori delle funzioni per un determinato vettore potrebbero essere pari a zero. Quando la maggior parte dei valori per i vettori è zero, il modello è sparso (se si rappresentano vettori come una matrice, questa è chiamata matrice sparsa). La scarsità del modello si traduce in un'elevata dimensionalità, che a sua volta porta all'overfitting sui dati di addestramento.6
Bag of n-grams. L'adozione del modello n-grams può correggere una serie di svantaggi inerenti ai modelli bag of words. Invece di creare un modello in cui ogni parola è una funzione, si possono usare gli n-grams come funzioni vettoriali. In questo contesto, n si riferisce al numero di parole trattate come un'unità semantica, forse la più comune in un bag of n-grams sono i bigrams (cioè due parole). I bigrams di parole sono utili in quanto possono tenere conto di parole composte, come New York o la Torre Eiffel. Naturalmente, non tutti i bigrams di parole sono informativi, ad esempio su un o di un. Tuttavia, questo è un mezzo per tenere conto di questioni come le parole composte e la correlazione delle parole.7
Tecniche di normalizzazione del testo. Potrebbe essere necessario normalizzare i dati di testo non elaborato per migliorare la struttura e la funzione dei modelli di pacchetti di parole. Quando si crea una Bag of words o una Bag di n-grams, un modello, parole come articoli (ad esempio, un, il, ecc.) e preposizioni (ad esempio, da, di, su, ecc.) possono avere il maggior numero di occorrenze. Queste parole non forniscono molte informazioni sul contenuto o sul tipo di un documento e quindi sono in gran parte inutili nelle attività di classificazione. Le tecniche di pre-elaborazione del testo come la rimozione delle stop word (spesso utilizzate nello stemming) possono aiutare a rimuovere parole irrilevanti dai set di dati di testo per contribuire a migliorare la struttura dei modelli bag of words. Fortunatamente, molte librerie e pacchetti python, come NLTK o sklearn, sono dotati di funzioni per condurre tecniche di pre-elaborazione comuni.
Hashing. L'hashing delle funzioni converte essenzialmente le singole parole dei dati testuali di input in un insieme numerico di dimensioni fisse. Questo intervallo fisso di numeri viene quindi utilizzato per costruire lo spazio vettoriale per il modello bag of words. Limitare l'intervallo di numeri, e quindi le dimensioni del modello, a una dimensione fissa aiuta a prevenire la scarsità e l'alta dimensionalità. Uno svantaggio chiave dell'hashing sono le cosiddette collisioni. Una collisione di hashing si verifica quando due token non correlati vengono mappati sullo stesso intero. Un altro svantaggio dell'hashing è che non tiene conto delle parole polisemiche.8
Con i modelli standard di bag of words, le parole semanticamente irrilevanti (ad esempio, il, alcuni, ecc.) possono avere la frequenza di termini più alta e quindi il peso maggiore in un modello. La TF-IDF (frequency-inverse document frequency) mira a correggere questo aspetto. Mentre il modello bag of words conta solo il numero di volte in cui una parola appare in un documento, la TF-IDF tiene conto della prevalenza della parola in tutti i documenti di un insieme di testi. La TF-IDF è rappresentata nell'equazione:
In questa equazione, il primo termine è il valore calcolato dal modello bag of words, ovvero la frequenza dei termini. Il secondo termine rappresenta la frequenza inversa dei documenti. N è uguale al numero totale di documenti nel set di testo e n è uguale al numero di documenti in cui appare una determinata parola. Quanti più documenti contengono una determinata parola, tanto più la TF-IDF riduce il peso di quella parola. In questo modo, la TF-IDF è un esempio di scalabilità delle funzioni nei modelli di machine learning.9
Come per i modelli generali di bag of words, i pacchetti NLP hanno spesso funzioni preesistenti per implementare la TF-IDF, come la funzione tfidfvectorizer di scikit-learn.
Le variazioni dei modelli bag of words vengono utilizzate in una varietà di attività di NLP. Ad esempio, la rete neurale word2vec utilizza un insieme continuo di parole per produrre modelli di incorporamento di parole.10 Anche l'analisi e la classificazione del sentimento possono anche utilizzare i modelli bag of words.11
La ricerca iniziale per una grande quantità di tecniche di NLP si concentra sull'inglese o su altre lingue latine, come lo spagnolo o il francese. Più recentemente, i ricercatori si sono dedicati ad altre lingue, come l'arabo. Studi recenti hanno esaminato l'efficacia dei modelli bag of words insieme ad altri strumenti di NLP come word2vec per l'analisi del sentiment e la classificazione di testi arabi con risultati promettenti.12 Altri mostrano il potenziale dei classificatori Naïve Bayes basati su modelli di bag of words per la disambiguazione del senso delle parole dei testi sanscriti..13
Gli approcci bag of words sono stati testati in algoritmi per rilevare l'incitamento all'odio sulle piattaforme dei social media con risultati diversi. Uno studio confronta bag of words con word2vec e classificatori di deep learning come BERT, sostenendo che BERT supera le prestazioni di bag of words e che TF-IDF non migliora significativamente le previsioni dei modelli bag of words.14 Al contrario, uno studio successivo presenta un algoritmo che utilizza bag of words e Naïve Bayes per il rilevamento dell'incitamento all'odio con una precisione di circa il 99%.15 Le differenze nelle dimensioni e nel campionamento dei dati, nonché nella pre-elaborazione del testo, possono contribuire alle lacune in tali risultati. In effetti, altri studi suggeriscono che le prestazioni comparative tra BERT e i classificatori che utilizzano bag of words dipendono dalle dimensioni delle categorie di classificazione dei set di dati.16
Più recentemente, le comunità di computer vision hanno adottato una propria variante di parole per l'estrazione delle caratteristiche nelle attività di classificazione e recupero delle immagini. Questo approccio rileva ed estrae le caratteristiche dell'immagine e raggruppa patch simili come "parole in codice". Molte delle sfide che affliggono gli approcci alla classificazione delle immagini sono le stesse di quelle di altre attività di computer vision: ad esempio oggetti con colori o sfondi simili, oggetti occlusi e sovrapposti, variazioni all'interno della classe e così via.17
Scopri i passaggi più comuni per il text mining utilizzando strumenti come le bag of words.
Crea un modello di set di parole usando scikit-learn per preparare i dati per il filtro antispam con un classificatore Naïve Bayes.
I ricercatori IBM utilizzano un modello di bag-of-visual words per l'estrazione delle caratteristiche nelle immagini di pelle con psoriasi.
1 Ruslan Mitkov (ed.), Oxford Handbook of Computational Linguistics, 2a edizione, Oxford University Press, 2014.
2 Alice Zheng e 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, 3a edizione, 2023, https://web.stanford.edu/~jurafsky/slp3/ (link esterno a ibm.com). Christopher Manning e 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 (link esterno a ibm.com).
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," tesi di dottorato, Carnegie Mellon University, 2015, https://lti.cmu.edu/people/alumni/alumni-thesis/yogatama-dani-thesis.pdf (link esterno a ibm.com).
7 Yoav Goldberg, Neural Network Methods for Natural Language Processing, Springer, 2022.
8 Alice Zheng e 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 e 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 (link esterno a ibm.com).
11 Tan Thongtan e 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/ (link esterno a ibm.com).
12 Huda Abdulrahman Almuzaini e 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 (link esterno a ibm.com). Mohammed Kasri, Marouane Birjali e 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 (link esterno a ibm.com).
13 Archana Sachindeo Maurya, Promila Bahadur e 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 (link esterno a ibm.com).
14 Joni Salminen, Maximilian Hopf, Shammur A. Chowdhury, Soon-gyo Jung, Hind Almerekhi e 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 (link esterno a ibm.com).
15 Yogesh Pandey, Monika Sharma, Mohammad Kashaf Siddiqui e 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 (link esterno a ibm.com).
16 Paula Fortuna, Juan Soler-Company e Leo Wanner, "How well do hate speech, toxicity, abusive and offensive languageclassification models generalize across datasets?," Information Processing and Management, Vol. 58, 2021, https://www.sciencedirect.com/science/article/pii/S0306457321000339 (link esterno a ibm.com).
17 Wisam A. Qader, Musa M. Ameen e 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 (link esterno a ibm.com).