Научная статья на тему 'Проблема ввода формул в ЭВМ'

Проблема ввода формул в ЭВМ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
147
47
i Надоели баннеры? Вы всегда можете отключить рекламу.
i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Текст научной работы на тему «Проблема ввода формул в ЭВМ»

// Вычисляем реальный размер блока Ыоск-Size = max (requiredBlockSize, sizeof (void*)); } void* CBlockAllocator: :Alloc() { if( firstFree \- 0) {

// Есть блок в списке свободных. // Возвращаем указатель на первый свободный блок void *ret = firstFree; firstFree = *( (void**) firstFree) ; return ret; } else {

// Выделяем новый блок в стековом распределителе памяти return allocator .Alloc (blockSize ); void CBlockAllocator: : Free ( void* block) {

// Добавляем освобождаемый блок в начало списка свободных блоков

* ((void**)block) = firstFree; firstFree = block;

}

Блоковый распределитель памяти в отличие от стекового позволяет переиспользовать освобожденные участки памяти. Однако, у него есть и недостатки. Главный из них - фиксированный размер блока.

Заключение

Каждый из описанных механизмов распределения памяти имеет как достоинст-

ва, так и недостатки. Невозможно предложить механизм распределения памяти, который бы идеально подходил для любого алгоритма. При реализации какого-либо алгоритма необходимо четко сформулировать гребования к распределению памяти для используемых структур данных и выбрать соответствующий распределитель памяти. Часто приходится применять комбинированный подход, используюя для разных структур данных разные способы работы с памятью. Выбор правильного механизма распределения памяти может иметь важное значение для эффективной реализации любого алгоритма.

Литература

1. Platform SDK. Base Services. Memory. MSDN Library - October 2000.

2. Кнут Д. Искусство программирования для

ЭВМ. Основные алгоритмы, т.1 М.: Изд.

«Мир», 1976.

3. Бьярн Страуструп. Язык программирования C++. -Киев: «Диасофт» 1993.

ПРОБЛЕМА ВВОДА ФОРМУЛ В ЭВМ

Я.В. ЧЕЗГАНОВ, аспирант кафедры ПМ МГУJla

1. Введение

В настоящее время влияние информационных технологий на развитие науки неоспоримо. Ученые физики, математики, химики, биологи, экономисты активно используют компьютерные средства моделирования и проведения сложных математических расчетов. На ранке программного обеспечения существует целое направление систем «компьютерной математики», это такие известные системы, как МаШСас!, Ма1ЬаЬ, Мар1е, МаШетайса и другие. Обмен информацией между учеными разных стран часто происходит через интернет и другие средства глобальной коммуникации, то есть в электронном виде. Однако, хранение, передача и обработка информации в электронном виде возможны при условии её корректного и эффективного ввода в

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

Принципиально иначе обстоит дело с оцифровкой документов научного и технического содержания. И главной причиной тому - наличие в них формул.

2. Общий взгляд на проблему

Классическую схему1 процесса распознавания текста можно представить так, как это показано на схеме 1.

1 В настоящее время этой схемы придерживаются редко. Например, на этапе классификации может понадобиться возврат к предобработке.

Схема процесса распознавания формул в целом похожа на приведенную классическую схему. Отличия есть лишь на некоторых стадиях процесса. Далее рассмотрим основные отличия схемы 2 от схемы 1 и порождаемые ими сложности.

3. Основные сложности

3.1. Сложность выделения символов

Первая проблема, которая возникает в процессе распознавания формулы, - это проблема выделения на изображении отдельных символов или сегментирования. С точки зрения сегментирования формулы имеют следующие отличия от обычного текста:

1. Нелинейность структуры. Этот пункт подроднее будет рассмотрен ниже.

2. Возможность вложения символов друг в друга. Это частный случай нелинейности структуры, требующий особого внимания. Вложения встречаются, например, в

подкоренном выражении « 4а « или в некоторых начертаниях интеграла.

3. В некоторых случаях математические и нестандартные пробелы внутри формул могут восприниматься процедурой сегментации неверно. Например, в следующей формуле пробелы перед «если» мо-

гут быть интерпретированы как пробелы между столбцами текста.

0, если /(х) < 0

Пример: ЛМ = - /(•*)» если 0 < /(х)< А

А’ если /(х) > А

4. Длинная дробная черта и квадратные скобки могут быть истолкованы как табличные линии.

Пример:

\ - 1 (с1 + й)2 + О}2 Я

Ш (а2 +(02^2 (а-Ъ)2 +со2

5. Такие виды топологического шума, как «слипшиеся» и «разбитые» символы устранить на стадии сегментирования труднее, т.к. нет полученной ранее информации о высоте строки и ширине символа.

6. Различные размеры шрифтов.

7. Неравномерная плотность символов в блоке.

Существующие методы сегментирования, применяемые в коммерческих ОСЯ-системах, по изложенным выше причинам не приспособлены к решению данной задачи.

Статистические методы определения границ блока текста или отдельной строки

применительно к выключенной формуле работают плохо, т.к. сами границы варьируются на разных участках формулы. Включенная формула, кроме того, вносит искажения во всю строку. Методы определения базовых линий по уже распознанным символам здесь применяться не могут, т.к. сами базовые линии на разных участках формулы - разные.

Среди методов сегментирования формул, пожалуй, наиболее известна техника «projection profile cutting» [1] - рекурсивная процедура деления изображения на горизонтальные и вертикальные блоки. Но она имеет ряд существенных ограничений и не может применяться в промышленном масштабе.

На этапе предобработки изображения формулы удобнее выделять не символы, а связанные области (connected components). Связанной областью назовем набор Р из N точек р;, такой что

Р = {р,|Э/е[1,ЛГ]:|р,-р,| = 1},

где \а - b\ = тах(|ах - Ъх|, |ау -Ьу\) - расстояние между этими точками. Другими словами связанная область - это набор примыкающих друг к другу точек. Например, символ «i» состоит из двух связанных областей, а именно, из « . « и « 1 «. Объединение связанных областей в символы либо происходит на отдельной стадии лексического анализа, как у Фейтмана [2], либо входит в структурный анализ.

3.2. Сложность классификации

На этапе классификации система распознавания обычного текста соотносит каждый выделенный символ с одним из известных ей классов. Как правило, количество классов невелико. Например, это может быть набор из строчных и заглавных букв русского алфавита плюс несколько знаков препинания. В математических, физических, химических и других формулах может использоваться набор символов, количество которых выше на один-два порядка. В на-

стоящее время таблица символов 11шсос1е содержит около тысячи наиболее часто используемых символов. А с увеличением количества классов ухудшается качество распознавания. Кроме того, появляются структурно очень похожие символы. Например, очень трудно уверенно отличить латинскую «р» от греческой « р «.

Однако в существующих системах распознавания символов используются те же методы классификации, что и в системах распознавания обычного текста, обобщенные на большее число классов.

3.3. Структурный анализ

Главное отличие формулы от обычного текста - это нелинейность её структуры. Обычный текст представляет собой набор строк, достаточно легко отделимых друг от друга. А в пределах одной строки символы располагаются друг относительно друга в одну линию. Причем, в случае напечатанного текста, базовые линии символов2 одной строки находятся примерно на одном уровне. И именно этот факт используется при разбиении строки на отдельные символы. Однако, как это показано в [3] надежное определение базовых линий строки статистическими методами, методами, опирающимися на распознавание и, даже, их комбинированием возможно при количестве символов в строке N > 4. Формула же представляет собой сложную совокупность, как правило, коротких строк. Например, в формуле на рисунке 1 «Ь> (нижний индекс при 0 является отдельной строкой (имеет свои базовые линии). К таким строкам не применимы современные методы сегментирования, используемые в системах распознавания текста. Кроме того, строки, составляющие формулу, связаны друг с другом достаточно сложным образом. Между строками и входящими в них символами можно выделить следующие типы отношений:

“Понятие базовой линии взято из полиграфии. В обычной строке определены четыре базовые линии, которые определяют вертикальное положение и размер символов строки. См. [3].

Таблица

Отношение Пояснение Пример

Символ-символ Символы равноправны друг относительно друга Соседние символы одной строки

Символ-строка Символ имеет зависимую строку, т.е. строку, положение которой определяется относительно этого символа Нижний индекс в « хк+1« является строкой, зависимой от символа «х»

Символ-N строк Символ имеет N зависимых строк Знак интеграла может иметь три зависимые строки - верхний и нижний пределы и подинтегральное выражение

Другими словами, между входящими в формулу символами возможны отношения один-к-одному и один-ко-многим, а значит, логическую структуру формулы можно хранить в виде дерева.

С точки зрения дальнейшего использования наиболее полезной древовидной структурой является дерево синтаксического разбора. В этом случае мы имеем дело только с отношениями между отдельными символами.

Однако логическую структуру формулы в процессе её распознавания удобнее представлять в виде так называемого дерева пространственных отношений.

Сначала введём понятие блока. Пусть формула состоит из N символов S(,i = l.JV.

Блок Bj - это либо Sj, для j = l..N, либо результат объединения двух ранее полученных блоков для j> N . Отметим сразу, что блок и строка - это не одно и тоже. Блоками могут являться как отдельные символы строки и любые их сочетания, так и сама строка.

Объединение двух блоков возможно при наличии между ними одного из следующих пространственных отношений:

1. «NEXT» (аналог отношения символ-символ, два блока содержат соседние символы одной строки, со всеми своими зависимыми символами).

2. «SUBSCRIPT» (один из блоков является нижним правым индексом другого).

3. «SUPERSCRIPT» (один из блоков является верхним правым индексом другого).

4. «LOWER» (один из блоков располагается под другим).

5. «UPPER» (один из блоков располагается над другим).

6. «INSIDE» (один из блоков находится внутри другого).

Дерево, описывающее все множество способов получения данной формулы путем объединения блоков, называют деревом пространственных отношений (relation tree). Такое дерево содержит вершины двух видов: символы, из которых состоит формула, и пространственные отношения. Причем, ярусы символов и пространственных отношений чередуются, так что между любым ярусом символов I-то уровня и соответствующим ему ярусом символов / + 2-го уровня обязательно есть ярус пространственных отношений. Отношение один-к-одному («NEXT») задается в дереве неявно, как отношение между потомками одной вершины. Остальные отношения задаются явно через соответствующие вершины.

Например, для следующего выражения на рис. 1

СО

i=l

Рис. 1

дерево синтаксического разбора будет таким, как на рис. 2, а дерево пространственных отношений будет выглядеть так, как показано на рис. 3.

Листья в таком дереве представляют блоки нулевого порядка, то есть просто символы. Блок первого порядка может быть получен путём объединения двух соседних символов, имеющих общую вершину либо, если данный символ не имеет таких соседей, путём объединения этого символа с символом-предком через соединяющее их пространственное отношение. В результате последовательности таких объединений будет получен блок, соответствующий всей формуле.

Однако часто по имеющемуся набору символов можно построить более чем одно дерево отношений. Такое возможно по многим причинам, например:

1) появление в формуле многозначных символов (горизонтальная черта может быть истолкована как знак «минус», «дробная черта» или «черта сверху», например, ес-

ли в этом примере

а

2)

разбор начать с символа «2», то черта сверху может быть истолкована как знак «минус»); неоднозначность или неуверенность в пространственном отношении (например, в следующих пяти примерах

2х 2х 2* 2х 2х

возможна ошибка в определении пространственного отношения между «2» и «х»);

3) неуверенно распознанные сегменты могут быть истолкованы по разному.

Основная задача структурного анализа формулы состоит в разрешении или снятии таких неоднозначностей и нахождении верной структуры формулы.

3.4. Сложность экспорта

Проблема состоит в том, что на сегодняшний день нет единого стандарта для хранения документов, содержащих формулы. Для представления формул в виде, удобном для публикации или отображения на экране могут использоваться как различные модификации формата ТеХ, так и набирающий популярность формат МаШМЬ. Различные системы компьютерной математики

также используют разные форматы хранения данных.

4. Методы решения

4.1. Методы построения дерева разбора

Построение дерева синтаксического разбора отсканированной или введенной через планшет формулы фактически означает понимание её смысла. Другими словами, если для формулы построено дерево разбора, то становится возможным её дальнейшее использование в системах компьютерной математики.

Задача ставится так: на входе множество 5 = {,у(. | / = 1,2,... М} из N уже распознанных символов. Символы снабжены всеми необходимыми атрибутами (координаты центра, расположение ограничивающей рамки и т.д.). Требуется построить для этого множества символов дерево синтаксического разбора.

Первыми попытками в этом направлении были методы, предложенные Андерсоном [4,5] и Мартином [6], а также Чангом [7]. Андерсон предложил использовать так называемую координатную грамматику. Языки, порождаемые такой грамматикой, определяются не на множестве строк, а на множестве наборов параметризованных символов. Другими словами, порядок подачи символов на вход не важен. Терминалы координатной грамматики соответствуют отдельным распознанным символам, а нетерминалы по смыслу соответствуют бло-

кам. Терминалы и нетерминалы в грамматике Андерсона снабжались следующими параметрами:

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

координаты центра соответствующего набора символов;

ограничивающая рамка (bounding box); строка ш, представляющая набор символов в ASCII-формате.

В результате низходящего разбора параметр m полученного начального символа грамматики содержит ASCII-представ-ление всей формулы.

Метод Чанга заключался в использовании правил старшинства и так называемого доминирования операторов. Старшинство операторов определяется аналогично тому, как это делается в языках программирования. Например, «*» старше «+». Доминирование определяется так: оператор А доминирует над оператором В, если области возможного нахождения операндов оператора А полностью включают в себя области возможного нахождения операндов оператора В. Разбор формулы начинается с нахожде-

ния символов-операторов. Затем к каждому найденному оператору применяются соответствующие правила. Метод работает только в том случае, если все операторы в формуле заданы явно. Примером неявного оператора может служить оператор возведения в степень.

Множество предварительно распознанных символов можно представить в виде графа, не содержащего ребер, вершинами которого являются сами символы. Тогда задача получения дерева разбора сводится к расстановке верных ребер. В работе Грбавич и Блостейн [8,9] ребра добавляются в результате применения правил перерисовки графов, которые имеют вид gl Это

означает, что подграф, изоморфный графу , может быть заменен на граф gr. Например, по правилу, изображенному на рисунке

4, знак суммирования вместе со своими пределами и выражением слева может быть заменен на граф, состоящий из одной вершины <ехр>.

Представление правил грамматики в виде графов положительно сказывается на её выразительной мощности. Однако для применения таких правил требуется каждый раз решать задачу об изоморфизме двух графов.

Общее замечание ко всем перечисленным выше методам: эти методы работают в предположении, что все символы выделены и распознаны верно. Учитывая особен-

ности процесса распознавания можно предположить, что такое случается крайне редко.

Попытка построить систему распознавания формул, устойчивую к ошибкам распознавания отдельных символов, была предпринята Чоу [10]. Он использовал стохастическую контекстно свободную грамматику С = (А^,Е, Р,5) в нормальной форме

Хомского, то есть каждое правило имеет один из следующих видов:

1) А —> ВС, А,В,С - нетерминалы;

2) А —> а, где а £ Е - терминальный символ;

3) S —> е, если е е L(G), т.е. S - начальный символ грамматики и каждому i-тому правилу сопоставлена вероятность Pi;..

Такие вероятности вычисляются предварительно по набору обучающих примеров. Метод основан на технике динамического программирования. Наиболее вероятная структура определяется путём перебора всех вероятных вариантов. Вероятность каждого к-

го варианта рг<*> - рг рг. ...рг. определяется

'1 *2 '»

как произведение вероятностей правил, примененных для его получения. Недостатком этого метода является его высокая вычислительная сложность. Даже с применением некоторых эвристических улучшений на разбор весьма простых формул может понадобиться = 25 секунд машинного времени на процессоре Pentium Pro 256MHz [11].

4.2. Методы построения дерева отношений

В некоторых случаях бывает достаточно просто выявить пространственные отношения между символами. Например, если электронная версия документа будет использоваться для повторного редактирования и публикации в издательской системе LaTeX. В этом случае, главное - чтобы символы распознанной структуры располагались друг относительно друга так же, как расположены символы исходного документа или так, как задумал пользователь, вводящий формулу через планшет.

Эта задача ставится так: на входе множество S = {я, | i = l,2,...iV] из N уже распознанных символов. Символы снабжены всеми необходимыми атрибутами (координаты центра, расположение ограничивающей рамки и т.д.). Требуется построить де-

рево пространственных отношений между этими символами.

4.2.1. Процедурно описанные правила

Для выявления отношений между символами можно использовать правила, записанные в виде процедур [10, 34, 35]. Например, для символа «-» (горизонтальная черта) можно применить такие правила:

ЕСЛИ ширина символа больше некоторого значения ТО это длинная черта ИНАЧЕ это короткая черта ЕСЛИ длинная черта имеет символы над и под ней

ТО это дробная черта ИНАЧЕ ЕСЛИ длинная черта имеет символы только под ней ТО это логическое отрицание

ЕСЛИ короткая черта не имеет символов над и под ней ТО это знак минус

ЕСЛИ короткая черта имеет символ «>« над ней

ТО вместе они составляют символ «>»

Таким и правилами можно описать некоторое подмножество формул, но в общем случае применение такого метода затруднительно.

4.2.2. Рекурсивное сегментирование

Получить структуру пространственных отношений можно и просто путем последовательного разбиения изображения на вертикальные и горизонтальные блоки [1]. Пример такого разбиения показан на рис. 5. Однако к приведенному ранее примеру на рис. 1 этот метод не применим, так как он не выявляет отношения нижнего индекса.

i>

dy

dx

>

dy

dx

Cr

to

/

+'

t>

Рис. 5

4.2.3. Скрытые модели Маркова

Скрытые модели Маркова (СММ) -популярный метод моделирования случайных последовательностей с конечным числом состояний. Они применяются в криптоанализе, распознавании речи и могут также быть полезными в распознавании формул.

Формально дискретную СММ можно определить как Я = ( А, В, л ),

где л - {я }, л1 = Р(ц = г) - вероятность нахождения в состоянии 1 в начальный момент, т.е. 1= 1.

Л = ач = Р(/м1 = ./1 гг = г) - вероятность попадания в состояние ] в момент времени 1+1 при условии нахождения в состоянии \ в момент ^ Предполагается, что а~

не зависят от времени.

В = {ь;(£)}, Ь](к) = Р(ак \1[ = ]) -

вероятность наблюдения ак в момент времени I при условии нахождения в состоянии }.

I, - состояние в момент времени I.

выходной алфавит (дискретное множество результатов наблюдения).

N - число возможных состояний.

М - число возможных результатов наблюдения.

Т - количество произведенных наблюдений.

Андреас Космала и Герхард Ригол использовали алгоритм Витерби [15] для нахождения наиболее вероятной структуры (т.е. по-

следовательности состояний I = ix, i2,..., it)

для данного на входе набора символов (результатов наблюдения). Символы вводятся через планшет в режиме on-line. Однако, чтобы нелинейная структура формулы могла быть представлена в виде цепочки наблюдений, им потребовалось наложить ограничение на последовательность ввода символов. Например, запись дроби должна производиться именно в такой последовательности: сначала следует записать числитель, потом дробную черту, а затем знаменатель.

5. Off-line и On-line распознавание

Распознавание формул практически может применяться в двух случаях: перевод бумажных документов, содержащих формулы, в электронный вид (off-line распознавание) и ввод рукописных формул в компьютер через планшет или при помощи мыши естественным образом (on-line распознавание). Причем, on-line распознавание последние несколько лет привлекает большее внимание специалистов. В этом случае на вход подается не изображение, а набор траекторий. Каждая траектория соответствует одной связанной области. То есть этапы сканирования и предобработки сводятся к минимуму действий. Другой привлекательной стороной этой задачи является перспектива использования on-line распознавания не только в период перехода от бумажных документов к электронным, но и в дальнейшем. На рис. 6 показан пример программы ввода рукописных формул.

Cleat I Delete Stroke | |R election Threshold 4 .-[ Combination Weighting ■>[. | Symbol Models 3

L '

Typeset Expression:

LaTeX Expression'

J

MathML Exptession:

,**+1 = ax\ 1 - .Vі) хА{1 + 1 ) = а хА{1) ( 1 -х*{11 1 . “J * V -Ш' •-•V <aath> — <astyle di Splaystyie»1 true.1 > ! <acotf£ — GBubsig» 1 *■ Ф } Ліі. » * <mr88>. if • <*0>-КУЙ6> <ВП>1</!Ш> jJ,

jDone. v •, | Внимание! Окно приложения.

Рис. 6

6. Итог

Все рассмотренные выше методы решения обозначенной проблемы имеют те или иные существенные ограничения, не позволяющие применять их в промышленных масштабах. Главная цель этой статьи - показать, что проблема есть и она требует более качественного решения.

Литература

1. М. Okamoto, B.Miao. Recognition of mathematical expressions by using the layout structures of symbols. Proceedings of the First International Conference on Document Analysis and Recognition, p. 242-250, Saint-Malo, France, 1991.

2. RJ.Fateman, T.Tokuyasu. Optical character recognition and parsing of typeset mathematics. Journal of Visual Communication and Image Representation, 7(1):2-15, Mar. 1996.

3. В.ЛАрлазаров, Г.В.Корольков, О.А.Славин. Линейный критерий в задаче OCR.

4. R.H.Anderson, Syntax-directed recognition of handprinted two-dimensional mathematics. Interactive Systems fr Experimental Applied Mathematics, p. 436-459. Academic Press, New York, 1968.

5. R.H.Anderson. Two-dimensional mathematical notation. Syntactic Pattern Recognition Applications, p. 147-177. Springer-Verlag, New York, 1977.

6. W.A.Martin. Computer inpul/output of mathematical expressions. Proceedings of the Second Symposium on Symbolic Algebraic Manipulation, p. 78-89, Los Angeles, CA, 1971.

7. S.K.Chang. A method for the structural analysis of two-dimensional mathematical expressions. Information Sciences, 2(3):253-272,1970.

8. D.Blostein, A.Grbavec. Recognition of mathematical notation. Handbook of Character Recognition and Document Image Analysis, p.557-582. World Scientific, Singapore, 1997.

9. A.Grbavec, D.Blostein. Mathematics recognition using graph rewriting. Proceedings of the Third International Conference on Document Analysis and Recognition, p. 417-421, Montreal, Canada, 1995.

10. P.A. Chou. Recognition of equations using a two-dimensional stohcastic context-free grammar. Proceedings of the SPIE Visual Communication s and Image Processing IV, volume 1199, p. 852-863, Philadelphia, PA, Nov. 1989.

11. E.G.Miller, P.A.Viola. Ambiguity and constraint in mathematical expression recognition. Proceedings of the Fifteenth National Conference on Artificial Intelligence, p. 784-791, Madison, Visconsin, 1998.

12. L.H.Chen, P.Y.Yin. A system for on-line recognition of handwritten mathematical expressions. Computer Processing of Chinese and Oriental Languages, 6(1): 19-39, June 1992.

13. H.-J.Lee, J.-S.Wang. Design of a mathematical expression recognition system. Proceedings of the Third International Conference on Document Analysis and Recognition, p. 1084-1087, Montreal, Canada, 1995.

14. H.-J.Lee, J.-S.Wang. Design of a mathematical expression recognition system. Pattern Recognition Letters, 18:289-298,1997.

15. A.Kosmala, G.Rigoll. On-line handwritten formula recognition using statistical methods. Proceedings of the Fourteenth International Conference on Pattern Recognition, p. 1306-1308, Brisbane, Australia, 17-20 August 1998.

i Надоели баннеры? Вы всегда можете отключить рекламу.