This one is a bit hard to explain because I'm not even sure where my head is...
Pick a "starting word" for your binary
Be offered a tree of "next words" that are commonly used next words in phrases after the "starting word"
Map those "next words" to different sub commands of the binary (could be flags, but they can usually appear anywhere, so not as applicable)
Once you map our all the binary and its sub commands as sets of flowing words, your commands start looking like sentences :-) again, could do flags too as adjectives in certain places
This one is a bit hard to explain because I'm not even sure where my head is...