Пробовали ли вы еще простой подход, такой как составление списка всех уникальных слов, а затем просмотр каждого слова, проверка количества вхождений в исходной строке?Простое регулярное выражение \ b \ w + \ b соответствует словам.
Вот статья , объясняющая, как сопоставлять последовательные повторяющиеся слова.Вы должны быть в состоянии легко адаптировать это к вашим потребностям.