[Ищу] Программа для удаления дублей слов, чтобы осталось первое встреченное слово

Тема в разделе "SEO Скрипты", создана пользователем DoctorWhoAreYou, 14 фев 2017.

  1. DoctorWhoAreYou

    DoctorWhoAreYou

    Регистр.:
    1 фев 2007
    Сообщения:
    324
    Симпатии:
    82
    Есть необходимость вот такого интересного удаления дублирующихся слов ( не строк).
    Большинство программ ( keywordkeeper, penguin, keywash и многие другие)- удаляют только дубли строк.

    А ситуация такая:
    например есть строки:
    зеленый огурец
    зеленый луг
    зеленый лес
    человек в капюшоне
    лис в капюшоне с головой
    лис в капюшоне с рогами
    если запустить через обычные программы, то ничего не удалится, а в моем случае надо удалить повторяющиеся слова, оставив конечно первое.
    то есть чтобы на выходе было
    зеленый огурец
    луг
    лес
    лис в капюшоне с головой
    с рогами

    То есть каждое слово в итоге должно лишь раз встречаться в файле ( а дубли именно слов удалены)
    Буду очень признателен если подскажете, какая программа может такое делать?
    Или может в какой-либо существующей программе можно задать как-то по хитрому правило для этого?
     
  2. alex-bot

    alex-bot Nulled-Man

    Регистр.:
    4 май 2007
    Сообщения:
    497
    Симпатии:
    144
    Если нужно разбить прямо на отдельные слова, а не фразы и потом удалить дубли слов, то в TextPipe Pro это можно сделать сам недавно такое делал, можно даже с подсчетом количества вхождений
     
  3. alexbelij

    alexbelij Постоялец

    Регистр.:
    13 мар 2012
    Сообщения:
    55
    Симпатии:
    34
    несколько вариантов.
    1. разбить на слова, где каждое слово с новой строки. далее в notepad++ есть плагин удаления дублей. аналогично можно поступить в excel. далее остаётся только собрать обратно в строку, расставляя пробелы. затем провести замены ' ,',' .' и т.д. чтобы убрать пробелы перед символами. тут все просто и наглядно. про способ сnotepad++ можно почитать тут
    2. аналогичным способом работает сервис от pr-cy http://pr-cy.ru/duplicates/
     
  4. ganzalez

    ganzalez Постоялец

    Регистр.:
    3 апр 2009
    Сообщения:
    53
    Симпатии:
    6
    Есть вариант написать небольшой скрипт:
    1. берем первое слово;
    2. пробегаемся по всему файлу на поиск дубликатов;
    3. удаляем дубликаты;
    4. берем второе слово;
    5. и т.д..
    Пример скрипта на PHP не моего авторства:
    PHP:
    $output = [];
    $voc = [];
    if ((
    $fp fopen('input_file.csv''r')) !== false) {
        while ((
    $data fgetcsv($fp1000'|')) !== false) {
            
    $tmp array_diff($data$voc);
            
    $voc array_merge($voc,$tmp);                         
            
    $output[] = $tmp;
        }
        
    fclose($fp);
    }
    // записываем обработанные данные в новый файл
    $fp fopen('output_file.csv''w');
    foreach (
    $output as $fields) {
        
    fputcsv($fp$fields'|');
    }
    fclose($fp);
     
    Hmelex нравится это.
  5. ardashev

    ardashev Создатель

    Регистр.:
    1 сен 2016
    Сообщения:
    10
    Симпатии:
    0
    ТС, нашли решение? Была аналогичная проблема. Увы, перелопатили руками
     
  6. machoman

    machoman Постоялец

    Регистр.:
    31 янв 2007
    Сообщения:
    54
    Симпатии:
    10
    Проблема такой "хотелки" может быть такая: есть список запросов:

    зеленый огурец
    зеленый луг
    зеленый лес
    человек в капюшоне
    зеленый человек
    человек огурец

    Если программа/скрипт сделает то, что вы хотите, последних двух запросов вообще не будет, т.к. полностью состоят из дублей.