Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
30.10.2002 22:28

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Идеальный русский парсер.

Вот нашёл алгоритм тщательного анализа русских предложений. Сейчас веду "переговоры", могут дать кусок системы.
http://axofiber.org.ru:8100/rm/volkova-dissertation.pdf

Неактивен

0    0    #2
11.11.2002 02:55

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Идеальный русский парсер.

Ну, как там переговоры?
Мне очень интересно, что из себя представляет этот модуль, и можно ли из него сделать универсальный русский парсер (типа Rparser.dll smile, так как я сам щас занимаюсь проблемой рус. парсера.

Неактивен

0    0    #3
11.11.2002 12:56

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Обещали после праздников прислать вместе с базами существительных и прилагательных. Ещё жду. Модуль написан на MSVC и можно к чему хочешь прилепить. Я платформы не пишу и хочу только использовать его для генерации форм названий объекта, но настоящая русская платформа должна иметь его внутри. Так что если ты это сделаешь - честь тебе и хвала. Дам тебе как только получу.

Неактивен

0    0    #4
10.12.2002 03:38

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Идеальный русский парсер.

MSVC - это удобно!
базы сущ и прил - тоже удобно!

Я-то прогаю платформу, и тестирую фичи на маленьком кусочке Adventure, написанном мною-же на моей-же платформе. Самый геморрой- существительные и прилагательные в словарь вводить со всеми их формами -
нужен генератор

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

Неактивен

0    0    #5
10.12.2002 09:38

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Я по прежнему жду, у человека диплом, и он видимо занят - времени обкоцывать свою версию нет. Пока можно посмотреть следующую вещь - http://www.multitran.ru/cgi-bin/Mtsrv.e … ge=Russian
Тоже MSVC, компилил, всё замечательно, но весит 3 Мб и прийдётся самому ковыряться, потому как это АНАЛИЗАТОР, но, с возможностью генерации.
Ещё посмотри мой генераторhttp://rtads.narod.ru/generator.zip. Написан в Билдере,
небольшой, порой не точен, но для ввода - самое то.

Неактивен

0    0    #6
11.12.2002 02:32

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Идеальный русский парсер.

Н-да... Мне бы исходничек твоего генератора smile
Я бы тогда бы...

А ихний dll без документации какой-то бесполезно-непонятный...

Неактивен

0    0    #7
11.12.2002 16:00

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Если тебя устраивает Билдер, то пошлю. Только не забудь
жирными буквами указать, что это мой алгоритм   wink
Но его и самому нетрудно сделать. Нужно менять окончание в зависимости от заданных условий.

Неактивен

0    0    #8
12.12.2002 01:49

FighteR
Участник
Откуда: Долгопрудный
Зарегистрирован: 12.12.2002
Сообщений: 33

Re: Идеальный русский парсер.

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

Неактивен

0    0    #9
28.01.2003 00:29

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

Re: Идеальный русский парсер.

Наконец-то я дописал "Парсер фраз"! Анализирует введённую фразу методом шаблонов (как в Inform), смотрите: http://toysoft.narod.ru/phpars_0.1ap2.zip

Неактивен

0    0    #10
29.01.2003 09:54

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Архив битый sad

Неактивен

0    0    #11
30.01.2003 01:01

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

Re: Идеальный русский парсер.

Могу почтой.

Неактивен

0    0    #12
31.01.2003 00:10

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

Re: Идеальный русский парсер.

GrAndrey написал:

Архив битый sad

Попробуй эту ссылку: http://toysoft.narod.ru/phpars_0.1ap2.rar

Неактивен

0    0    #13
06.02.2003 12:29

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Не смог себя сдержать, похвастаюсь.
Парсер РТАДС теперь может понимать предложения вида "стукнуть Васю кирпичиком", тогда как ранее мог понять лишь "стукнуть Васю с помощью кирпичика". Это же касается слов "им","этим","ею". Поэтому, как мне кажется, РТАДС сейчас имеет единственный парсер который может понять фразу "поднять меч и зарубить им гоблина".
Механизм этот не так сложен, как описанный в статье Olegus'а. Просто ввод игроком комбинации глагола, требующего вспомогательный объект, со словом в творительном падеже вызывает замену этого слова на "с помощью <слово>" на этапе разбора до семантического. Аналогично слово в предложном может заменяться на "to <слово в именительном>".
Например: дать козлу капусту -> дать капусту to козёл
Таким образом, вместо оригинального и мудрёного табличного подхода Olegus'а можно использовать классические схемы английского парсинга, заменяя русские падежные формы на соответствующие английские грамматические конструкции. Впрочем, часть Olegusова подхода остаётся, так как придётся рассматривать табличку или флаги глагола.
Но в любом случае проблемы остаются: как анализировать "дать кость колли"? Что кому даём? У колли только один падеж, и это не единственное такое слово. Для примера "любым" - это "to any" или "with any"?

Неактивен

0    0    #14
22.02.2003 09:45

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

Re: Идеальный русский парсер.

Как мне кажется, не совсем правильно решать проблему парсера путём попыток вогнать русский язык в правила английского. В нашем языке также существует определённая система, которую и нужно уловить и использовать.

Неактивен

0    0    #15
25.02.2003 18:58

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

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

Как мне кажется, не совсем правильно решать проблему парсера путём попыток вогнать русский язык в правила английского.

А правильно ли снова и снова писать парсеры и платформы, когда можно перевести существующие?

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

В нашем языке также существует определённая система, которую и нужно уловить и использовать.

А может лучше уловить глобальные языковые законы, применимые к любому языку?

Неактивен

0    0    #16
26.02.2003 01:00

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

Re: Идеальный русский парсер.

Платформы и парсеры будут писаться до тех пор, пока не станут удовлетворять потребности определённых групп людей или конкретных личностей. И это правильно, поскольку иногда только создавая что-то новое, избавляешься от старого (ошибок, недочётов, непоняток, ограничений и т.п.).

А что до глобальных языковых законов, то это похоже на создание велосипеда, пригодного для использования и двуногими, и шестиногими людьми. То бишь занятно, но толку, а также простора для дальнейшего развития маловато.

Неактивен

0    0    #17
31.03.2003 23:55

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

Re: Идеальный русский парсер.

Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?

Неактивен

0    0    #18
01.04.2003 09:06

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

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

Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?

Грешно глумиться над больными людми... (просто в тему, не обижайтесь)
"со сметаной" - это уже сложное семантическое отношение, и парсер должен будет исследовать, находится ли сметана в том гошке, если не определить это сочетание как обычное прилагательное, которое должно пропасть, если сметану съесть. В игровом процессе это ИЗБЫТОЧНАЯ информация. Чего всех тянет создавать интеллектуальные системы? Если есть желание -обращайтесь к профессорам, которые уже кучу времени на это угробили.

Неактивен

0    0    #19
01.04.2003 11:05

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

Re: Идеальный русский парсер.

Я бы не считал такую информацию избыточной. Словосочетания типа "горшок со сметаной", "наконечник стрелы", "осколок стекла" и т.п. вполне могут встретиться в тексте игры. А коль так, то и игроком они могуть быть использованы.
Я как раз работаю над этой проблемой, и она оказывается не такой сложной, как поначалу казалось.

Неактивен

0    0    #20
01.04.2003 11:53

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

"Осколок стекла", "наконечник стрелы" - это просто. "стекла" и "стрелы" задаём как прилагательные и всё замечательно, так как осколок он всегда остаётся осколком стекла, а наконечник - наконечником стрелы. А насчёт "со сметаной", то это тоже решаемо, но это будет не общее, а лишь частное решение(в ТАДС, по крайней мере).
Интересно узнать, как ты преодолеваешь эту проблему.

Неактивен

0    0    #21
01.04.2003 14:28

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

Re: Идеальный русский парсер.

Как это "стекла" и "стрелы" задаём как прилагательные?
А как тогда обрабатывать эти слова отдельно от слова "наконечник"? Например "возьми стрелы"?..

Неактивен

0    0    #22
01.04.2003 18:49

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Провёл эксперимент. Парсер игнорирует прилагательное и выполняет действие над объектом с таким существительным. Если вынести второй объект из комнаты, то действие будет относится к первому.
>Взять стрелы
Взял стрелы.
>Сломать стрелы
Сломал стрелы.
>Взять стрелы
Взял наконечник стрелы.

Неактивен

0    0    #23
01.04.2003 23:45

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

Re: Идеальный русский парсер.

    Как-то странно это выглядит. По-моему, гораздо логичней было бы в результате разбора помечать одно существительное как дополнение ко второму.
     То есть, фраза "Возьми наконечник стрелы" превращается в "Возьми наконечник", где у слова "наконечник" будет дополнение "стрелы".
     Конечно, для этого придётся корпеть над исходным словарём, но результат получается интересный.

Неактивен

0    0    #24
03.04.2003 20:48

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

Re: Идеальный русский парсер.

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

Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?

Есди брать классический метод Inform (в применении к "Парсеру фраз", что я написал), выходит такой шаблон для фразы:
"на" ВП РП ВП "со" ТП

Неактивен

0    0    #25
04.04.2003 11:40

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Шаблон это замечательно, но как он связывается с объектной моделью?

Неактивен

0    0    #26
06.04.2003 02:07

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

Re: Идеальный русский парсер.

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

Неактивен

0    0    #27
06.04.2003 11:17

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

Re: Идеальный русский парсер.

Тогда, как я понял, автору игры нужно будет для команды "Надень на голову тролля горшок со сметаной" (точнее для глагола "надень") задать несколько шаблонов для корректного распознавания фраз:
"Надень на голову тролля горшок со сметаной"
"Надень горшок со сметаной на голову тролля"
"Надень горшок со сметаной на тролля"
"Надень горшок на голову тролля"
"Надень горшок на тролля"
и т.д.

Во что тогда превратится сам процесс разработки игры?..

Неактивен

0    0    #28
07.04.2003 21:33

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

Re: Идеальный русский парсер.

Примерно так. А куда денешься? Хотя, ты подал очень интересную идею этим примером. Если действительно конструкции вроде "голова тролля" и "горшок со сметаной" рассматривать как единой целое, то фраза вообще упрощается. Надо подумать... Просто шаблоны - это метод Inform, я взял его за основу.

Неактивен

0    0    #29
22.04.2003 12:28

GrAndrey
папа RTADS и Бяка (+49, -2)
Откуда: Москва
Зарегистрирован: 15.09.2002
Сообщений: 1198
Вебсайт

меньше слов

Re: Идеальный русский парсер.

Ой, прошу прощения. Ошибочка вышла. RTADS не понимал "прилагательные" идущие после определяемого слова. Для этого необходимо наличие связующего предлога "of". Например, "sheet of paper", что по-русски "лист бумаги". Таким образом, как и в случае творительного и дательного падежа, родительный падеж эквивалентен комбинации предлога и слова. Теперь это введено, а также я нашёл путь распозновать предложения типа:
"взять кольцо из золота", "подарить средство от блох, "кинуть разделочный нож для рыбы в ящик". Как и в предыдущих случаях, для поддержки этого автору необходимо ввести слова "золота","блох","рыбы" в список прилагательных и их копию с пометкой на конце ("золота#r","блох#r","рыбы#r"), что скоро можно будет сделать моим "генератором".
Теперь всё поддерживается, даже "бросить горшок со сметаной в голову тролля"
(надеть горшок со сметаной на голову тролля - реально, но муторно для реализации, так как придётся менять глагол "одеть", который пока не знает, как одевать других,
а отдельную часть тела - тем более).

Всё это теперь есть в новой версии библиотек RTADS.

Неактивен

0    0    #30
21.03.2004 14:07

Ермолаев Дмитрий
Гость

Re: Идеальный русский парсер.

у меня есть анализатор русского текста. .www
У АОТ есть еще лучше анализатор. .www
А кто какие еще знает парсеры ЕЯ текстов?

0    0    #31
23.03.2004 02:41

Gray_Flannel_Armor
Участник
Зарегистрирован: 26.01.2004
Сообщений: 45

Кто хочет найти зло - найдет его. Авраам Линкольн.

Re: Идеальный русский парсер.

>troll:create ("troll_head", "troll head")
>player:create ("pot", "pot with_smetana")


>parse "Надень на голову тролля горшок со сметаной"

Пре-парсинг:
with_smetana = со сметаной

wear = надень, надеть, одеть
on = на
head = голов*
troll = трол*
pot = горшок

wear on head troll pot with_smetana
verb = wear
prep1 = on

obj1 = head troll pot with_smetana
prep2 = with
obj2 = nil

head troll pot with_smetana не найден
head troll pot - не найден, with_smetana - найден pot with smetana
head troll найден, pot with_smetana - найден
Ok, let's see

verb = wear
prep1 = on
obj1 = head troll   -> troll_head
obj2 = pot with_smetana -> pot

troll_head:wear {preps = {"on"}, obj = pot, names = "pot with_smetana"}

Неактивен

0    0    #32
25.04.2005 09:21

Дима
Гость

Re: Идеальный русский парсер.

"Надень на голову тролля горшок со сметаной"
"Надень горшок со сметаной на голову тролля"
"Надень горшок со сметаной на тролля"
"Надень горшок на голову тролля"
"Надень горшок на тролля"

Всё это разбирает мой парсер. На выходе структура семантическая, по которой легко распознать компу что к чему происходит. Тут уже для движка, который генерирует действия идёт работа - если в действиях есть "голова" некоего объекта, то делаем действие "на голову", если нет то надеваем на сам объект. видимо горшок не налезет на самого тролля smile

Powered by PunBB
© copyright 2001–2024 iFiction.Ru