Цитата:
Сообщение от destructor
фактически на выходе получим "компилятор" для определенного языка...
и теоретически он сможет работает
Добавлено через 2 минуты
ну теперь я понимаю\увидел почему ты постоянно писал "как в копиляторе"
|
аминь!!))
Цитата:
Сообщение от mira
я тока непонимаю во что приводить фразу для обработки програмой. Толи в какуюто иерархию обьектов толи еще в че.
Вот фраза 'эй вася справа есть аденка?' какая будет иерархия?)
и как фраза будет выглядеть в виде промежуточных даных чтоб быть однозначно понятной движку
|
Ну тут я даж сам не понимаю, что ты написал)))) Это Вася, который сидит справа, или аденка справа от Васи?)))
А так по факту вопрос действительно интересный... Но имхо самое удобное - попытаться (хз как пока) привести к постфиксной форме записи. Т.е. сначала объект(группа объектов), затем действие. А вот кстати и про объект глагол. Если его использовать, то там можно добавить свойство, что-то вроде сколько предметов требует данное действие (1, 2, или не фиксировано). Если фиксировано, то заранее известно сколько объектов и никаких уточнений не надо... Если не фиксировано, то необходимо так же при анализе зафиксировать количество объектов.
К примеру при разборе в итоге получилось 5 объектов: "эй" (должно быть помечено как не несущее смысловой нагрузке), "вася" (свойство например "относительно положение" - справа), "есть" (что-то вроде действия), "аденка". При этом надо отметить, что предложение вопросительное. При идеальном раскладе мы должны изначально распознать, что "эй вася" - обращение к боту и оно должно быть сразу отброшено. А во внутренней форме представления должны быть только объекты с действиями (и мб количеством), и действия.
Короче в моем представлении, объект "есть" во-первых должен иметь какое-то конкретное значение для бота (т.е. в каком-то словаре), а во вторых он должен иметь свойство, в котором отмечено, что количество объектов к которым оно применяется неограниченно, и значит требуется уточнение количества...
Тогда во внутренне форме мы должны записать сначала все объекты, потом их количество ,потом действие...
При считывании из стека действия, он определяет что количество объектов не известно и по правилам количество объектов должно быть в следующем элементе стека...
Т.е. получаем в итоге запись аденка - 1 - есть...
В итоге получаем, что: "эй вася, есть аденка?" и "есть аденка?" не различаются во внутренней форме...
При этом строка "эй вася, есть аденка и что-то" во внутренней форме будет записана
что-то - аденка - 2 - есть
Но вот это все чисто мои философские рассуждения, которые не известно насколько легко реализуемы...