RitmInMe Описание программы Интернет реклама сайтов - Dilibrium / Дилибриум Facebook Twitter Google+ LiveJournal Мой Мир ВКонтакте Одноклассники

Font Size

4. Словники

Словники для даної програми – ще більш необов'язкова до використання звичайним користувачем функція, ніж римовник. Але, раз в ході налаштування програми вдалося привести їх хоч до більш-менш їстівного стану – залишаю їх доступними в надії, що хтось, та буде створювати свої словники або скористається наявними.

 

Доступ можливий з пункту головного меню "Словники" і по кнопці , а словник усіх форм для конкретного слова – з контекстного меню вікна редагування тексту.

Як складався перелік використовуваних словників? Для реалізації основної функції даної програми досить словника всіх словоформ з наголосами. Для римовника – аналогічного словника орфоепічних форм (транскрипції) цих словоформ. Але, оскільки ці словники з точки зору програмування будуються як індексні файли на базі орфографічного словника і довідників парадигм та схем наголосів (а мені хотілося надати користувачеві можливість побудови власних словників), то додалися і ці.

Реалізовані три рівні словників: базові, словники користувача і словники твору. При аналізі словники всіх форм проглядаються в зворотному порядку, в результаті чого слово зі словника твору має пріоритет над словом зі словника користувача, а вони разом – над базовим.

Приклад підключеня існуючого словника твору наведено на сторінці "Енеїди".

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

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

4.1. Робота з орфографічними словниками

4.1.1. Перегляд словників

Далі виклад ведеться на прикладі базових словників для української мови. Так, вікно перегляду для орфографічного словника має 4 основних панелі:

1. інструменти;
2. поточний словник;
3. дерево словників;
4. браузер.

Розмір панелей 2-4 можна змінювати відповідно до своїх потреб за допомогою перетягування меж. Поточний словник можна розгорнути на всю висоту екрана за допомогою кнопки .

Користувач вибирає необхідний йому словник в дереві словників або задає вибірку з контекстного меню. Повернутися в попередній словник (або на головне вікно програми) можна кнопкою , розташованої в лівому верхньому кутку вікна (аналогічна кнопка, розташована над браузером, для браузера і призначена).

Переміщення по тексту словника проводиться вручну або за допомогою пошуку. Віконце пошуку ініціюється безпосередньо або контекстно (набором першого символу в панелі поточного словника). Пошук виконується по ключу поточного словника і результати з'являється у міру набору тексту. Якщо черговий символ неприйнятний для даного словника, то він не заноситься у вікно пошуку і воно жовтіє. Якщо набраний текст не знайдений в словнику, то вікно червоніє.

Орфографічний словник – найскладніший з наявних у базі даних програми. Він є основою для багатьох дій, його записи показуються для ілюстрації роботи інших словників. У найпростішому варіанті при перегляді елемента цього словника ми бачимо таблицю відмінювання, словоформи в якій за допомогою підсвічування розділені на незмінну частину слова (базу) і змінюване закінчення. Окремо підсвічено наголошений символ.

Якщо активувати кнопки розшифровки (обведені червоним), то можна побачити "цеглинки", з яких побудована дана словникова стаття (набір закінчень парадигми і схему наголосів), а також орфоепічні форми слів:

Меню панелі поточного словника і кнопки панелі інструментів частково дублюють один одного. Розглянемо дію кнопок.

Історично на першому місці в панелі знаходиться кнопка – "горщик із золотом", призначена для поповнення словника із зовнішнього джерела (див. п.4.1.3). Втім, користувачеві вона навряд чи потрібна.

Наступні три кнопки служать для налаштування ступеня подробиці розшифровки інформації про парадигму.

Кнопка / – "цеглинки" – служить для відображення макетів використовуваної парадигми і схеми наголосів (у випадку, якщо остання не статична). Якщо ця кнопка зелена, то на екрані під рядком з номером рядка в словнику, інформацією про код парадигми і наголос відображається таблиця з трьох рядків, перша з яких – номери словоформ, друга – їх закінчення, третя – наголоси. В цей час в нижній таблиці вказані номери словоформ.

Примітка. Якщо наголос для всіх словоформ однаково, то рядок наголосів не відображається. Якщо ж і всі закінчення порожні (як у випадку незмінних слів), то "цеглинки" не відображаються.

Кнопка / – "спосіб кладки" – служить для відображення скорочених закінчень або повних слів.

Кнопка / – "звучання" – служить для відображення транскрипції звучання словоформ.

4.1.2. Правка орфографічного словника

Правка орфографічного словника – досить-таки непростий процес, оскільки може зачіпати як власне орфографічний словник, так і довідники парадигм і схем наголосів й потребує часткового переформування словників всіх форм. Крім того, орфографічний словник існує в трьох іпостасях:

    •  базовий словник – поставляється в складі програми;
    •  словник користувача (файл uk20.txt – імена файлів словника користувача з префіксом "uk" для української мови) – повинен поповнюватися користувачем програми загальновживаними словами, що не ввійшли в базовий словник; розташовується в підкаталозі \RitmInMe\ABC;
    •  Словник даного твору (файл <ім'я файлу твору>.orf) – має поповнюватися користувачем словами, що специфічні для даного твору і навряд чи являють цінність поза його контекстом. Може розташовуватися де завгодно, але краще поруч з файлом твору, або в підкаталозі \RitmInMe\ABC.

Поділ орфографічного словника на базовий словник і словник користувача обумовлений громіздкістю базового словника. Крім того, є утопічна ідея, що користувачі зможуть обмінюватися словниками або пересилати автору програми для поповнення базового словника. Словник даного твору призначений для того, щоб не забруднювати словник користувача власним словотворчістю, унікальними іменами або чимось маловживаних. Втім, вести чи ні ці словники – вирішувати користувачеві. Але правити можна тільки словник користувача та словники творів.

Запускається правка орфографічного словника по кнопці або з відповідного пункту контекстного меню.

    •A-D  - див. вище;
    •1  кнопка виходу з режиму редагування без збереження;
    •2  кнопка загального відновлення даних до редагування;
    •3  кнопка вставки результатів редагування в орфографічний словник;
    •4  кнопка видалення рядки з орфографічного словника; при цьому також відбувається видалення посилань на це слово зі словників парадигм та наголосів і видалення належних йому словоформ зі словників всіх форм; в привілейованому режимі можливо (через контекстне меню цієї кнопки) видалення одного з варіантів слова (якщо варіантів декілька); оскільки така дія вимагає переформування словників всіх форм і вкрай малоймовірна, то у фріварному режимі вона недоступна;
    •5  кнопка збереження результатів редагування;
    •6  тип слова; при спробі коригування запускається пункт контекстного меню "Змінити тип парадигми (негайно)" – див.нижче;
    •7  рід слова (має сенс для іменників і займенників);
    •8  № закінчення;
    •9  № варіанти закінчення;
    •10  № наголошеного складу;
    •11  встановити всі наголоси в словоформах (розташованих після поточної і що мають не менше, ніж поточна, складів) рівними заданому в (10);
    •12  змінити базовий наголос слова (див. примітку до п. 2.3.3.3); працює тільки у випадку використання схеми наголосів;
    •13  заборонити поточне закінчення (або скасувати заборону);
    •14  перемикач режиму редагування (наголошені склади / закінчення);
    •15  поле тексту поточної словоформи (дублює одну з словоформ, що показані у вікні браузера); наголошений склад відображається червоним кольором;
    •16  поле редагування варіанти закінчення;
    •17  поле довжини бази слова; це підготовча дія; щоб вона мала ефект, слід скористатися пунктом контекстного меню "Занести нову довжину бази (негайно)" – див.нижче;
    •18  кнопка вибору варіанта закінчення кліком мишки (замість перебору перемикачами (8) і (9));
    •19  рамка поточної словоформи;
    •20  ознака виправлення: наголошений склад, відмінний від початкового – зеленим кольором (якщо словоформа стала ненаголошеною – весь текст зеленим); виправлене закінчення – словоформа підкреслена.

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

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

Крім кнопок, можна користуватися контекстними меню. Вони прив'язані до всіх елементів панелі управління, розташованим після кнопки відключення редагування (). Меню має два різновиди: для поля правки закінчення і інших елементів:

Поле правки закінчення активізується розташованим праворуч від поля тексту поточної словоформи перемикачем. Якщо перемикач неактивний, то у полы тексту можна кліком правити позицію наголосу. Як випливає з підказок у меню, завершити правку закінчення можна по Enter (або просто виходом з поля), відмовитися від коригування – по Esc, скасувати правку без виходу з поля – по Ctrl-Z.

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

    •  видалити поточну словоформу;
    •  видалити всі словоформи до кінця парадигми, починаючи з поточної;
    •  додати підваріант закінчення для поточної словоформи;
    •  помітити поточний підваріант закінчення для поточної словоформи як застарілий або зняти таку позначку.

Співпадаюча частина пунктів цих контекстних меню дозволяє

    •  видалити один з варіантів слова (якщо їх декілька);
    •  змінити тип парадигми, базуючись на їх повному списку; це особливо актуально, якщо незадовільно спрацював механізм пошуку відповідних парадигм за звучанням слова;
    •  встановити нове значення довжини бази слова.

Примітка. Позначка "негайно" в рядку меню означає, що зміни будуть внесені безпосередньо в словник без натискання кнопки "Зберегти". Якщо користувач зробив якісь виправлення в поточному слові, то вони будуть втрачені.

Інші пункти повторюють функції кнопок: "Зберегти" (), "Припинити редагування" () і "Скасування виправлень" (). А пунктом "Налаштування словників" запускається форма налаштувань (див. п.4.5).

Оскільки передбачена ієрархічна система словників "базовий / користувача / твору", то при коригуванні словників парадигм або схем наголосів виникає неоднозначність – куди поміщати результат. Причому ситуація посилюється тим, що результатів може бути до 3-х: парадигма, схема наголосів і власне слово.

Зі словом начебто все просто: результат можна заносити в коректований словник (або в словник, на який посилається коректований). Але тільки як же свобода вибору? Тому користувачеві задається пряме запитання (іноді – в трьох примірниках): що з цим робити?

При коригуванні орфографічного словника запам'ятовується:

    •  нова парадигма в словнику парадигм (при необхідності);
    •  нова схема наголосів у словнику схем наголосів (при необхідності);
    •  нове слово в орфографічному словнику (окремим рядком або варіантом у вже наявному слові);
    •  всі нові словоформи в словнику всіх форм;
    •  всі нові транскрипції в словнику всіх зворотних форм.

З його допомогою можна:

    •  проконтролювати правильність відредагованих словоформ (тут наведено приклад нового слова, а в разі редагування відмінні від старих нові словоформи будуть мати жовтий фон);
    •  проконтролювати або вибрати словник (і найменування для словника твору);
    •  вибрати режим коригування словника – створення нового слова або зміна існуючого; втім, при відсутності останнього у зміні оператора може бути відмовлено і відбудеться створення нового слова;
    •  відмовитися від коригування словника.

Червоними рамочками виділені варіанти закінчень, відмінні від вихідних (вихідні виведені на жовтому фоні).

Природно, програма дозволить змінити що-небудь тільки в тому словнику, де знаходиться початкове. Якщо обрано словник твору, а поле праворуч від нього пусте, то в нього заноситься ім'я словника твору за поточним файлом. Якщо наявне найменування оператора не влаштовує, то можна відредагувати його або створити на базі імені одного з наявних файлів по кнопці... (використовується повний шлях і ім'я файлу, а розширення ігнорується).

Зате на "Відмова" можете натискати, скільки хочете: ви повернетеся до редагування слова і (після правки) можете знову зробити спробу зберегти зміни. Правда, якщо кнопка "Відмова" натиснута при збереженні слова, за результатами коригування якого ми вже погодилися зберегти парадигму та / або схему наголосів, то буде поставлено питання – що з ними робити? Можливі варіанти: таки зберегти або ігнорувати. Перше означає, що коректували саме парадигму та / або схему наголосів, а збереження слова не обов'язково (скоригована парадигма і / або схема наголосів і так на нього вплине). В принципі, в деяких ситуаціях таке рішення програма могла б прийняти і автоматично, але я не став морочитися з кодом. До того ж, не хотілося накладати жорсткі рамки на місце збереження словника.

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

4.1.3. Поповнення орфографічного словника

Найбільш цікавим є поповнення словників по ходу роботи з програмою. Маючи деяку наполегливість (і знання правил словозміни у рамках шкільної програми), користувач може вести свої орфографічні словники. Це важче, але вигода в тому, що за одне поповнення в словник заносяться всі словоформи даного слова. Якщо в налаштуваннях вказано поповнення орфографічного словника, то після того, як користувач вкаже наголос в новому слові, виводяться два запити: на уточнення форми слова і місця наголосу в ньому:

У більшості випадків користувач просто натискає "Підтвердити" і переходить в діалог вибору типу слова. Але має сенс у віконці введення слова відкоригувати його, ввівши основну форму (називний відмінок однини для іменника і т.п.) – вибір типу слова пройде простіше. Оскільки при цьому можуть виникати зміни в позиції наголосу, то і вона має бути підтверджена чи скоригована.

Діалог вибору типу слова працює за рейтингом парадигми-претендента, що визначається за співзвучністю слів, що вже є у словнику й відсутньої там словоформи. Зазвичай парадигма з нульовим рейтингом і є найкращою.

В даному випадку алгоритм відразу запропонував найбільш підходящу парадигму. Як показує досвід імпорту орфографічного словника, для 80% випадків парадигма з нульовим рейтингом є і найбільш підходящою. Ще 15% випадків вирішуються декількома кліками мишки. І в 5% припадає пускати в хід заходи третього ступеня – коригувати позиції наголосів або шукати відповідну парадигму в їх повному списку за допомогою фільтрації, інтуїції і (від крайності) граматики.

У більш складних випадках в першу чергу слід звертати увагу:

    •  для іменників – на відповідність роду слова-зразка та слова-претендента, а також на те, чи означає нове слово істоту (впливає на знахідний відмінок множини);
    •  для прикметників – на короткі форми;
    •  для дієслів – на колонки теперішнього і майбутніх часів, на наказовий спосіб, на дієприслівникові форми і на те, чи не пропонується форма дієслова замість прикметника.

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

Для додавання групи слів використовуємо кнопку – "горщик із золотом". Взагалі-то кажучи, не знаю, чи буде хтось користуватися цією функцією (так само, як і редагуванням словника) крім мене. Як уже зітхалося вище, швидше за все, народ піде шляхом запам'ятовування окремих слів у словнику користувача "Всі форми"... Але формальний опис дам.

Після натискання цієї клавіші показується вікно діалогу, в якому користувач може задати режим заповнення, тип і розташування словника твору.

У даному прикладі вибираємо поповнення орфографічного словника користувача. За цим слідує стандартний діалог відкриття текстового файлу. Якщо цей файл містить орфографічний словник (ознакою чого програма вважає наявність в рядку символу " /" і понад 4-х символів після нього), то поповнення проходить швидко, без зайвих питань і з індикацією прогресу процесу в адресному рядку браузера і завершується відповідною діагностикою.

Якщо ж це довільний текст, у якому немає інформації про місце наголосів та типи парадигм, прийом кожного слова супроводжується запитом про місце наголосу в слові і далі виконується та ж процедура, що й при поповненні словника новим словом з вірша.

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

Про помічені незручності. Форма поповнення словника іноді втрачає управління. Один з варіантів – ви щось робили з її вбудованим браузером. Щоб він віддав фокус, не втративши поточного слова, слід клікнути мишкою по "шапці" списку слів. Якщо не обновився список слів, слід клікнути по поточній позиції дерева типів слів. Від "заклинювання" перемикання родів іменників мені допомагав перехід на гілку іменників вцілому. Втім, остання пара ситуацій відноситься до "глюків" і вкрай рідкісна.

Для зручності роботи під час знаходження у списку натискання на пробіл відповідає занесенню до словника, а клавіша Esc – відмова від слова-кандидата. Робота з ритмічністю від цього не постраждає (наголос проставлено), але в разі, якщо це слово знову трапиться у тексті, вам знову доведеться робити вибір: заносити нове слово у словник, чи відмовитися від цього.

4.2. Словники всіх форм

Словник всіх словоформ складається з рядків виду "слово/коди". Кожен код, в свою чергу, складається з номера наголошеного складу та посилання на орфографічний словник (індексу). Якщо зв'язку з орфографічним словником немає (слово напряму занесено у словник всіх словоформ), то посилання порожнє. Пошук йде по слову, сортування – в алфавітному порядку.

На екрані зліва ми маємо перелік слів з усіма варіантами наголосів і індексами, справа – відповідні їм записи орфографічного словника. Входження поточного слова виділені жовтим.

Словник всіх орфоепічних форм слів має схожий вигляд:

Словник складається з рядків виду "слово/коди". Слово формується на основі орфоепічного вигляду словоформи, має вельми незрозумілий вигляд і, щоб не лякати вас, не висвічується. Код – із посилання на орфографічний словник (індексу) і номера варіанту й підваріанту закінчення в парадигмі. Пошук йде по слову, що робить його застосування практично неможливим для всіх (крім автора), сортування – за словами ж (в алфавітному порядку). Втім, такий пошук і не потрібен – набагато зручніше він реалізований у вигляді римовника.

На екрані зліва ми маємо перелік слів з індексами, справа – відповідні їм записи орфографічного словника. Входження поточного слова виділені жовтим.

4.3. Словники парадигм

Як видно з картинки, по парадигмам зберігається інформація дещо складніше:

Упорядковано словник за кодом парадигми, що складається з двох літер. Код має деяку претензію на мнемонічность, яка реалізується на перших двох сотнях парадигм кожного типу. Решта інформації в лівій частині носить допоміжний характер: індекс в орфографічному словнику і відповідний йому зразок слова, що використовує цю парадигму плюс загальна кількість таких слів. Якщо номер варіанта у слові-зразку більше одиниці, то він виводиться за індексом через двокрапку (але з правого боку такої варіант поміщається на перше місце).

Для правої частині має сенс кнопка, що дозволяє побачити вміст парадигми – набір варіантів і підваріантів закінчень.

Пошук можливий по коду парадигми.

При зберіганні варіантів закінчень парадигми використовується деяке кодування – закінчення для архаїчних і простонародних форм мають на початку символ "?" (і виділяються кольором в області розшифровки)

4.4. Словники схем наголосів

Словник схем наголосів має схожий вигляд:

Упорядковано словник за кодом схеми наголосу, що складається з двох літер. Решта інформації в лівій частині аналогічна з довідником парадигм: індекс в орфографічному словнику і відповідний йому зразок слова, що використовує цю схему наголосів плюс загальна кількість таких слів. Якщо номер варіанта у слові-зразку більше одиниці, то він виводиться за індексом через двокрапку (але з правого боку такої варіант поміщається на перше місце).

Для правої частини по кнопці можна побачити схему наголосів для всіх варіантів і підваріантів закінчень.

Пошук можливий за кодом схеми наголосів.

                                  Завантажити програму  
                                  Короткий опис

Програма "Ритм у мені""

  •  перевірка ритмічності віршів;
  •  визначення віршового розміру;
  •  вбудовані римовники;
  •  розмітка римування;
  •  перевірка правопису;
  •  словники (український, російський);
  •  ведення словників користувача;
  •  сервіс для роботи з віршами з
      інтернету.