Частота] /////////////////////////////////////////////// function get_freq($text) { // Исходный текст $text = mb_strtolower($text, 'utf-8'); // Делаем из строки массив всех слов текста $words = preg_split("/[\s,!?.:;—«»\"\[\](){}~0123456789-]+/u", $text); // Удаляем элемент с пустой строкой, если он есть if ($isnull = array_search('', $words)) { unset($words[$isnull]); } // Считаем количество слов $fvortaro = array_count_values($words); // Сортируем по убыванию частоты arsort($fvortaro); return ($fvortaro); } /////////////////////////////////////////////// // Определяем количество слов в тексте. /////////////////////////////////////////////// function get_count($text) { // Исходный текст $text = mb_strtolower($text, 'utf-8'); // Делаем из строки массив всех слов текста $words = preg_split("/[\s,!?.:;—«»\"\[\](){}0123456789-]+/u", $text); // Удаляем элемент с пустой строкой, если он есть if ($isnull = array_search('', $words)) { unset($words[$isnull]); } // Возвращаем число слов return (count($words)); } /////////////////////////////////////////////// // Определяем словарь нужного процента слов текста. Вход — отсортированный по убыванию частоты массив /Слово => Частота/ и процент слов и общее количество слов текста. Выход — массив словаря /////////////////////////////////////////////// function get_vortaro($fvortaro, $procent, $wcount) { $sum = 0; $result = array(); foreach ($fvortaro as $w => $f) { $dolya = $f / $wcount; //Определяем долю слова в общем тексте $sum = $dolya + $sum; // Суммируем доли предыдущих слов if ($sum <= ($procent + 0.5) / 100) {$result[] = $w;} else {break;} ; } return $result; } /////////////////////////////////////////////// ?>

Подсчёт частотности слов в тексте и создание словарей

Версия 2 / 15.10.2018 Версия 1 / 6.08.2010 / Sadykov.org/tools

Этот скрипт помогает определить, насколько часто встречаются определённые слова в тексте и составить словарь для текста.

Исходный текст вставьте сюда:


"; echo "Общее количество слов в тексте: " . $wcount . "
"; echo "Объём словаря всего текста: " . $vcount . "
"; ?>

Словарь 50% слов

Объём словаря: . То есть половина (!) всего текста состоит из них.
От общего количества слов (словаря), которые используются в тексте, это составляет NAN%.


Словарь 80% слов

Объём словаря:
От общего количества слов это составляет NAN%.


Словарь 100% слов

Объём словаря:



Параметры

"; echo "НомерСловоЧастотаЧастота/общее кол-во, %Суммарный вклад, %"; $sum = 0; $i = 1; foreach ($fvortaro as $k => $v) { $dolya = $v / $wcount; $sum = $dolya + $sum; echo "" . $i . "" . $k . "" . $v . "" . round($dolya, 3) * 100 . "" . round($sum, 2) * 100 . ""; $i++; } echo ""; ?>