Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
PYTHON 1-60 шпори.doc
Скачиваний:
27
Добавлен:
23.04.2019
Размер:
176.13 Кб
Скачать

54.Алгоритм роботи «стека вкладених ключів». Навести приклад

Це LIFO стек.(останній прийшов-перший вийшов, елементи якого це словникові статті словника, що формується).Стек змінюється при поступленні кожного нового запису з вхідного файла.На початку роботи стек пустий.При поступленні з вхідного файла кожного з записів з вершини стека видаляються всі елементи , ключі яких не вкладаються зліва в ключ запису, що поступив на вхід.Процес видалення зупиняється, коли стек вичерпаний або на вершині стека знаходиться запис, що вкладається зліва почергово.Далі новий запис розміщується на вершині стека.Тепер розглянемо приклад.Хай буфер містить букви , розміщені в стеку ключів, а власне стек –їх довжини і відповідну граматичну інформацію.Нехай вхідний файл містить записи

паротяг паротяговий

Буфер:________(пустий)

Стек:_________(пустий)

На вході:пар-*

Видаляти зі стека не має що

Додається : пар- (копіюємо в буфер)

Буфер: пар

Стек: вершина :3 (букви в буфер)

На вході: паровоз-*

Вершина вкладається у вхідний запис – не видаляємо

Додається: паровоз-* (копіюємо в буфер)

Буфер: паровоз

Стек: 3(пар), вершина:7(паровоз)

На вході: паровозн-(ий)

Вершина вкладається у вхідний запис- не видаляємо

Додається: паровозн-(копіюємо в буфер)

Буфер: паровозн-

Стек:3(пар),7(паровоз);вершина:8(паровозн)

На вході: пароплав-*

Вершина не вкладається у вхідний запис-видаляємо

Стек:3(пар),7(паровоз)

вершина не вкладається у вхідний запис-видаляємо

Стек:вершина 3(пар)

Вершина вкладається у вхідний запис –не видаляємо

Додається: пароплав-(копіюємо в буфер)

Буфер:пароплав

Стек: 3(пар), вершина :8(пароплав)

На вході літак-*

Вершина не вкладається у вхідний запис-видаляємо

Стек: вершина:3 (пар)

Вершина не вкладається у вхідний запис- видаляємо

Стек-(пустий)Видаляти немає що

Додається: літак-копіюємо в буфер

Буфер:літак

Стек:вершина:5(літак)

55.Алгоритм формування словника основ. Навести приклад

Нам потрібно розмістити прочитані зі входу записи у блоках, продублювавши у кожен з блоків всі записи , ключі яких вкладаються зліва в ключ першого запису блока :лексикографічне впорядкування буде отримано автоматично , оскільки лексикографічно впорядкований вхідний файл.

Вхідний файл читається запис за записом і копіюється зі скороченням за методом Купера у вихідний файл.Разом з цим обновлюється стек вкладених ключів.В кожен з моментів відомо скільки байт уже виведено. Якщо довжина чергового запису призначеного до виводу така, що запис перетне межі блока, то замість його виводу здійснюються наступні кроки:вивід поточного блоку завершується вихідний масив доповнюється нулями до межі блока.Починається вивід нового блока. На вихід копіюється весь вміст стека вкладених ключів, починаючи з самого глибокого, і завершуючи вершиною. Зауважимо, що на вершині стека розміщений, що не помістився в попередній блок.Інші елементи стека—дублюють в даний блок записи, ключі яких вкладаються зліва в ключ першого запису блока. Далі процес читання нових записів продовжується.Розглянемо приклад: нехай вхідний масив складається зі записів з ключами: автомобіль-*, пар-*, паровоз-*, паровозн-(ий), пароплав, літак-*,яхта-(а).Перший блок словника переповнюється при поступленні на вхід пароплав-а. Отже поточний блок виводиться у вхідний блок. А запис з ключем пароплав стає першим записом нового блоку.У вихідний блок виводяться нулі до заповнення необхідного розміру блока. Далі виводиться вміст стека пар-*; пароплав- *.Наступні записи, що підлягають обробці літак-*, яхта-*.

Б1: автомобіль-*|пар-*, паровоз-*, паровозн-(ий) 000

Б2:пар-* |пароплав-*, літак-*, яхта-(а)0000000000000

В блоці Б2 продубльовано слово пар-*. Залишилось розглянути формування індексних масивів. При формуванні чергового блоку необхідно вивести окремий текстовий файл, ключ запису з вершини стека, тобто перший новий запис блока. Після того, як весь масив основ опрацьовано, аналогічно процедурою опрацьовується цей текстовий файл.Але в ньому присутні тільки ключі безт записів.

56.Два типи алгоритмів зняття омонімії:

1.Детерміновані або інакше кажучи алгоритми, що будуються на правилах;

2.Алгоритми, що використовують ймовірнісні методи

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]