АЛГОРИТМИ И ПРОГРАМИ В ТЕКСТООБРАБОТКАТА
(дипломна работа, София, ФМИ, 1995 г.)
„Аз Озимандий съм и цар съм над царете! Делата мои всички със завист погледнете!“. |
1. Увод
Тук са разгледани някои проблеми и аспекти на алгоритмите и програмите при текстообработка. Доколко са актуални тези проблеми може да се съди по факта, че през последните години познаването и използването на програми за набиране и оформяне на текстове се превърна едва ли не в синоним на компютърната грамотност.
Навсякъде с цел улеснение при четенето, са използвани следните шрифтове за графични означения:
текст | курсив за известни термини (правила, означения, дефиниции и др.), които не стоят в основата на изложението; |
текст | курсив-получер за известни термини (правила, означения, дефиниции и др.), които са твърде съществени за развитието на изложението; |
текст | получер за нови термини (правила, означения, дефиниции и др.), въведени и/или развити за първи път тук (бел. а. – 1994 г.); |
текст | програмна част, множества, флагове, функции, примери. |
(Пример. За улеснение току-що бяха въведени четири различни шрифта за графични означения).
Тъй като понятието текстообработка е твърде обширно (от всякаква гледна точка), за да се внесе по-голяма яснота върху това какво тук ще се разбира под текстообработка и за да се локализира полето на изследване, се предлага следната схема, която показва основните рутинни дейности при извършване на предпечатна подготовка (фиг. 1).
Както се вижда от фигурата, процесът на предпечатната подготовка може условно да се раздели на три етапа: първи етап – набор на текст (текстове); втори етап – текстообработка; трети етап – графичен дизайн. Тук няма да се интересуваме толкова от процесите на първоначалното набиране на текстове, както и от странирането на обработени текстове и свързването им в графичен макет. Вторият етап, който ще бъде в центъра на това проучване, се състои от четири основни функции – премахване на излишното форматиране и сглобяването на набраните текстове в един файл, автоматизирана проверка за правописни и пунктуационни грешки, корекции на текстове и сричкопренасяне.
А защо не се обърне повече внимание на последния, трети етап? Не е ли той по-важен и интересен? Не се ли нарича и той текстообработка? Трябва веднага да се отбележи, че сред професионалистите функциите от третия етап на фигурата се наричат по три начина: „страниране“, „макетиране“ и „компютърен дизайн“. А за да се обясни защо фокусът на вниманието е насочен именно върху втория етап, може да се направи една проста аналогия. На всеки програмист е известно, че колкото по-добре са конструирани и обмислени структурите от данни на неговата програма, толкова по-ефективна и силна е тя (т.е. добре е предварително да е съобразена конструкцията им съгласно операциите, които ще се наложи да се прилагат над тях). Правилният избор на структурата от данни води до истинската ефективност на добрите алгоритми. По същия начин колкото по-малко грешки и технически нередности има в един текст, колкото по-чист и перфектно подготвен е той, толкова по-лесна и безпроблемна е неговата графична обработка предвид малкото корекции, които се налагат впоследствие. Или ако се върнем на фиг. 1, може да се каже, че правилната и изчерпателна обработка на текстовете на текстово равнище играе изключително важна роля при работата в графичния етап. Никакъв графичен алгоритъм или редактор (засега) не е в състояние да оправи автоматично бъркотиите от по-ниско равнище. Другата причина е, че целта тук не е да се повтаря накратко известни вече неща, а да се дадат някои нови предложения и виждания за засегнатите проблеми, които, макар и незначителни на пръв поглед, биха могли да се окажат полезни в практиката. И колкото на по-ниско, по-фундаментално равнище са те, толкова по-добре.
От друга страна, трябва да се подчертае, че за всеки от предложените алгоритми и идеи са взети под внимание практическото им приложение и взаимовръзка с графичните особености на текстовете, т.е. взетите решения и предложените идеи не са изведени откъснато и сами за себе си. Затова в последната част е обърнато внимание и на някои аспекти от чисто графични характеристики, особености и метрики, които най-силно се влияят от правилната предварителна обработка на текстово равнище.
Съдържание
0. Встъпление
1. Увод
2.1. Малко история
2.2. Правила за сричкопренасяне от 1983 г.
2.4. Алгоритъм на сричкопренасянето по фонетичен и морфологичен принцип
2.4.1. Алгоритъм за откриване на морфема в дума
2.4.2. Алгоритъм за анализ на буква
2.4.3. Алгоритъм за анализ на дума
2.4.4. Алгоритъм за анализ на текст
2.4.5. Други възможности
3. Автоматизирано откриване и отстраняване на грешки в текст
3.1. Дефиниции и понятия
3.3. Класификация на правилата
3.4. Примерна програмна реализация на локалните правила
3.4.1. Нови дефиниции, променливи, флагове и множества
3.4.2. Таблица на локалните правила
3.4.3. Функции, необходими за реализация на локалните правила
3.5. Глобални правила
3.5.1. Класификация на думите в текст на равнище знакове
3.5.2. Функции, необходими за реализация на глобалните правила
4. Някои метрики в текстообработката
4.1. Текстови и шрифтови метрики
4.2. Сложност на текст
4.3. Професионализъм на предпечатната подготовка
4.3.1. Използване на възможностите на програмите чрез дефиниране на различни стилове
4.3.2. Премахване на излишното форматиране
4.3.3. Използване на възможностите за настройка на основните отношения между и в параграфите
5. Заключение
6. Литература
7. Приложениe
7.1. Списък на книгите, върху които са направени експерименти