To StringSplit a string at word boundaries, I use the code
ParseText[ text_] :=
StringSplit[ToLowerCase[text], RegularExpression["\\W+"]]
Applying this function results in a problem result. Thus,
sample1 = "These are the times that try men's souls.";
ParseText[sample1]
returns
{"these", "are", "the", "times", "that", "try", "men", "s", "souls"}
However, this results in splitting words like "men's", "can't", "don't", etc into two words. What regular expression can I use to keep words like these intact?