Bag of Words (BoW) Embeddings
Introduction
Bag of Words is one of the simplest text representation methods. It represents text as a vector where each dimension corresponds to a word in the vocabulary, and the value is the word's frequency (or TF-IDF score) in the document.
Strictly speaking, BoW is a sparse, count-based representation, not a learned dense embedding like Word2Vec or GloVe. Each dimension maps to one specific vocabulary word rather than to a latent feature, so the vector is mostly zeros and carries no notion of word meaning or similarity. The word "embeddings" in the title is used loosely to mean "turning text into vectors" — keep in mind that BoW is the count-based end of that spectrum.
How Bag of Words Works
1. Build Vocabulary
Extract all unique words from the corpus and assign each an index.
vocab = {'the': 0, 'cat': 1, 'sat': 2, ...}2. Count Words
For each document, count how many times each vocabulary word appears.
'the cat sat the' → [2, 1, 1, 0, ...]3. Create Vector
The resulting vector represents the document in high-dimensional space.
doc_vector = [tf1, tf2, ..., tfn]Interactive BoW Visualizer
Add Custom Document
BoW Vector Representation
Document Similarity
Cosine similarity between document vectors. Brighter = more similar.
Advantages and Limitations
✓ Advantages
- • Simple and intuitive to understand
- • Fast to compute and implement
- • Works well for document classification
- • No training required
- • Interpretable features (word counts)
✗ Limitations
- • Ignores word order and grammar
- • High-dimensional sparse vectors
- • No semantic understanding
- • Vocabulary can be very large
- • Treats "not good" same as "good not"
Variations and Extensions
Binary BoW
Uses 1/0 to indicate word presence instead of counts. Useful when frequency isn't important.
TF-IDF
Weights words by their importance across documents. Reduces impact of common words.
N-grams
Captures sequences of N words. Bigrams (N=2) can capture phrases like "not good".
Key Takeaways
- BoW represents documents as word frequency vectors
- Simple but effective for many text classification tasks
- Loses word order and context information
- TF-IDF weighting improves performance by considering word importance
- Forms the basis for more advanced embedding techniques
- Still used in production systems where interpretability matters