Forum.iFiction.Ru

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

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

Вы не зашли.

0    0    #1
21.11.2008 14:24

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

меньше слов

Определение использованных лексем глаголов и служебных слов

В системе есть полезная функция objwords, позволяющая узнать какой именно лексемой был запрошен объект, что используется в функции "спросить об" и ещё одной фиче.
Вопрос знатокам - есть ли оптимальный способ узнать, какие были лексемы у глаголов и предлогов?
Например, было ли написано "спросить об" или "распросить про", что существенно для согласования ("про штуку" - "о штуке").

Неактивен

0    0    #2
21.11.2008 18:14

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

меньше слов

Re: Определение использованных лексем глаголов и служебных слов

Решил проблему следующей функцией:

Код:

// пытается опознать предложный или винительный падеж  
// указанного слова и возвращает либо "о(б)" - предложный, 
// либо "про" - винительный
// только существительные
opro: function(word)
{
    local ret, ob=0;
    
    // признаки предложного падежа
    ret := reSearch('(е|ах|ях)$',word);
    
    if (ret!=nil) 
    {
        ret := reSearch('^[аеёиоуэюя]',word); // первая буква - гласная
        if (ret!=nil) return 'об'; else  
        {
            if (word='мне') return 'обо';
            return 'о';
        }
    }
    
    // признаки винительного
    ret := reSearch('(я|а|у)$',word);
    if (ret!=nil) return 'про';
    
    // если окончание -и, например "молнии", - то будем считать, что число мн-ое
    // для несклоняемых и прочего - "про"
    return 'про';
}

Результат:
>спросить шушпанчика про двери
- Что скажешь, таинственный Шушпанчик, про двери?

>спросить шушпанчика обо мне
- Что скажешь, таинственный Шушпанчик, обо мне?

Неактивен

Powered by PunBB
© copyright 2001–2024 iFiction.Ru