Выделение уникальных слов из текста

PHP 17.07.21 17.07.21 409
Бесплатные курсына главную сниппетов

Представьте, что перед нами некоторый довольно длинный текст в переменной $text.
Необходимо выделить из него все слова и оставить из них только уникальные. Результат должен быть представлен в виде списка. Решение этой задачи может потребоваться, например, при написании индексирующей поисковой системы на PHP.

<?php ## Выделение уникальных слов в тексте // Эта функция выделяет из текста в $text все уникальные слова и // возвращает их список. В необязательный параметр $nOrigWords // помещается исходное число слов в тексте, которое было до // "фильтрации" дубликатов. function getUniques($text, &$nOrigWords = false) { // Сначала получаем все слова в тексте $words = preg_split("/([^[:alnum:]]|['-])+/s", $text); $nOrigWords = count($words); // Затем приводим слова к нижнему регистру $words = array_map("strtolower", $words); // Получаем уникальные значения $words = array_unique($words); return $words; } // Пример применения функции setlocale(LC_ALL, 'ru_RU.UTF-8'); $fname = "largetextfile.txt"; $text = file_get_contents($fname); $uniq = getUniques($text, $nOrig); echo "Было слов: $nOrig<br />"; echo "Стало слов: ".count($uniq)."<hr />"; echo join(" ", $uniq); ?>

 

на главную сниппетов
Курсы