ту слова, що містить одні цифри.
. Якщо число закінчується на одиницю, і при цьому передостання цифра - Не 1, форма для головного слова і для залежних слів - називний відмінок, однина.
. Якщо число закінчується на 2, 3 або 4 і передостання цифра - не одиниці, форма для головного слова - родовий відмінок, однина, а для залежних слів - родовий відмінок, множина.
. В іншому випадку форма і для головного слова, і для залежних - родовий відмінок, множина.
. Далі відбувається схиляння слів у зазначені форми.
. Після цього виходить текстове представлення відповіді машини.
. Це текстове представлення порівнюється з текстовим поданням відповіді студента.
4.4 Алгоритм перевірки вправ типу «Відповісти по моделі»
У вправах цього типу викладач вводить модель, яка аналізується системою. Модель, фактично, показує, як перетворити питання у відповідь. Ми виділяємо наступні види перетворень:
. Схиляння слів в дужках.
. Видалення слів.
. Вставка нових слів.
. Заміна слів.
. Перешикування дерева.
Сенс цих перетворень був розказаний у пункті 2.2. Тут ми докладніше зупинимося на алгоритмах даних перетворень. Дані алгоритми повинні послідовно застосовуватися до вихідного пропозицією. В результаті їх роботи повинен виходити вірну відповідь.
. 4.1 Виявлення перетворень
Для виявлення необхідних перетворень використовуються два синтаксичних дерева: дерево моделі питання (ДМВ) і дерево моделі відповіді (ДМО). В результаті роботи кожного з наведених нижче алгоритмів виходить список перетворень даного типу. Після створення списку перетворень чергового типу, відбувається перетворення ДМВ відповідно з виявленим списком.
Схиляння слів в дужках
Для того щоб провідмінювати слова в дужках, потрібно спочатку визначити форму, в яку їх потрібно ставити. Так як ми працюємо над іменною частиною російської мови, формою цієї буде число і відмінок. Для визначення потрібної форми спочатку виділяється головне слово в дужках (це слово, яке не має батька). Якщо таких слів декілька, то береться перше з них. Далі в ДМО шукається слово з такою ж нормальною формою, як у головного слова з дужок. При знаходженні такого слова створити правило відмінювання слів в дужках, в якому буде міститися відмінок і число цього слова. Також, після цього потрібно провідмінювати слова в дужках у запомненную форму. Приклад:
Ви дивитеся фільм? (програма «Новини»)
Ні, я дивлюся програму «Новини».
Головним словом у дужках є слово «програма». У ДМО воно коштує в знахідному відмінку однини. Отже, слова з дужок потрібно ставити в цю форму. Після роботи алгоритму вихідне речення буде виглядати так:
Ви дивитеся фільм? (програму «Новини»)
А в списку правил перетворення буде одне правило, що наказує схиляти слова з дужок у форму однини знахідного відмінка.
Видалення
Для того щоб визначити, слова з якими синтаксичними функціями потрібно видалити з пропозиції, потрібно порівняти кожну гілку ДМВ з кожною гілкою ДМО. При відсутності будь-якої гілки формується правило видалення цієї гілки. У правилі міститься лише синтаксична функція видаляється слова. При цьому слід враховувати, що при відповіді на питання змінюється форма займенників. Також видаляються всі розділові знаки, відсутні в ДМО.
Проілюструємо це на прикладі:
Ви дивитеся фільм? (програму «Новини»)
Ні, я дивлюся програму «Новини».
Модель питання складається з двох пропозицій, відповідно в ній два кореня. Перевіряємо наявність першого кореня («дивитися») в ДМО. Потім перевіряємо наявність слова «ви» в ДМО. Його там немає, але є заміна для нього - слово «я». Значить слово «ви» не повинно видалятися. Тепер перевіряємо наявність слова «фільм». Виявляється, що його немає в ДМО, тому формується правило, що з питання потрібне видаляти пряме доповнення (яким і є слово «фільм»). Вся гілка, що починається зі слова «програма» присутній в ДМО. Крім прямого доповнення потрібно видаляти ще знак питання і дужки, які також відсутні в ДМО.
У результаті виходить наступне:
Ви дивіться програму «Новини»
Вставка нових слів
Ця операція аналогічна видаленню, тільки тут алгоритмом належить додавати в ДМВ слова з ДМО, які поки відсутні в ДМВ. Покаж...