АЛГОРИТМИ И ПРОГРАМИ В ТЕКСТООБРАБОТКАТА

(дипломна работа, София, ФМИ, 1995 г.)

2.4.1. Алгоритъм за откриване на морфема в дума

Морфема се нарича най-малката значима част в думата. Всяка дума се състои от една или повече морфеми, като една от тях е корен, а останалите – афикси. Нека с Q се означи множеството на морфемите в българския език, подредени по дължината си в низходящ ред. Нека Z е множеството на забранените буквосъчетания след една морфема. Нека w е думата, в която предстои да бъде открита първата морфема (границите на w са зададени като непосредствено отместване спрямо началото на текста). Прилага се следният метод – търси се първото съвпадение на морфема с началото на низа w и такава, че непосредствено след нея в w да няма поредица от елементи, които да се съдържат в множеството на забраняващите буквосъчетания (Z). Необходими са и две други функции: compare и in_Z, необходимостта от които е описана непосредствено след декларацията им. Ето как изглежда това на С++:

const max_Z = 20;       // максимален брой елементи на Z
const max_Q = 100;      // максимален брой елементи на Q
char * Z[max_Z];        // множество на забранените буквосъчетания
char * Q[max_Q];        // множество на морфемите в бълг. език

int compare (unsigned long begin, unsigned long end, char *s2);
// Сравнява дали морфемата s2 е подниз на s1, зададен със своите
// граници. При това се търси съвпадение само от началото на s1.

int in_Z (unsigned long begin, unsigned long end, int i);
// Проверява дали след w[i] се намират елементи,
// които заедно с w[i] принадлежат на Z.


Функцията е:

long give_morph (unsigned long begin, 
                 unsigned long end)
  {
    int i=0;
    while(i < max_Q)
      {
	  if (compare(begin, end, Q[i]))
	    if (!in_Z(begin, end, i)) 
          return begin + i;
      }
    return 0L;
  }
<< назад | отгоре | напред >>

Съдържание

0. Встъпление

1. Увод

2. Сричкопренасяне

2.1. Малко история

2.2. Правила за сричкопренасяне от 1983 г.

2.3. Метод на скандирането

2.4. Алгоритъм на сричкопренасянето по фонетичен и морфологичен принцип

2.4.1. Алгоритъм за откриване на морфема в дума

2.4.2. Алгоритъм за анализ на буква

2.4.3. Алгоритъм за анализ на дума

2.4.4. Алгоритъм за анализ на текст

2.4.5. Други възможности

3. Автоматизирано откриване и отстраняване на грешки в текст

3.1. Дефиниции и понятия

3.2. Често допускани грешки

3.3. Класификация на правилата

3.4. Примерна програмна реализация на локалните правила

3.4.1. Нови дефиниции, променливи, флагове и множества

3.4.2. Таблица на локалните правила

3.4.3. Функции, необходими за реализация на локалните правила

3.5. Глобални правила

3.5.1. Класификация на думите в текст на равнище знакове

3.5.2. Функции, необходими за реализация на глобалните правила

3.5.3. Функции и идеи, които предстоят да бъдат осъществени

4. Някои метрики в текстообработката

4.1. Текстови и шрифтови метрики

4.2. Сложност на текст

4.3. Професионализъм на предпечатната подготовка

4.3.1. Използване на възможностите на програмите чрез дефиниране на различни стилове

4.3.2. Премахване на излишното форматиране

4.3.3. Използване на възможностите за настройка на основните отношения между и в параграфите

5. Заключение

6. Литература

7. Приложениe

7.1. Списък на книгите, върху които са направени експерименти

7.2. Някои статистики и резултати от проведени изследвания