//- 💫 DOCS > USAGE > TRAINING > TEXT CLASSIFICATION +h(3, "example-textcat") Adding a text classifier to a spaCy model +tag-new(2) p | This example shows how to train a multi-label convolutional neural | network text classifier on IMDB movie reviews, using spaCy's new | #[+api("textcategorizer") #[code TextCategorizer]] component. The | dataset will be loaded automatically via Thinc's built-in dataset | loader. Predictions are available via | #[+api("doc#attributes") #[code Doc.cats]]. +github("spacy", "examples/training/train_textcat.py", 500) +h(4) Step by step guide +list("numbers") +item | #[strong Load the model] you want to start with, or create an | #[strong empty model] using | #[+api("spacy#blank") #[code spacy.blank]] with the ID of your | language. If you're using an existing model, make sure to disable all | other pipeline components during training using | #[+api("language#disable_pipes") #[code nlp.disable_pipes]]. This | way, you'll only be training the text classifier. +item | #[strong Add the text classifier] to the pipeline, and add the labels | you want to train – for example, #[code POSITIVE]. +item | #[strong Load and pre-process the dataset], shuffle the data and | split off a part of it to hold back for evaluation. This way, you'll | be able to see results on each training iteration. +item | #[strong Loop over] the training examples and partition them into | batches using spaCy's | #[+api("top-level#util.minibatch") #[code minibatch]] and | #[+api("top-level#util.compounding") #[code compounding]] helpers. +item | #[strong Update the model] by calling | #[+api("language#update") #[code nlp.update]], which steps | through the examples and makes a #[strong prediction]. It then | consults the annotations to see whether it was right. If it was | wrong, it adjusts its weights so that the correct prediction will | score higher next time. +item | Optionally, you can also #[strong evaluate the text classifier] on | each iteration, by checking how it performs on the development data | held back from the dataset. This lets you print the | #[strong precision], #[strong recall] and #[strong F-score]. +item | #[strong Save] the trained model using | #[+api("language#to_disk") #[code nlp.to_disk]]. +item | #[strong Test] the model to make sure the text classifier works as | expected.