Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
16.07.2008 11:12

fireton
некто с бородой (+354, -92)
Откуда: Москва
Зарегистрирован: 22.08.2005
Сообщений: 1103
Вебсайт

Тон

Правила в generator.t

Предлагаю в этой ветке публиковать найденые дырки в генераторе и дополнения правил, их исправляющие.

Вот первое. Неправильная форма винительного падежа для слова "фонарь". Исправил, добавив в vrules следующие строки:

Код:

        ['1M'  'рь' 'рь'] // фонарь 
        ['1MI' 'рь' 'ря'] // звонарь

Неактивен

0    0    #2
16.07.2008 13:08

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

меньше слов

Re: Правила в generator.t

Моя версия:

Код:

vrules =
[
  ...
  ['1MI' 'ь' 'я']
]

commonrules5 =
// на -ь
[...
[''    'ь'   'я'   'ю'   'ь'   'ем'   'е']

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

Неактивен

0    0    #3
17.07.2008 08:02

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

меньше слов

Re: Правила в generator.t

Сделал и для того, и для другого.

Неактивен

0    0    #4
19.07.2008 20:00

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

меньше слов

Re: Правила в generator.t

Поискал методы обкатки генератора и обнаружил отличные вещи: реверсивный словарь существительных (сортировка по окончаниям) и программа "Словоискатель".
При внесении новых правил нужно только проверить какие существуют слова с таким окончанием, и натравить на них генератор.

Попутно выяснил, что в ТАДС есть лимит лексем - около 30 тысяч (вероятно, значение имеет не количество, а лимит памяти). Учитывая, что у нас на каждое слово по 8 (в среднем) лексем, в нашем распоряжении не более 3,5 тысяч слов, на которые будет откликаться система...

Неактивен

0    0    #5
21.07.2008 17:12

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

меньше слов

Re: Правила в generator.t

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

Неактивен

0    0    #6
26.07.2008 15:26

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

меньше слов

Re: Правила в generator.t

Перепроверил лимит на лексемы - ошибка на генерации 2477 слова, если для каждого слова создавать отдельный объект (оставлять в одном - переполняется стек). При общем лимите в 30 тысяч выходит по 12 лексем на слово, из них 1 - изначальное, 6 падежей, 2 с метками. Ещё два на второй творительный только у части слов. Куда девается остальное - не понял. Удаляю изначальные лексемы - точно тот же результат (изначальные лексемы не учитываются, но все равно храняться в памяти?)

Ошибка выглядит так:
fatal: too many vocabulary word relations (internal limit)

Количество можно увеличить, вынеся директивы генератору из noun в другое свойство, а также отдельно записывая лексемы творительного и дательного падежа. Так можно получить 4 с лишним тысячи. Кстати, 2500 тоже не мало, генерируется полминуты.


Вот ещё идея:
если в лексеме прописано несколько слов, помеченных для генерации и разделенных пробелами, то разбить их в отдельные лексемы.
Например:
noun = 'водка/ вино/ карты/2 женщины/2'

Так переключать раскладку придется только один раз - в начале строки, написав noun = ''

Неактивен

0    0    #7
05.08.2008 09:35

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

меньше слов

Re: Правила в generator.t

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

P.S. Исследовал с помощью "Словоискателя v1.0"

commonrules5 =
// на -ь
[['F'    'ь'   'и'   'и'   'ь'   'ью'   'и']

// -ень,-оть щебень, стержень, ломоть, лапоть, коготь; всего более 30-ти
// но!!! -олень, тюлень, окунь, пельмень, бюллетень, ясень, ячмень (это почти все)
['M'    'ень'   'ня'   'ню'   'ень'   'нем'   'не']
['M'    'оть'   'тя'   'тю'   'оть'   'тем'   'те']
['M'    'огонь'   'огня'   'огню'   'огонь'   'огнём'   'огне']   

[''    'ь'   'я'   'ю'   'ь'   'ем'   'е']

Неактивен

0    0    #8
12.08.2008 10:21

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

меньше слов

Re: Правила в generator.t

Насчет памяти - проверю.

Ввел правило для творительного падежа существительных на -ец. Под ударением -цом, без -цем.
Например: торгОвец -> торгОвцем, резЕц -> резцОм.

Код:

trules=
[
...
   ['U' '(8[бвгджзйкмнпрстфхцчшщ])ец' '$1цом'] //леденЕц
]

commonrules6 =
[
...
  [''    '(8[бвгджзйкмнпрстфхцчшщ])ец' '$1ца' '$1цу' '$1ец' '$1цем' '$1це'] // мздОимец
]

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

Неактивен

0    0    #9
12.08.2008 10:36

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

меньше слов

Re: Правила в generator.t

может, быть в правила ещё один элемент включить? Строку с замечанием. Например:
[''    '(8[бвгджзйкмнпрстфхцчшщ])ец' '$1ца' '$1цу' '$1ец' '$1цем' '$1це' 'Правило для этого слова зависит от ударения!'] // мздОимец

Эта строка будет выводиться вместе с результатом генерации и вопросов в корректности работы генератора не возникнет

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru