обобщением частот слов являются языковые модели, например, униграммы (= частота одного слова), биграммы (= частота пар слов), триграммы (= частота мировых троек), ..., в общем: n-грамм
Вам следует поискать существующий инструментарий для языковых моделей - не очень хорошая идея изобретать колесо здесь.
Существует несколько стандартных наборов инструментов, например, от команды CMU Sphinx, а также HTK.
Эти наборы инструментов, как правило, написаны на C (для скорости !!, потому что вам приходится обрабатывать огромные массивы) и генерируют файлы ARPA n-грамм стандартного выходного формата (обычно это текстовые форматы)
Проверьте следующую ветку, которая содержит более подробную информацию и ссылки:
Создание модели языка, совместимой с openears
После того, как вы сгенерировали вашу языковую модель с помощью одного из этих наборов инструментов, вам потребуется либо Ruby Gem, который делает языковую модель доступной в Ruby, либо вам необходимо преобразовать формат ARPA в ваш собственный формат.
В посте adi92 перечислены еще некоторые ресурсы Ruby NLP.
Для получения дополнительной информации вы также можете использовать Google для "ARPA Language Model"
Не в последнюю очередь проверьте Онлайн-инструмент Google N-граммы . Они построили n-граммы на основе оцифрованных книг - также доступны на французском и других языках!