Удаление похожих слов?
Используйте любой из алгоритмов нечёткого поиска, например вычисляйте Расстояние Левенштейна для каждой парый слов. В зависимости от полученных значений решайте, какие слова удалять, а какие оставить.var str = 'тест тост тест тесто';
var words = str.split(' ');
var result = [];
for (var i = 0; i < words.length; i++) {
    result.push(words[i]);
    for (var j = i + 1; j < words.length; j++) {
        if (levenshtein(words[i], words[j], {}) < 2) {
            words.splice(j--, 1);
        }
    }
}
https://jsfiddle.net/9hz8wmz6/
Ну как вариант вам надо разбить текст на массив слов. А затем в цикле по этому массиву применять к тексту регулярное  выражение в котором вы укажите что текущее слово повторяющееся более 1 раза друк за другом заменится на одно. Или сравнивайта элементы друг с другом и при совпадении удаляйте дубль (что-то типа пузырькового метода; Вы же знаете о чёмя?). Потом склейти элементы в строку. Только это очень нагрузить клиента.