Forum.iFiction.Ru

iFiction.Ru · ifHub · FAQ · IFWiki · QSP · URQ · INSTEAD · AXMA

форум об interactive fiction, текстовых приключенческих играх и всём таком...

Вы не зашли.

0    0    #1
15.07.2001 05:32

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Анализатор вводимых команд

Бьюсь тут над анализатором вводимых игроком команд. Поскольку я не гений, то приходится делать некоторые ограничения игрокам при составлении предложений, а именно следующие:
1. Глагол должен всегда идти первым:
     "возьми яблоко", а не "яблоко возьми"
2. Характеристики действия и объектов должны идти перед объектами:
     "возьми красное яблоко", а не "возьми яблоко красное"
     "осторожно положи камень на тумбу", а не "положи осторожно камень на тумбу"

По-моему, это не критично и, в принципе, естественно. Какие будут замечания или дополнения?

Неактивен

0    0    #2
15.07.2001 18:28

WildWizard
Участник (+1)
Откуда: Россия, Красноярск
Зарегистрирован: 01.03.2001
Сообщений: 450
Вебсайт

Nobody expects the Spa.. Oh, never&&mind.

Re: Анализатор вводимых команд

Совершенно согласен.
Боюсь в моей Hydra анализатор вообще ужасный. Надеюсь, у тебя лучше получится.

Неактивен

0    0    #3
15.07.2001 18:30

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

А в чем у тебя проблемы с анализатором? Какие трудности?

Неактивен

0    0    #4
16.07.2001 08:58

JackCL
Участник (+55, -24)
Зарегистрирован: 03.03.2001
Сообщений: 416

Re: Анализатор вводимых команд

2Olegus: замечание у меня одно тут - упомянутые тобой "ограничения" присутствуют практически во всех адвентюрах которые я видел. Так что это скорее правила такие, а не ограничения.

Неактивен

0    0    #5
29.08.2001 22:21

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: Анализатор вводимых команд

1.Ставить глагол вначале вроде бы совершенно необязательно, т.к. его можно вытянуть из предложения в любом месте.
2.Характеристику действия тоже.
3.Прилагательное ставить перед существительным вроде тоже не обязательно, по крайней мере мне не приходит в голову никакого примера, где бы было неясно к какому существительному относится прилагательное.

Олегус, ты на каком языке пишешь программу? Я, в принципе, могу помочь и написать подпрограмму, которая бы вычленяла из предложения разные части речи.

Неактивен

0    0    #6
30.08.2001 04:03

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

    Пишу-то я на Паскале.

     Что касается расположения глаголов и пр., а если в предложении два действия: "возьми камень и кинь его в гоблина"? Хотя все это решаемо.

     Что касается помощи, то пока справляюсь. Хотя характеристики еще не реализованы. Структура команды по Olegus'у такова:

глагол + осн.объект + всп.объект + доп.объект
"привяжи лошадь к забору веревкой"

Порядок следования объектов и предлоги роли не играют, то есть тем же самым для компьютера будет: "привяжи с помощью веревки лошадь к забору". Хотя все это требует нехилой словарной базы.  sad  К тому же возможно использования нескольких команд (см. пример выше про бедного гоблина), а также нескольких объектов: "возьми камень, пилу, топор и пожрать".

     В любом случае, работа идет и, хвала небесам!, останавливаться не собирается!  ;D

Неактивен

0    0    #7
30.08.2001 06:03

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: Анализатор вводимых команд

А если я скажу:
Привяжи к забору верёвкой лошадь или
Привяжи верёвкой к забору лошадь или
Лошадь привяжи верёвкой к забору...
Ведь понимать не будет, а это плохо:(

Неактивен

0    0    #8
30.08.2001 10:07

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

    Из перечисленных выше примеров мой анализатор не поймет только "Лошадь привяжи верёвкой к забору". Все остальные - на ура... Я же говорю - любой грамотно составленный порядок объектов (то есть с падежами и предлогами). Главное, чтобы в словарной базе эти слова были.

Неактивен

0    0    #9
30.08.2001 13:09

Al Chipollino
Участник (+1)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 496

Re: Анализатор вводимых команд

Ну почему нужно глагол ставить только на первое место? Можно ведь легко обойти это ограничение.

Неактивен

0    0    #10
30.08.2001 20:03

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

...но пока лень реализовать. А так, сперва этот вариант было проще разработать. Нашел глагол - сразу ясно, какие объекты (из последующих слов) к нему можно прицепить. Основные проблемы с произвольным положением глагола проявляются только в случае использования в одной фразе нескольких команд. Если же допустить, что во фразе всего одна команда - то нет проблем. Это легко реализуемо.

Неактивен

0    0    #11
15.12.2001 12:49

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

Переписывая свой анализатор (в связи с новой структурой данных приходится все переписывать!) наткнулся на еще одну проблему - изменение падежей существительного ЧИСЛИТЕЛЬНЫМ (будь оно неладно!). Сейчас штудирую учебник русского языка, чтобы решить эту проблему наименее кровавым образом.

Неактивен

0    0    #12
16.12.2001 10:14

WildWizard
Участник (+1)
Откуда: Россия, Красноярск
Зарегистрирован: 01.03.2001
Сообщений: 450
Вебсайт

Nobody expects the Spa.. Oh, never&&mind.

Re: Анализатор вводимых команд

А как же ты без предлогов обходишься?
положи камень НА стол,
положи камень ПОД стол
- разные вещи...

Неактивен

0    0    #13
16.12.2001 22:18

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

С предлогами-то как раз проблем нет, но вот числительные - та еще штучка...

Кстати, в объекте "существительное" у меня запоминается каким предлогом оно сопровождается.

Неактивен

0    0    #14
28.12.2001 22:06

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

С предлогами-то как раз проблем нет, но вот числительные - та еще штучка...

С числительными я как-то разбирался.
Если не ошибаюсь, то всё, что кончается на 1, кроме 11, имеет И.п. (Именительный падеж).
Всё, что на 2, кроме 12, - В.п.
Всё на 3-9, кроме 13-19, - В.п.
А 11-19 - Р.п.

Ой, кажется я что-то напутал. Ну, думаю, мои мысли понятны. Или тебе не это нужно?

Неактивен

0    0    #15
28.12.2001 22:10

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

     Пишу-то я на Паскале.

     Что касается расположения глаголов и пр., а если в предложении два действия: "возьми камень и кинь его в гоблина"? Хотя все это решаемо.

     Что касается помощи, то пока справляюсь. Хотя характеристики еще не реализованы. Структура команды по Olegus'у такова:

глагол + осн.объект + всп.объект + доп.объект
"привяжи лошадь к забору веревкой"

Порядок следования объектов и предлоги роли не играют, то есть тем же самым для компьютера будет: "привяжи с помощью веревки лошадь к забору". Хотя все это требует нехилой словарной базы.  sad  К тому же возможно использования нескольких команд (см. пример выше про бедного гоблина), а также нескольких объектов: "возьми камень, пилу, топор и пожрать".

     В любом случае, работа идет и, хвала небесам!, останавливаться не собирается!  ;D

А может реализовать всё через маски? Как в Inform`у.

Неактивен

0    0    #16
28.12.2001 22:27

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

В каком смысле? Можно поподробнее насчет масок в Inform'е?...

Неактивен

0    0    #17
31.12.2001 14:47

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

В каком смысле? Можно поподробнее насчет масок в Inform'е?...

В Inform`е же используются маски для парсинга введённой строки

Неактивен

0    0    #18
02.02.2002 00:16

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

В самом скором времени (до 8 февраля) выложу алгоритм анализа фразы игрока. Он прост, но хорош. Я его использую в "Наследство Мути...".

Это кому-либо интересно?

Неактивен

0    0    #19
02.02.2002 13:46

Sonic
Автор ЯРИЛ (+82, -4)
Откуда: Россия, Краснодар
Зарегистрирован: 24.08.2001
Сообщений: 243
Вебсайт

---

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

В самом скором времени (до 8 февраля) выложу алгоритм анализа фразы игрока. Он прост, но хорош. Я его использую в "Наследство Мути...".

Это кому-либо интересно?

Да-да, интересно было бы посмотреть.  smile

Неактивен

0    0    #20
07.02.2002 17:14

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

Если кому это интересно, то статья уже вышла. Смотрите раздел "Инструменты" нашего сайта, или (что еще проще) вот она сама:
https://ifiction.ru/a/ifparser.html

Неактивен

0    0    #21
11.02.2002 07:18

Вождь Залумунда
Участник
Откуда: Нижняя Замибия (она же внутрен
Зарегистрирован: 25.01.2002
Сообщений: 51

Beware tha Jabberwock, my son!&&Tha jaws that bite, the claws that catch.&&Beware tha Jub-Jub bird and shun&&Tha frumious Bandersnatch!

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

Если кому это интересно, то статья уже вышла. Смотрите раздел "Инструменты" нашего сайта, или (что еще проще) вот она сама:
https://ifiction.ru/a/ifparser.html

Олегус, я прочел, весомо! Местами хихикал, вспоминая свои давешние дурацкие "без пальто из кино в казино"...smile

2Community: вот так и надо, робяты, помогать отечественному  хип-хопу...тьфу, ИФ! Никакой метафизии, одна практика, бери и пользуйся хоть щаз!

неофит пиара,
Залумунда.

Неактивен

0    0    #22
05.03.2002 01:27

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

Как-то легко решился вопрос с местоимениями. Теперь вместо таких фраз, как:

>возьми лампу и зажги лампу
   10
>возьми лампу
>зажги лампу

можно вводить так:

>возьми лампу и зажги ее
   10
>возьми лампу
>зажги ее

а такую фразу, как "возьми меч и убей мечом дракона" можно заменить на "возьми меч и убей им дракона".

Пора бы приложение к статье выкладывать...

Неактивен

0    0    #23
16.06.2002 00:49

dyx
Участник
Зарегистрирован: 15.12.2001
Сообщений: 99

Re: Анализатор вводимых команд

  Да-да, Олегус, давай!

   А вообще с местоимениями, я думаю, не так уж и сложно... Для каждого существительного добавлять падеж, сделать таблицу местоимений, а потом, при анализе просматривать строку, находить падеж, сравнивать его вид с видом существительного (падеж, род, число) и просто заменять падеж на сущ. Правильно говорю?
   А вообще сейчас пойду и вставлю в свой код.

   Отчаянный Дух (ОДИН)

Неактивен

0    0    #24
16.06.2002 19:42

Соник
Участник
Откуда: Россия, г. Тольятти
Зарегистрирован: 21.04.2002
Сообщений: 89
Вебсайт

Re: Анализатор вводимых команд

В Inform`е есть "встроенные" постоянные переменные: it, this и др., которые указывают на: текущую локация, на переметры (предметы, фигурирующие в команде) и др. А так же на предметы-персонажи, которые являются "базовыми" в данной локации (например, he и she). Это, IMHO, очень удобно для разработчика, а также для игрока (ведь при вводе "его" и др. в эти переменные и подставляются нужные значения).

Неактивен

0    0    #25
16.07.2002 12:53

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Анализатор вводимых команд

Так... Вопрос: где-нить еще (ленив я, чтоб весь форум перерывать) что-нить на Subj писалось?
Хоть название темы дайте...

Я, криво и плохонько, реализовал часть изложенных здесь идей.
Ну - числительные, прилагательные и местоимения я просто пока не трогал. Будет над чем еще подумать.

Я дошел до того, что фразы "осмотрись", "возьми ключ со стола", "открой дверь ключом", "выйди".. и т. д. - проходят на ура. С любым осмысленным порядком слов.
"Заставлять пользователя <подстраиваться> под возможности программы закономерно считается унизительным"(с)

А вот фраза "стукни ключом в дверь" ;( в алгоритм не укладывается.... или я что-то пропустил?

И мне кажется, что подобная формулировка - не единственная... Не то чтобы меня на данном этапе это сильно тормозило, но сам факт! Обсуждать будем?

Неактивен

0    0    #26
17.07.2002 08:34

Olegus t.Gl.
Участник (+1056, -249)
Откуда: Москва
Зарегистрирован: 01.03.2001
Сообщений: 2881
Вебсайт

Re: Анализатор вводимых команд

По идее, фраза "стукни ключом в дверь" должна проходить по моему алгоритму на ура, если, конечно, в базе данных у глагола "стукнуть" есть основной объект винительного падежа с предлогом "в", а также вспомогательный объект творительного падежа. В этом случае на выходе будет следующая конструкция:

Глагол: Стукнуть
Осн. объект: Дверь
Всп. объект: Ключ

А вот как автор будет обрабатывать эту конструкцию - дело его.

Неактивен

0    0    #27
17.07.2002 09:28

Ar.A.B.
Участник
Откуда: Moscow
Зарегистрирован: 30.05.2002
Сообщений: 49

Все Боги были бессмертны.....

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

если, конечно, в базе данных у глагола "стукнуть" есть основной объект винительного падежа с предлогом "в", а также вспомогательный объект творительного падежа

Я с самого начала танцевал не от действий, а от объектов. Дескать - выделим т.н. главный объект ("открой ключом дверь" - это дверь) и предоставим ему самому разбираться: возможно ли это, что для этого необходимо, а если возможно - то что получится...

Впрочем анализ фразы - отдельная функция. Всегда могу и переписать.  smile добавить базу по глаголам, или вообще, к примеру, применять несколько алгоритмов, с последующим выбором из нескольких решений наиболее вероятного.
Но пока - и то что есть сойдет...

(да... статьи надо читать внимательнее... согласен)

Неактивен

0    0    #28
03.03.2008 13:56

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Анализатор вводимых команд

Olegus t.Gl. написал:

...наткнулся на еще одну проблему - изменение падежей существительного ЧИСЛИТЕЛЬНЫМ (будь оно неладно!). Сейчас штудирую учебник русского языка, чтобы решить эту проблему наименее кровавым образом.

В основном эту проблему преодолел, но есть затрудения с родительным и винительным падежами...
Как более правильно:
"не хватает двух стульей" или "не хватает два стула" ?
"вижу двух солдат" или "вижу два солдата" ?
В каких случаях применять первую форму, а в каких вторую?

Отредактировано ASBer (03.03.2008 14:09)

Неактивен

0    0    #29
03.03.2008 14:00

Hind
Участник
Откуда: Балашиха
Зарегистрирован: 24.10.2007
Сообщений: 135
Вебсайт

Не нервируйте меня! Мне скоро негде будет прятать трупы!

Re: Анализатор вводимых команд

В родительном падеже, как я понимаю, всегда "двух стульев".

В винительном зависит от одушевленности.

Неактивен

0    0    #30
03.03.2008 15:24

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Анализатор вводимых команд

Hind спасибо!
С родительным падежом согласен:
Деньги двух солдат (р.п.) (без вариантов)
Спинки двух стульев (р.п.) (без вариантов)
Затруднения возникли из-за попытки провериться на глаголах:
Не хватает двух стульев. (тут р.п.)
Не хватает два стула. (тут в.п.)
т.е. оба варианта допустимы.

С винительным падежом неодушевленного тоже все прозрачно:
Вижу два стула (без вариантов)

С винительным падежом одушевленного все еще колеблюсь, если исходить из правила, что для одушевленных сущ. винительный падеж всегда совпадат с родительным, то верно "вижу двух солдат".
Но и "вижу два солдата" мне слух почему-то не режет...
Нет ли примера где это явно проявляется?

Неактивен

0    0    #31
07.03.2008 12:50

Owl Wilson
Участник
Откуда: Сургут
Зарегистрирован: 24.07.2007
Сообщений: 31
Вебсайт

Re: Анализатор вводимых команд

ASBer написал:

Затруднения возникли из-за попытки провериться на глаголах:
Не хватает двух стульев. (тут р.п.)
Не хватает два стула. (тут в.п.)
т.е. оба варианта допустимы.

По нормам русского языка второй вариант недопустим и относится к вульгарной разговорной форме (в общем случае, падежи подчиненного существительного и глагола, задающего вопрос существительному {не хватает ЧЕГО?} должны всегда совпадать)

Отредактировано Owl Wilson (07.03.2008 12:51)

Неактивен

0    0    #32
07.03.2008 19:38

ASBer
Модератор (+162, -20)
Откуда: Москва
Зарегистрирован: 19.07.2007
Сообщений: 816
Вебсайт

Эники-Бэники
ели вареники,
а Джоники-Мнемоники
ели психотроники.

Re: Анализатор вводимых команд

Существует масса глаголов, которые сочетаются с существительным как в родительном падеже (вопрос ЧЕГО?), так и в винительном падеже (вопрос ЧТО?).
Пример: "Дать хлеба" (р.п)  "Дать хлеб" (в.п).
Вероятно глагол "не хватает" в примере неудачен.

Отредактировано ASBer (07.03.2008 19:52)

Неактивен

0    0    #33
10.03.2008 12:32

Owl Wilson
Участник
Откуда: Сургут
Зарегистрирован: 24.07.2007
Сообщений: 31
Вебсайт

Re: Анализатор вводимых команд

ASBer написал:

Существует масса глаголов, которые сочетаются с существительным как в родительном падеже (вопрос ЧЕГО?), так и в винительном падеже (вопрос ЧТО?).

Вот в каком падеже они "сочетаются", в таком и должно быть существительное. В примере "дать хлеб" действительно используется винительный, потому и "хлеб".

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru