A vocabulary of all unique words in the corpus is built. Each document is represented as a vector of vocabulary length, where each position contains the word count in the document (or 0/1 for binary variant). Word order is completely ignored.
Raw text must be converted into a numerical representation for ML algorithm processing. BoW provides the simplest such representation without complex preprocessing.
BoW treats "dog bites man" and "man bites dog" identically. For order-dependent tasks (sentiment, questions) this is a critical limitation.
For a 100k vocabulary each document is a 100k-dimensional vector — mostly zeros (sparse). Requires algorithms handling sparse vectors or dimensionality reduction.