АЛГОРИТМИ И ПРОГРАМИ В ТЕКСТООБРАБОТКАТА
(дипломна работа, София, ФМИ, 1995 г.)
Прозри: аз те дарявам Папирус Ани |
3.2. Често допускани грешки
Следва една група от правила, които в болшинството си са езиковонезависими (т. е. за разлика от правилата на сричкопренасянето те са валидни не само в българския език, но и са приложими например за руски, английски и др. езици). Те включват в себе си и стилистичните правила, макар че съдържат и някои елементи, поради които по-скоро трябва да ги наречем правила за откриване (и недопускане!) на грешки.
Нека въведем четири полезни съкращения:
К – компютър (като синоним на автоматичност)
Ч – човек (като синоним на автоматизираност, т. е. не-автоматичност)
! – безусловност
? – условност
1. Препинателните знакове (запетая, точка, двоеточие, тире и т. н.) се оставят на горния ред. Изключение се прави за отварящите кавички и отварящата скоба (те се пренасят на долния ред) и за дългото тире, което се пренася свободно, когато бележи изпусната дума или въвежда уточняваща част. (К!, вж. т. 3.3)
2.Съмнително е когато в една дума се среща както <латинска буква>, така и <българска буква>. (К?)
Пример за грешка:
шрифт Courier ET: Atanas Topalov ('а' е изписана на кирилица),
шрифт Courier : Àtànàs Topàlov – грешка!
Забележка: Горният пример е неприятен не само заради получилите се видими ударения (в повечето случаи при замяната на един с друг шрифт това няма да се получи), а най-вече затова, че ще бъде объркана програмата/алгоритъмът за пренос и съответната програма за spell-check.
3. Съмнително е, когато след точка (единствена), която не стои след съкращение, се намира <дума>. (Ч!)
Пример за грешка:
... тя се прибра. постоянно се надяваше...,
но не е грешка
... през 1994 г. се случи ...
4. Не трябва да има пренос в <съкращение>, което се състои от две думи. (К!)
Пример за грешка:
... не разбраха това, което исках да кажа, т.
е. не проявиха интерес да го разберат...,
5. Не трябва да има пренос пред <съкращение след> или след <съкращение пред>. (К!)
Пример за грешка:
...Това се случи през 1992
г., когато близо до гр.
София...
Забележка: Тъй като голяма част от страньорите/машинописките осъзнават проблемите от правила 4 и 5, но не са в състояние да се справят с него, много често те си затварят очите и премахват свързващия интервал, което съответно редакторите/коректорите подминават със същото разбиране (макар да е съвсем погрешно и недопустимо), т. е. получава се: „1992г.“, ... кажа, т.е. не ...“, „... до гр.София ...“ и т. н.
6. Не трябва да има пренос в число, съставено от две или повече части, разделени с интервал (т. е. този интервал трябва да се преобразува в <твърд интервал>). (К?)
Пример за грешка:
... струваше около 1 000
000 лв., за които...
7. След думите 'най'|'НАЙ'|'Най'|'по'|'ПО'|'По', последвани от '-', не трябва да има интервал. (К!)
Пример за грешка:
... това е една от най- често срещаните грешки
при машинопис...
8. Съмнителни са съчетанията <дума>'-'' '<дума> и <нов ред>'-'<дума>. Те трябва да се преобразуват съответно в <дума>' ''—'' '<дума> и <нов ред>'—'' '<дума> чрез добавяне на пропуснатия интервал (след като е проверено дали този случай не се отнася до предходното правило). (К!)
Пример за грешка:
-Мислиш ли- попита той,- че ще...
Правилното е:
— Мислиш ли — попита той, — че ще...
Невинни на пръв поглед нарушения на 7 и 8 стават доста по-очевидни, след като комбинацията '-'' ' се замени автоматично с '—'' ' (както е показано и в примера). Това от своя страна е най-често използваният начин за преобразуване в явен вид на дългите тирета в програми като PageMaker, Ventura Publisher, Word for Windows и др.
9. <съмнителна> е дума, която не принадлежи на множеството {<дума>, <ДУМА>, <Дума>} или не може да се представи като последователност на елемент от това множество и <цяло число> (т. е. не е и дума, завършваща с индекс). (Ч?)
Пример за грешка:
...доста чеСто се случва и т0ва...,
но е правилно:
... около 24 фута2 дълго въже...
По този начин има вероятност да се маркира дума – част от формула, в която няма нищо грешно. Това обаче не е недостатък на правилото, а е едно голямо удобство, тъй като по принцип формулите съдържат множество горни и долни индекси, които изискват допълнително локализиране и ръчна обработка.
10. <съмнителна> е дума от една буква, която не е <еднобуквена дума> или след която няма точка. (Ч!)
Пример за грешка:
... двамата братя н двете сестри...,
но е правилно:
... както и г-н П. Петканов, роден през 1913 г. ...
Правила 8, 9 и 10 не се спазват от програми като Престо!, ОК! и др., тъй като при тези програми за съжаление не се прави разлика между редовни и главни букви, както и не се проверяват думи, които се състоят само от една буква.
11. <съмнителна> е думата 'в' ('с'), която се намира пред дума, чиято първа буква е 'в' или 'ф' (съответно 'с' или 'з'). (Ч!)
Пример за грешка:
... заедно с Ставри влязохме в вагона...
12.След нов ред не трябва да има интервал или табулация (освен при набор на полетата на таблици). (К?)
Това правило ще изненада доста неприятно хората, свикнали да набират текстове със старите редактори като PE2, Q, Word (под DOS) и т. н., но е един от начините да се поправят щетите, нанесени при излишното форматиране на по-ранен етап.
13. Автоматично преобразуване на наклонената черта '/' в '(' или съответно в ')' където това е необходимо. (К?, Ч!)
Последователността <отварящ препинателен знак> '/' <знак> <знак>... <знак> '/' <затварящ препинателен знак>, където броят на знаковете е ограничен от max, трябва да се замени с <отварящ препинателен знак> '('<знак><знак>... <знак>')'<затварящ препинателен знак>.
Възможни ограничения:
- търсенето на затваряща '/' може да се осъществява само в текущия параграф, за да се избегне излишно усложняване на алгоритъма и забавяне на скоростта;
- при липса на затваряща (отваряща) наклонена черта следва маркиране на мястото като съмнително.
Пример за грешка:
... когато те дойдоха /макар и малко уморени/, се...
Трябва да се преобразува в:
... когато те дойдоха (макар и малко уморени), се...
14. Следене на съотношението (и местоположението) на отварящи – затварящи кавички (или апострофи). (Ч?)
Ограничения:
- освен при отваряща кавичка в начало на параграф, правилото трябва да се прилага само в рамките на един абзац;
- ако не искаме да налагаме горното ограничение, се търси първият параграф, който завършва със затваряща кавичка, и така се определя крайната граница на буфера, който подлежи на проверка. Необходимо е маркиране при несъответствие.
Пример за грешка:
... когато корабът „Радецки акустира на брега...
Правила 12 и 13 са от т. нар. по-горе глобални правила, тъй като диапазонът, в който се прилагат, не е предварително фиксиран и не зависи от близкия контекст, както при локалните правила.
15. Не може да се прави пренос при съкращение на имена. (К!)
Необходимо е интервалът след съкратеното име да се замени с <твърд интервал>.
Пример за грешка:
... подкрепен изцяло от А.
Иванов и други членове на комисията...
16. Може да се дефинира множество на думите, които могат да се намират пред съчетанието 'за да' и 'че', така че пред тях да не трябва да има запетая. Ако няма ',' преди тях и не е налице горното условие, то мястото е подозрително. (Ч!)
Пример за грешка:
... той си мислеше че няма начин да открият тези
грешки така че ги остави за да ги покаже...
Ще бъде маркирано:
... той си мислеше@,@ че няма начин да открият тези
грешки@,@ така че ги остави@,@ за да ги покаже...
17. Когато заглавията (на книги, части, глави, подзаглавия до определено равнище на вложеност и т.н.) са съставени от няколко реда, съюзите и предлозите трябва да вървят заедно с думата, към която се отнасят. (К?)
Пример за грешка:
КАК ГЪЛИВЕР ПОПАДНА В
СТРАНАТА НА...
Трябва да бъде:
КАК ГЪЛИВЕР ПОПАДНА
В СТРАНАТА НА...
Ето един формален начин за откриване на заглавие (или глава) в текст. Търси се цял параграф, който се състои изцяло от главни букви и не завършва с точка. Освен това е необходимо да разполагаме с множеството от съюзите и предлозите за съответния език.
Например: {в, във, и, или, зад, на, под, пред,...}
18. Съчетанието <нов ред>'-'<Дума> трябва да се преобразува в <нов ред>'—' ' '<Дума>. (К!)
Пример за грешка:
-Мислиш ли, че...
Правилно е:
— Мислиш ли, че...
19. Съчетанието <нов ред>'—'' '<дума> е съмнително. (Ч?)
Пример за грешка:
— не мислиш ли, че трябваше да започва
с главна буква?...
Прилагането на това правило зависи от характера на текста – дали е художествена проза, делова проза или е в стихотворна форма. Съществува флаг за избор на конкретната ситуация.
20. За отстраняване на случайни грешки при набора на години и други числови стойности е възможно предварително да се установи диапазона им и след това например при среща на <цяло число> ' ' 'г.' да се провери дали това число е от зададения интервал. (Ч?)
Пример за грешка:
... Роден съм през 1870 г. в гр. София...
21. Съчетанието <дума>'-'<число> е неделимо и трябва да се преобразува в <дума>'^-'<цяло число>. (К?)
Пример за грешка:
... пътувахме със самолет ТУ-
104 за Варна...
22. Неделимо е съчетанието <цяло число>'-'<дума>, когато <дума> принадлежи на множеството {'-ия', '-и', '-а'...} и трябва да се замени с <цяло число>'^-'<дума>. (К?)
Пример за грешка:
... след като положи доста усилия, се класира 10-
ти на републиканското първенство по...
23. При наличие на изброяване в даден параграф, не бива да се разделя номера от първата сричка на думата, за която той се отнася, т.е. при срещата на <цяло число> '.' ' ' <дума>, където <цяло число> принадлежи на определен интервал, трябва да се замени с <цяло число> '.' '^ ' <дума>. (К?)
Пример за грешка:
... Бяхме си поставили следните задачи: 1.
да подобрим качеството на преносите; 2.
да автоматизираме...
24. В същия смисъл, но в друга околност: <дума1>')' ' '<дума2> или <дума1>'/' ' '<дума2>, където <дума1> се състои от една буква в допустим интервал, който започва съответно от 'а' или 'А', е неделима съвкупност, тъй като, както и в предишното правило, е изброяване и следва да се замени с <дума1>')' '^ ' <дума2> или съответно <дума1>'/' '^ '<дума2>. (К?)
Пример за грешка:
... Бяхме си поставили следните задачи: а)
да подобрим качеството на преносите; б)
да автоматизираме...
25. Няма пренос в следния случай: <дума>' '<число>, когато <дума> принадлежи на множеството от неделими цифрови представки {No, §, $, £...}, както и съчетанието <число>' '<дума>, когато <дума> принадлежи на множеството от неделими окончания на цифри {'лв.', '%', 'кг.', ...} и се заменят съответно с <дума>'^ '<число> и <число>'^ ' <дума>. (К!)
Пример за грешка:
... живея на ул. „Позитано"
15, висок съм 176 см. и тежа 75
кг., имам черна коса...
26. Съчетанието <ДУМА>' '<цяло число>, което не се намира в заглавие, вероятно е съкращение и не бива да се разделя на два отделни реда. Може или да се маркира, или направо да се замени с <ДУМА>'^ '<цяло число>. (К?)
Пример за грешка:
... Ударената кола беше ЛАДА
2100 и полицаите...
27. Съчетанието <дума1>' '<дума2>, като <дума1>=<дума2>, е <съмнително>. Това отразява честата грешка за повторение на дума поради разсеяност. (Ч?)
Пример за грешка:
... бяхме само двамата и и кучето...
28. В текстове с характер делова проза е желателно думите – причастия (завършват с окончания: '-ащи', '-ящи', '-ейки' и др.) да се маркират от компютъра, за да бъдат заменени с по-прости словоформи (чрез добавяне на 'която', 'които' и т.н. и опростяване формата на глагола. Изключение – при натрупване на 'която', 'които' и т.н. (Ч?)
Пример за грешка:
... тези правила, показващи наличието на...
Желателно е да се промени по този начин:
... тези правила, които показват наличието на...
29. Изречение не може да започва със <съкращение>, число или математическа формула. Трябва да се промени началото му. (Ч?)
Пример за грешка:
... на това правило. ni-ri е броят на...
... по-долу. 15-те правила...
Желателно е тези фрагменти от текста да се променят:
... на това правило. Разликата ni-ri е броят на...
... по-долу. Петнайсетте правила...
30. За текстове, които се причисляват към деловата проза, съществуват множество от често употребявани думи, които е желателно да бъдат заменени с по-подходящи в някакъв смисъл. За реализацията на това правило е необходим речник с тези двойки. (Ч?)
Примери за подобни двойки:
считам | смятам |
посредством | чрез |
базиран | основан на |
знаци | знакове |
даже | дори |
Съдържание
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. Списък на книгите, върху които са направени експерименти