Мне нужно сделать окончательный проект для моего класса вычислительной лингвистики. Мы все время используем OCaml, но я также знаком с Java. Мы изучали морфологию, FSM, собирали деревья синтаксического анализа, синтаксический анализ CYK, попытки, автоматы сжимания, регулярные выражения, теорию формального языка, некоторую семантику и т.д.
Вот некоторые идеи, которые я придумал. У вас есть что-то, что, по вашему мнению, было бы круто?
-
A script, который сканирует потоки Facebook для неприятных * комментариев и молча скрывает их с помощью JS (это будет выполняться с согласия пользователя, очевидно)
-
Анализ части письма с использованием семантики, синтаксиса, использования пунктуации и других показателей, чтобы попытаться "отпечатать" автора. Его можно использовать, чтобы определить, написаны ли два произведения одним автором. Или, кто-то мог бы добавить кучу писем, которые он сделал со временем, и понять, как изменился его стиль.
-
Бот-чат (менее интересный/оригинальный)
Мне может быть разрешено использовать ранее существовавшие библиотеки для этого. Существуют ли какие-либо существуют для OCaml? Без библиотеки/инструментария эти три идеи, вероятно, недопустимы, если я не ограничу его до очень специфического домена.
Идеи нижнего уровня:
-
Операции на конечных автоматах - минимизация, составление преобразователей, доказательство того, что FSM находится в минимально возможном состоянии. Меня очень интересует теория графов, поэтому любое совпадение с FSM может быть хорошим местом для изучения. (Что еще я могу сделать с FSM?)
-
Что-то классное с регулярным выражением?
-
Что-то классное с CYK?
Есть ли у кого-нибудь интересные идеи?
* отвратительный, определяемый как имеющий определенные закономерности, характерные для младших школьников. Неопределенность этого термина не является проблемой; для кредита я мог бы определить, что хочу, и настроить его.