Вот нашёл алгоритм тщательного анализа русских предложений. Сейчас веду "переговоры", могут дать кусок системы.
http://axofiber.org.ru:8100/rm/volkova-dissertation.pdf
Неактивен
Ну, как там переговоры?
Мне очень интересно, что из себя представляет этот модуль, и можно ли из него сделать универсальный русский парсер (типа Rparser.dll , так как я сам щас занимаюсь проблемой рус. парсера.
Неактивен
Обещали после праздников прислать вместе с базами существительных и прилагательных. Ещё жду. Модуль написан на MSVC и можно к чему хочешь прилепить. Я платформы не пишу и хочу только использовать его для генерации форм названий объекта, но настоящая русская платформа должна иметь его внутри. Так что если ты это сделаешь - честь тебе и хвала. Дам тебе как только получу.
Неактивен
MSVC - это удобно!
базы сущ и прил - тоже удобно!
Я-то прогаю платформу, и тестирую фичи на маленьком кусочке Adventure, написанном мною-же на моей-же платформе. Самый геморрой- существительные и прилагательные в словарь вводить со всеми их формами -
нужен генератор
Я-то собирался сам все постепенно делать, но если есть надежда, что кто-то уже сделал кусок работы, то почему бы не воспользоваться?
Неактивен
Я по прежнему жду, у человека диплом, и он видимо занят - времени обкоцывать свою версию нет. Пока можно посмотреть следующую вещь - http://www.multitran.ru/cgi-bin/Mtsrv.e … ge=Russian
Тоже MSVC, компилил, всё замечательно, но весит 3 Мб и прийдётся самому ковыряться, потому как это АНАЛИЗАТОР, но, с возможностью генерации.
Ещё посмотри мой генераторhttp://rtads.narod.ru/generator.zip. Написан в Билдере,
небольшой, порой не точен, но для ввода - самое то.
Неактивен
Если тебя устраивает Билдер, то пошлю. Только не забудь
жирными буквами указать, что это мой алгоритм
Но его и самому нетрудно сделать. Нужно менять окончание в зависимости от заданных условий.
Неактивен
Я с билдером плохо знаком, но раз это Си-билдер, то там же алгоритм на Си должен быть написан? в общем, разберусь. А Алгоритм твой я скорее всего изменю (ряд недостатков уже заметил), но в любом случае в кредитсах будет ссылка на тебя, мол, спасибо такому-то за алгоритм того-то. устраивает?
Неактивен
Наконец-то я дописал "Парсер фраз"! Анализирует введённую фразу методом шаблонов (как в Inform), смотрите: http://toysoft.narod.ru/phpars_0.1ap2.zip
Неактивен
GrAndrey написал:
Архив битый
Попробуй эту ссылку: http://toysoft.narod.ru/phpars_0.1ap2.rar
Неактивен
Не смог себя сдержать, похвастаюсь.
Парсер РТАДС теперь может понимать предложения вида "стукнуть Васю кирпичиком", тогда как ранее мог понять лишь "стукнуть Васю с помощью кирпичика". Это же касается слов "им","этим","ею". Поэтому, как мне кажется, РТАДС сейчас имеет единственный парсер который может понять фразу "поднять меч и зарубить им гоблина".
Механизм этот не так сложен, как описанный в статье Olegus'а. Просто ввод игроком комбинации глагола, требующего вспомогательный объект, со словом в творительном падеже вызывает замену этого слова на "с помощью <слово>" на этапе разбора до семантического. Аналогично слово в предложном может заменяться на "to <слово в именительном>".
Например: дать козлу капусту -> дать капусту to козёл
Таким образом, вместо оригинального и мудрёного табличного подхода Olegus'а можно использовать классические схемы английского парсинга, заменяя русские падежные формы на соответствующие английские грамматические конструкции. Впрочем, часть Olegusова подхода остаётся, так как придётся рассматривать табличку или флаги глагола.
Но в любом случае проблемы остаются: как анализировать "дать кость колли"? Что кому даём? У колли только один падеж, и это не единственное такое слово. Для примера "любым" - это "to any" или "with any"?
Неактивен
Как мне кажется, не совсем правильно решать проблему парсера путём попыток вогнать русский язык в правила английского. В нашем языке также существует определённая система, которую и нужно уловить и использовать.
Неактивен
Olegus t.Gl. написал:
Как мне кажется, не совсем правильно решать проблему парсера путём попыток вогнать русский язык в правила английского.
А правильно ли снова и снова писать парсеры и платформы, когда можно перевести существующие?
Olegus t.Gl. написал:
В нашем языке также существует определённая система, которую и нужно уловить и использовать.
А может лучше уловить глобальные языковые законы, применимые к любому языку?
Неактивен
Платформы и парсеры будут писаться до тех пор, пока не станут удовлетворять потребности определённых групп людей или конкретных личностей. И это правильно, поскольку иногда только создавая что-то новое, избавляешься от старого (ошибок, недочётов, непоняток, ограничений и т.п.).
А что до глобальных языковых законов, то это похоже на создание велосипеда, пригодного для использования и двуногими, и шестиногими людьми. То бишь занятно, но толку, а также простора для дальнейшего развития маловато.
Неактивен
Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?
Неактивен
Olegus t.Gl. написал:
Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?
Грешно глумиться над больными людми... (просто в тему, не обижайтесь)
"со сметаной" - это уже сложное семантическое отношение, и парсер должен будет исследовать, находится ли сметана в том гошке, если не определить это сочетание как обычное прилагательное, которое должно пропасть, если сметану съесть. В игровом процессе это ИЗБЫТОЧНАЯ информация. Чего всех тянет создавать интеллектуальные системы? Если есть желание -обращайтесь к профессорам, которые уже кучу времени на это угробили.
Неактивен
Я бы не считал такую информацию избыточной. Словосочетания типа "горшок со сметаной", "наконечник стрелы", "осколок стекла" и т.п. вполне могут встретиться в тексте игры. А коль так, то и игроком они могуть быть использованы.
Я как раз работаю над этой проблемой, и она оказывается не такой сложной, как поначалу казалось.
Неактивен
"Осколок стекла", "наконечник стрелы" - это просто. "стекла" и "стрелы" задаём как прилагательные и всё замечательно, так как осколок он всегда остаётся осколком стекла, а наконечник - наконечником стрелы. А насчёт "со сметаной", то это тоже решаемо, но это будет не общее, а лишь частное решение(в ТАДС, по крайней мере).
Интересно узнать, как ты преодолеваешь эту проблему.
Неактивен
Как это "стекла" и "стрелы" задаём как прилагательные?
А как тогда обрабатывать эти слова отдельно от слова "наконечник"? Например "возьми стрелы"?..
Неактивен
Провёл эксперимент. Парсер игнорирует прилагательное и выполняет действие над объектом с таким существительным. Если вынести второй объект из комнаты, то действие будет относится к первому.
>Взять стрелы
Взял стрелы.
>Сломать стрелы
Сломал стрелы.
>Взять стрелы
Взял наконечник стрелы.
Неактивен
Как-то странно это выглядит. По-моему, гораздо логичней было бы в результате разбора помечать одно существительное как дополнение ко второму.
То есть, фраза "Возьми наконечник стрелы" превращается в "Возьми наконечник", где у слова "наконечник" будет дополнение "стрелы".
Конечно, для этого придётся корпеть над исходным словарём, но результат получается интересный.
Неактивен
Olegus t.Gl. написал:
Хочу предложить одну фразу людям, пишущим парсеры: "Надень на голову тролля горшок со сметаной".
Как вам такое?
Есди брать классический метод Inform (в применении к "Парсеру фраз", что я написал), выходит такой шаблон для фразы:
"на" ВП РП ВП "со" ТП
Неактивен