Алгоритм реферирование текста ® Утёмов В.В. 2008г. I. Лексический анализ Для разбиения текста на предложения используется следующий алгоритм. Алгоритм определения границ предложений Первый этап: Анализируем символы входного текста слева направо. 1. Ищем “!”, “?” или “.” (если эти символы в скобках или кавычках, то игнорируем). 2. Если найдено “!” или “?”, то это конец предложения. Идем на шаг 1. 3. Если найдено “.”, то, если далее идут еще 2 точки (т.е. троеточие), то смотрим следующее слово: если оно написано с маленькой буквы то это не конец предложения (идем на шаг 1), иначе (если написано с заглавной буквы) ищем слово по словарю, предварительно заменив заглавную букву на строчную. Если найдено, то это конец предложения, иначе считаем, что это слово имя собственное, т.е. не конец предложения (идем на шаг 1). 4. Если найдена одна точка “.”, то проверяем, не входит ли эта точка в сокращение (используем словарь сокращений с точкой). Если входит, то смотрим, может ли быть такое сокращение в конце предложения (эти данные занесены в словарь). Если не может, то это не конец предложения (идем на шаг 1). 5. Если же точка не входит ни в одно из сокращений или входит, но это сокращение может стоять в конце предложения, то выполняем действия как на шаге 3: смотрим следующее слово, и если оно написано с маленькой буквы, то это не конец предложения (идем на шаг 1), иначе (если написано с заглавной буквы) ищем слово по словарю, предварительно заменив заглавную букву на строчную. Если слово найдено, то это конец предложения, иначе считаем, что это слово имя собственное, т.е. не конец предложения (идем на шаг 1). Второй этап: Тегирование исходного текста Список тегов: 1. “<K>” - ставится в начале предложения, в результате предложение игнорируется на дальнейших стадиях и не попадает в реферат (используется, например, для вопросительных предложений). 2. “<k>”, “</k>” – игнорируется и не попадает в реферат фрагмент предложения находящийся между этими тегами (применяется для вводных слов и предложений). 3. “<i>”,”</i>” - часть предложения между этими тегами не рассматриваем при анализе и взвешивании, но в реферате она остается. (цитаты…) 4. “<d>”,”</d>” – определяют зависимость предложения от предыдущего: если предыдущее предложение не попадает в реферат, а текущее попадает, то этот фрагмент вырезается, иначе остается без изменений. При тегировании используется специальный словарь зависимых слов. 5. “<p>”, “</p>” - фрагмент между этими тегами представляет собой последовательность пунктов и рассматривается как отдельное предложение (взвешивается отдельно). Если этот фрагмент являлся частью некоторого предложения, то в текст добавляется пометка “[пункты]”, которая будет присутствовать в реферате (если соответствующее предложение попадет). 6. “<C>”,”<c>”,”</c>”, ”<H>”, “<h>”, “</h>” - используются для выделения заголовков и подзаголовков. II. Взвешивание слов и предложений 1. Выделяются ключевые слова, им сопоставляется 1 2. Выделяются слова связанные различными окраски дуг задающих отношения между словами, им сопоставляется 0,5. 3. Все остальным словам сопоставляется ноль. 4. Вес заголовка умножается на 5. Веса предложений-подзаголовков умножаются на 2 6. Предложения с тегом “<K>” не взвешиваются и имеют нулевой вес. 7. Слова находящиеся между тегами “<k>”, “</k>” или “<i>”, “</i>” не учитываются. III.Генерация реферата Этап генерации представляет собой выбор из исходного текста определенного количества предложений с наибольшим весом в той последовательности, в которой они идут в тексте. При сборке реферата учитываются теги.