ТОМ2 - платформа для парсерных игр

Объявление

Открыт сайт tom2-game.ru.


Последнюю версию платформы можно скачать здесь.

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.



Генератор словоформ от ASBer-а

Сообщений 1 страница 9 из 9

1

Видимо скоро появится генератор для старого ТОМа.

Когда-то я уже начинал делать генератор по аналогии с рТАДСовым, но забросил и не жалею. Копия всегда получается хуже оригинала.

Сейчас функция генерации неожиданно возникла как побочный результат новых разработок. Грех было бы этим не воспользоваться.

Формат генерируемых словоформ отличается от принятых в ТОМе, поэтому одновременно с генератором будет выпущена новая версия ТОМа.

2

выглядит так:

увеличить

3

А этот генератор составляет словоформы автоматически? Если да, то по словарику или используя сложное дерево правил? Может лучше тогда встроить его в сам движок и для большинства слов тогда не пришлось бы описывать все словоформы в проекте игры. Вместо строчки "крюч%; МрЕчНдСи; Ип; Ип=ок; Рп=ка; Дп=ку; Вп=ок; Тп=ком; Пп=ке;" можно было бы просто написать "крючок; МрЕчНдСи; Ип". Все остальные формы генератор достроил бы сам перед запуском. Это бы облегчило написание квестов и чтение исходного кода. А для специфических или придуманных слов составлять как раньше.

4

Alexandr написал(а):

А этот генератор составляет словоформы автоматически?

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

Alexandr написал(а):

Может лучше тогда встроить его в сам движок

В движок нужно встраивать полный словарь языка. Все другие решения для русскоязычного парсера - баловство.

5

ASBer написал(а):

В движок нужно встраивать полный словарь языка. Все другие решения для русскоязычного парсера - баловство.

Ну это вы слишком сильно сказали. Ведь http://samodum.ru/demo.aspx как-то разбирает фразу "глокая куздра штеко будланула бокра и кудрячит бокрёнка" и определяет, что "глокая" - это прилагаетльное женского рода, "будланула" - это глагол и т.д. Таких слов явно нет в словаре. Я понимаю, что это довольно сложно, но это не баловство! Вы, кстати, были на сайте АОТ ? Если поискать, там можно найти словарик, содержащий около 180 000 лемм со всеми словоформами и ещё много чего полезного.
Но это всё отдельная тема и не стоит сильно углубляться в неё, а то можно "утонуть". Пусть пока будет так, как есть, т.к. основная задача платформы ТОМ - разбор предложений ограниченной сложности, а не разбор любых слов русского языка.

6

Alexandr написал(а):

Ведь http://samodum.ru/demo.aspx как-то разбирает фразу "глокая куздра штеко будланула бокра и кудрячит бокрёнка" и определяет, что "глокая" - это прилагаетльное женского рода, "будланула" - это глагол и т.д. Таких слов явно нет в словаре. Я понимаю, что это довольно сложно, но это не баловство!

Для незнакомых или несуществующих слов такие эвристики вполне оправданы.
Словарные же слова гораздо проще найти в словаре.

Alexandr написал(а):

Вы, кстати, были на сайте АОТ ? Если поискать, там можно найти словарик, содержащий около 180 000 лемм со всеми словоформами и ещё много чего полезного.

Был, и детально разбирался с их словарем. К сожалению не подходит. Пока за основу взял словарь Зализняка.

Alexandr написал(а):

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

Да, конечно полностью согласен, установка абсолютно верная.
Пока вожусь с инструментарием для словаря, посмотрим что получится.
Есть желание прикрутить к парсеру словарь на 2000-3000 распространенных слов.
Или хотя-бы 200-300 самых распространенных слов.

7

Выложил альфу.
Правда толку от нее пока нет, т.к. ТОМ пока не понимает этот формат лексем.

8

А можно небольшую инструкцию по использованию? Хотя-бы основные функции элементов программы.
Я на глаз не заметил особых отличий генерируемых лексем от старого формата.

Код:
муха = "мухъ%; ; ;
  ИпЕч=а; РпЕч=и; ДпЕч=е; ВпЕч=у; ТпЕч=ой; ПпЕч=е;
  ИпМч=и; РпМч=; ДпМч=ам; ВпМчОд=; ВпМчНд=и; ТпМч=ами; ПпМч=ах;"

застолье = "застолЬй%; ; ;
  ИпЕч=о; РпЕч=а; ДпЕч=у; ВпЕч=о; ТпЕч=ом; ПпЕч=е;
  ИпМч=а; РпМч=ей; ДпМч=ам; ВпМч=а; ТпМч=ами; ПпМч=ах;"

Ещё меня смущают буквы "ъ", "Ь". Или это и есть нововведения? Если так, то объясните их назначение.

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

9

Alexandr написал(а):

А можно небольшую инструкцию по использованию? Хотя-бы основные функции элементов программы.

Ну там вроде всё интуитивно... раз получился код лексемы, значит вы сделали всё правильно.
А вообще программка задумывалась как иструмент исследования языка. Вводим любое слово и смотрим что получается.

Alexandr написал(а):

Я на глаз не заметил особых отличий генерируемых лексем от старого формата.

Различие в способе объединения основы с окончанием. ТОМ просто подставляет окончания, а тут еще нужна дополнительная обработка стыковки.

Alexandr написал(а):

Ещё меня смущают буквы "ъ", "Ь". Или это и есть нововведения? Если так, то объясните их назначение.

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

Alexandr написал(а):

И ещё маленькая заметка:
в таблице, в поле "Словоформы" не всегда корректно генерируются слова со словом "о". Например "о огне" лучше сделать "об огне".

Предлог "о" применен для наглядности примеров. На генерацию лексем не влияет.
Выбор предлога "о"/"об"/"обо" зависит от следующего слова и здесь такая функциональность явно излишня...