Thanks for making an awesome product, it has made NLP feel accessible to me as a hobby.
This feedback borders on nitpicky, so please pass on it if you don’t think it makes sense.
The current help output (below) is beautifully compact but not easy to visually scan, especially as a new user that is trying to find a recipe in an unfamiliar list.
$ prodigy ✨ Available recipes: compare, ner.match, ner.teach, ner.mark, ner.make-gold, ner.eval-ab, ner.batch-train, ner.train-curve, ner.print-best, ner.print-stream, ner.print-dataset, textcat.teach, textcat.batch-train, textcat.train-curve, textcat.eval, textcat.print-stream, textcat.print-dataset, terms.train-vectors, terms.teach, terms.to-patterns, mark, image.test ✨ Available commands: dataset, drop, stats, pipe, db-in, db-out
I think there are two “problems” here:
- There is only one visual group for all recipes meaning the list must be searched in order to extract information
- The recipe groups (
textcat.*) are located near each other but do not appear to be in a predictable order, making them difficult to quickly scan.
For example, suppose I want to find a recipe related to
textcat, but I’m not sure which one. The first
textcat recipe is the second entry on the third line, so I have to parse the whole content block to find it before I can look for the related recipe that I want. After I find the leading recipe I have to read all the following items until I find the one I’m looking for because they are not sorted in a predictable way.
My hypothesis is that if you create intentional visual groupings of related recipes, and predictably order them, the usability of your help output will go up in a way that is easy to perceive.
Here are two possible examples of what I mean:
Vertical list with alpha sort and line breaks for groups
Takes up quite a bit of screen space, but is predictable and easy to scan (up/down):
$ prodigy ✨ Available recipes: compare image.test mark ner.batch-train ner.eval-ab ner.make-gold ner.mark ner.match ner.teach ner.train-curve ner.print-best ner.print-dataset ner.print-stream terms.teach terms.to-patterns terms.train-vectors textcat.batch-train textcat.eval textcat.print-dataset textcat.print-stream textcat.teach textcat.train-curve ✨ Available commands: dataset db-in db-out drop pipe stats
Wrapping lists with alpha sort and line breaks for groups
A bit harder to scan (up/down+left/right), but more compact and still predictable:
$ prodigy ✨ Available recipes: compare, image.test, mark ner.batch-train, ner.eval-ab, ner.make-gold, ner.mark, ner.match, ner.teach, ner.train-curve, ner.print-best, ner.print-dataset, ner.print-stream terms.teach, terms.to-patterns, terms.train-vectors textcat.batch-train, textcat.eval, textcat.print-dataset, textcat.print-stream, textcat.teach, textcat.train-curve ✨ Available commands: dataset, db-in, db-out, drop, pipe, stats