When you go to the docs you can confirm that the textcat.teach recipe is a binary interface. That means that it only gives you the option to say weather or not the current prediction is correct.
Thanks for clarifying. So in that case, what is the intended use case of passing multiple labels to textcat.teach? Error messaging suggests textcat.teach requires at least one --label, and it runs fine on 3 -- what is it doing with them if the UI only gives me the option to accept or reject?
A binary interface doesn't imply that there is only one label. A binary interface merely implies that what is on display is either correct or wrong. Maybe these examples help make clarify the expectations a bit.
Binary vs. Manual in NER
For example, this is an interface for ner.correct. This allows you to take the model output and to correct. In the case of NER, you can still assign multiple labels to the text because this is a manual interface.
The binary interfaces are less expressive, but annotate a whole lot quicker because each example is a simple yes/no.
Binary vs. Manual in Textcat
Let's now consider how this would work for text classification. This is one example for textcat.correct. This is a manual interface, and it allows you to select each class individually.
Again, this is a binary interface and you'd only be able to say if it is correct or not. Again, it's less expressive, but it's faster to annotate because it's a yes/no decision. Note that in this case you'd still be able to attach more than one class to an example, but each class would pop up in a separate example. Typically these classes would be suggested by a spaCy model that tries to predict the examples.