Still working on debugging why the test path predicitons are bad in general since the spot checks seem reasonable.  From my analysis, it appears that the test node names could use some improvement in their normalization so that they are more likely to line up with training data.
Fixed several issues with the name cleaning process:
(1) test node names are now using the collapsed mapping (ugh.)
(2) node names consisting of all stop words do not have stop words removed
(3) potential shorter node names consisting of only stop words are not considered (this was needed per (2))
(4) if a name is the empty string after character normalization, set it to a particular placeholder so that we no longer have any zero length node names

This increased the overlap of the test data upon the train data from 1.5% to 75%.