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