Познакомиться на практике с методами анализа
естественно-языковых
текстов в системах логического программирования (Пролог, Mecury), реализовать в
соответствии с вариантом задания несложный фрагмент естественного-языкового
интерфейса к модельной задаче и протестировать его на ряде примеров.
Реализовать разбор фраз языка (вопросов), выделяя в них неизвестный объекты
Запос:? - an_q([Кто, любит, шоколад, ?],X);? - an_q([Где, лежат, деньги, ?],X);? - an_q([Что, любит, Даша, ?],X) ;
Вывод:
X=’любить’(agent(Y), object(’шоколад’)),
X=’лежать’(object(‘деньги’), loc(X)),
X=’любить’(agent(Даша), object(Y)).
Мне очень понравилось использовать нотацию DCG в Пролог.
Это очень простое, удобное, и красивое средство описания контекстно-свободных языков.
Ни в одном из известныз мне языков программирования подобного нет.
Получается, что легко и не принужденно можно проводить,
любую бытовую текстовую обработку текста, автоматически.
Например, автоответчик для Jabber, на основе Пролог, можно сконструировать так,
что люди не всегда будут понимать с кем или чем они говорят.
Другой пример --- автоматический переводчик текста, определенной предметной облатсти. Глаза разбегаются. Есть одна неприятная вещь. Для решения задачи искусственного интеллекта часто требуется некоторая база данных, кторую приходится набивать руками. Но если сделать, создание описания правил грамматики автоматически, то это уже не так страшно. В моей лабораторной так и сделано. Базу можно менять как угодно, даже не подозревая на каком языке напимана программа и как она работает.
Можно для решения подобных задач обойтись и без DCG нотации но программы
становятся большими и запутанными.
Работа выполнена на языке Prolog + Python
Отчет в формате — PDF
Исходники отчета — LaTeX2e
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.
текстов в системах логического программирования (Пролог, Mecury), реализовать в
соответствии с вариантом задания несложный фрагмент естественного-языкового
интерфейса к модельной задаче и протестировать его на ряде примеров.
Реализовать разбор фраз языка (вопросов), выделяя в них неизвестный объекты
Запос:? - an_q([Кто, любит, шоколад, ?],X);? - an_q([Где, лежат, деньги, ?],X);? - an_q([Что, любит, Даша, ?],X) ;
Вывод:
X=’любить’(agent(Y), object(’шоколад’)),
X=’лежать’(object(‘деньги’), loc(X)),
X=’любить’(agent(Даша), object(Y)).
Мне очень понравилось использовать нотацию DCG в Пролог.
Это очень простое, удобное, и красивое средство описания контекстно-свободных языков.
Ни в одном из известныз мне языков программирования подобного нет.
Получается, что легко и не принужденно можно проводить,
любую бытовую текстовую обработку текста, автоматически.
Например, автоответчик для Jabber, на основе Пролог, можно сконструировать так,
что люди не всегда будут понимать с кем или чем они говорят.
Другой пример --- автоматический переводчик текста, определенной предметной облатсти. Глаза разбегаются. Есть одна неприятная вещь. Для решения задачи искусственного интеллекта часто требуется некоторая база данных, кторую приходится набивать руками. Но если сделать, создание описания правил грамматики автоматически, то это уже не так страшно. В моей лабораторной так и сделано. Базу можно менять как угодно, даже не подозревая на каком языке напимана программа и как она работает.
Можно для решения подобных задач обойтись и без DCG нотации но программы
становятся большими и запутанными.
Работа выполнена на языке Prolog + Python
Отчет в формате — PDF
Исходники отчета — LaTeX2e
МАИ.
Факультет прикладной математики.
Кафедра вычислительной математики и программирования.