I guess it makes sense if we ignore - and ' for the wordlength, ranking those words higher. I guess this could eliminate the prediction problem for "ill" to "i'll". We could use something like.

len(lastWord.replace("-", "").replace("'","")))