для этого случая проблемы типа:
>>нужно построить грамматику языка и разобраться с этим
>>фразу нада сначало привести в программно-понятный вид
решены
вот как действовать дальше?
Ну если совсем идеально делать, то тут у нас уже должен быть некий словарь для описания всех слов, а так же только тут уже должно быть описание какой-то физики, т.е. к примеру слово убей может быть применимо к "нуб" или "моб"... Хотя если правильнее, то должна быть категория живых существ и категория действий применимых к ним...
Если ближе к конкретике, то видимо на этапе синтаксического анализа надо формировать объекты, например самое примитивное с 2-мя параметрами: имя, характеристика. В характеристику например записывать прилагательное, относящееся к данному объекту. Если брать во внимание пока разбор строки с каким-то действием (в данном случае остальное не особо интересует, хотя не составит труда доработать до разбора предложений без сказуемого), то можно формировать элементарную постфиксную форму записи (надеюсь не стоит объяснять, что это).
Данная постфиксная форма и будет составлять программно понятный вид. Дальше на основе какой-то базы слов и физики необходимо определение возможности выполнения того или иного действия и соответственно выполнение или сообщение о невозможности выполнения. (усложняя все это, можно привести к виду не только приема сообщений, содержащих указания к действию, но и к вопросительным и т.д.)
ЗЫ можешь порыть инфу про SHRDLU, я много не читал про это, но как раз именно то о чем мы сейчас говорим)
Последний раз редактировалось Aries, 06.04.2011 в 02:17.
для определения глаголов я хз сам недопер как их определять. Для существительных проще. Выполняетса поиск в пространстве имен бота- имена, названия лок, предметов, умений а также определеные системой шаблоны типа - инвентарь , перс
Добавлено через 18 минут
этот обьект будет имет свойства и методы. Методы это посути применые глаголы а свойства прилагательные. Методы и свойства должны быть виртуальные так как скажем метод move для предмета и перса будет реализован иначе.
А свойство возраст для обьекта 'инвентарь' вообще должен вернуть null
Добавлено через 2 минуты
часть обьектов окружения следует создавать заранее а часть создавать налету и удалять при процедуре очистки мусора движка.
Добавлено через 4 минуты
удобно использование интерфейсов. Но свойства придетса обернуть в методы что тоже неочень
__________________
читернуть бы ништяг
Последний раз редактировалось mira, 06.04.2011 в 09:44.
Причина: Добавлено сообщение
По сути все верно... Только надо объект обязательно в иерархии строить... Т.е. создаем единственный родительский объект, например имеющий свойство цвет, хз надо подумать какие еще свойства присущи всем объектам. Дальше на основе его создается еще например 2 объекта: живые существа, и не живые существа, они уже имеют больше свойств и методов.
Глагол - так же объект, только насчет иерархии глаголов - хз, но мб и тут нужны. Самые обязательные свойства глагола: первое - предлог, и второе - список объектов, к которым глагол применим, тогда не надо будет описывать каждый объект, если например данный глагол может быть использован к родительскому объекту.
Но при этом конечно чтобы дойти до этого этапа, времени убьется просто ппц. Особенно если делать распознание приближенной к естественной речи, тогда надо еще в грамматику всякие согласования по временам, падежам и т.д. делать...
я ваще руский не учил) хз как там разбирать граматику итд.
С глаголами несогласен что это обьекты. Это скорее методы обьектов.
Хотя хуле я о высоком. Галуха давай делай парсер текста поделишся реализацией) я подскажу тоже пару тем чотких
я ваще руский не учил) хз как там разбирать граматику итд.
С глаголами несогласен что это обьекты. Это скорее методы обьектов.
Хотя хуле я о высоком. Галуха давай делай парсер текста поделишся реализацией) я подскажу тоже пару тем чотких
глаголы имеют прямое отношение к методам объектов, но при разборе их 99% надо выделять в отдельные объекты...
Грубо говоря должно быть 2 объекта, один - описывает предмет, его свойства и действия, которые применимы, второй - описывает что и как делается и к каким объектам можно применить...
Хотя в принципи если в объекте предмета ввести доп свойства типа действие,которое надо выполнить и т.д., то можно и так... Но по мне это не так удобно...
А что по поводу грамматики сложного?)) Я в принципи привел пример самой простейшей и примитивной грамматики как ее написать и разбирать, но между тем любое предложение в ней и так уже можно строить... И при таком подходе наращивание правил грамматики при правильно построенном коде вообще не должно составить труда...
По-моему, осталось придумать правильную внутреннюю форму представления и можно приступать кодить xD