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

Позволяет получить из теста список всех слов по одному разу, исключив повторы. Также может быть полезна для подсчета слов во введенном тексте.

Наберите или скопируйте текст для анализа:





// Эта функция выделяет из текста в $text все уникальные слова и
// возвращает их список. В необязательный параметр $nOrigWords
// помещается исходное число слов в тексте, которое было до
// "фильтрации" дубликатов.
function getUniques($text, &$nOrigWords=false) {
  // Сначала получаем все слова в тексте.
  $words=preg_split('/[^a-zA-Zа-яА-ЯёЁ0-9]+/u', $text, -1, PREG_SPLIT_NO_EMPTY);
  $nOrigWords = count($words);
  // Затем приводим слова к нижнему регистру.
  $words = array_map("mb_strtolower", $words);
  // Получаем уникальные значения.
  $words = array_unique($words);
  return $words;
}
// Пример применения функции.
setlocale(LC_ALL, '');
$fname = "largetextfile.txt";
$text = file_get_contents($fname);
$uniq = getUniques($text, $nOrig);
echo "Было слов: $nOrig<br>";
echo "Стало слов: ".count($uniq)."<hr>";
echo join(" ", $uniq);

Также Вам может быть интересен сервис Семантический анализатор, который позволяет посчитать все слова на страице с учетом морфологии.


.