Есть ли какой-нибудь драгоценный камень Ruby или еще для анализа текста? Частота слов, обнаружение шаблонов и т. д. (желательно со знанием французского языка)
Рубиновый текстовый анализ
Ответы (3)
обобщение частоты слов - это языковые модели, например. униграммы (= частота отдельных слов), биграммы (= частота пар слов), триграммы (= частота мировых троек), ..., в общем: n-граммы
Вам следует поискать существующий инструментарий для языковых моделей — не стоит изобретать велосипед здесь.
Доступно несколько стандартных наборов инструментов, например. от команды CMU Sphinx, а также HTK.
Эти наборы инструментов обычно написаны на C (для скорости!!, потому что вам нужно обрабатывать огромные корпуса) и генерируют файлы стандартного выходного формата ARPA n-gram (обычно это текстовый формат).
Проверьте следующий поток, который содержит более подробную информацию и ссылки:
Построение языковой модели, совместимой с openears
После того, как вы создали свою языковую модель с помощью одного из этих наборов инструментов, вам понадобится либо Ruby Gem, который делает языковую модель доступной в Ruby, либо вам нужно преобразовать формат ARPA в свой собственный формат.
В сообщении adi92 перечислены еще некоторые ресурсы Ruby NLP.
Вы также можете найти в Google «Модель языка ARPA» для получения дополнительной информации.
И последнее, что не менее важно, проверьте онлайн-инструмент N-gram от Google. Они построили n-граммы на основе оцифрованных книг, которые также доступны на французском и других языках!
Нищий Ошибка: Ресурсы NLP для Ruby содержат много полезных ссылок Ruby NLP.
Я пытался использовать материал Ruby Linguistics давным-давно, и помню, что у меня было много проблем с ним... Я не знаю. рекомендую прыгнуть в это.
Если большая часть вашего текстового анализа связана с такими вещами, как подсчет энграмм и наивный байесовский анализ, я рекомендую просто делать это самостоятельно. Ruby имеет довольно хорошие базовые библиотеки и потрясающую поддержку регулярных выражений, поэтому это не должно быть таким сложным, и вам будет легче адаптировать материал к особенностям проблемы, которую вы пытаетесь решить.
Как и в случае со Stanford parser gem, можно использовать библиотеки Java, которые решают вашу проблему изнутри Ruby, но это может быть сложно, так что, вероятно, это не лучший способ решить проблему.
По этой причине я написал гем words_counted. Демонстрацию можно посмотреть на rubywordcount.com. Он имеет множество функций анализа, которые вы упомянули, и множество других. API хорошо задокументирован, и его можно найти в файле readme на Github.