Would it be feasible to have a Java rule that checks combinations of 2 and 3 tokens and check the existence of the combinations of the tokens in the spelling dictionary?
‘Scot free is one word’
scotfree is checked: does not exist
scot-free is checked: exists
’Did you mean scot-free’ ?
Maybe even the frequency class could be used as a filter. And of course there is an exception list to be had.