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 (
ner.*
,terms.*
,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