Вернуться   CoderX :: Forums > Основные форумы > Программинг
Войти через OpenID

Программинг Форум для тем связанных с программированием

Чат (Новых сообщений с момента вашего последнего визита нет)
Загрузка...
Задавайте ваши вопросы на форуме. Чат предназначен для небольших разговоров.
 
 
 
Опции темы Опции просмотра
Старый 05.04.2011, 20:47   #10
Местный
 
Аватар для Aries
 
Регистрация: 19.01.2011
Сообщений: 241
Сказал Спасибо: 7
Имеет 26 спасибок в 22 сообщенях
Aries пока неопределено
По умолчанию

Цитата:
Сообщение от destructor Посмотреть сообщение
приходит тебе в чат:
>>Положить желтый стул под синий стол

бот разбирает предложение и строит(согласно правилам) дерево:

дальше что?
Принцип работы немного не такой
1.Фраза – > Гл., Гр. Сущ.
2.Гр. Сущ. – > Прил., Сущ
3.Гр. Сущ. – > Гр. Сущ., Предл., Гр. Сущ.
4.Гл. – > положить/взять
5.Сущ. – > стул/стол
6.Предл. – > в/на/под
7.Прил. – > синий/желтый

Допустим есть стек, куда кладутся лексемы
Считываем по словам, при этом анализируя содержимое стека:
Положить - Гл. (по правилу 4)
стек пустой, больше правила не применимы, значит
push (Гл.)
желтый - Прил. (7)
В стеке Гл., правил вида Гл., Прил. не существует, значит
push (Прил.)
стул - Сущ. (5)
На вершине стека Прил. -> применимо правило 2, значит
pop(),
Прил., Сущ. - Гр. Сущ.

смотрим стек, видим что можно применить правило 1, но на данном примере видим, что будет ошибка, соответственно не учли при построении грамматики у нас должно было быть дополнительное ограничение о применимости правила 1 (например, если след слово - не предлог)
с учетом этого условия, больше правила не применимы, значит
push (Гр. Сущ.)
и т.д.
в итоге стек: Гл. Гр. Сущ. Предл.
текущая лексема - Гр. Сущ.
Извлекаем из стека, получается Гр. Сущ. Предл. Гр. Сущ. - Гр. Сущ.
Затем Гл. Гр. Сущ. - Фраза
Т.е. предложение свернулось и значит фраза построена верно...
Значит можно включать мозги по распознанию смысла (т.е. синтаксический анализатор)... С этим вопросом я конечно уже не продумывал все как следует. Там по подобному принципу разбирается фраза, но при разбитии на лексемы уже делаются дополнительные действия, которые будут связаны с конкретными значениями слов, формирование внутренних таблиц и скорее всего формирование внутреннего представления значения данной фразы... Т.е. формирование однозначно определенной последовательности действий. Пример из теории компиляторов, это на уровне синтаксического анализа часто идет построение Польской Формы записи, которая как раз однозначно определяет всю дальнейшую последовательность действий.
Aries вне форума   Ответить с цитированием
 

  CoderX :: Forums > Основные форумы > Программинг



Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +4, время: 01:12.

vBulletin style designed by MSC Team.
Powered by vBulletin® Version 3.6.11
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Locations of visitors to this page
Rambler's Top100

Вы хотите чувствовать себя в безопасности? чоп Белган обеспечит её!