frilanser
@frilanser

Удаление похожих слов?

Помогите удалить похожие слова:
К примеру в div есть слова: тест тест.
Нужно удалить все слова кроме одного.
Те. оставляем один тест все остальные тест тест и т.д удалить.
  • Вопрос задан
  • 265 просмотров
Пригласить эксперта
Ответы на вопрос 2
27cm
@27cm
TODO: Написать статус
Используйте любой из алгоритмов нечёткого поиска, например вычисляйте Расстояние Левенштейна для каждой парый слов. В зависимости от полученных значений решайте, какие слова удалять, а какие оставить.

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/
Ответ написан
Комментировать
Machez
@Machez
Бу!
Ну как вариант вам надо разбить текст на массив слов. А затем в цикле по этому массиву применять к тексту регулярное выражение в котором вы укажите что текущее слово повторяющееся более 1 раза друк за другом заменится на одно. Или сравнивайта элементы друг с другом и при совпадении удаляйте дубль (что-то типа пузырькового метода; Вы же знаете о чёмя?). Потом склейти элементы в строку. Только это очень нагрузить клиента.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы