Научная статья на тему 'Эвристический метод обнаружения таблиц в разноформатных документах'

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

CC BY
282
99
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
АНАЛИЗ И РАСПОЗНАВАНИЕ И ДОКУМЕНТОВ / ИЗВЛЕЧЕНИЕ ИНФОРМАЦИИ / ИЗВЛЕЧЕНИЕ И ОБРАБОТКА ТАБЛИЦ / DOCUMENT ANALYSIS AND RECOGNITION / INFORMATION EXTRACTION / TABLE EXTRACTION AND PROCESSING

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бычков И. В., Ружников Г. М., Хмельнов А. Е., Шигаров А. О.

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

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

A heuristic method of table detection in documents of various formats

The paper discusses a heuristic method of statistical table detection, which uses meta-files as input, what allows one to apply it to the documents of various formats. In the method, the process of table detection is constructed as the bottom-up segmentation of the document's page. The experimental evaluation of the method has given evidence of its efficiency for a wide range of statistical tables.

Текст научной работы на тему «Эвристический метод обнаружения таблиц в разноформатных документах»

Вычислительные технологии

Том 14, № 2, 2009

Эвристический метод обнаружения таблиц в разноформатных

документах

И. В. Бычков, Г. М. Ружников, А. Е. Хмельнов, А. О. Шигдров Институт динамики систем и теории управления СО РАН, Иркутск, Россия

e-mail: shigarov@icc.ru

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

Ключевые слова: анализ и распознавание и документов, извлечение информации, извлечение и обработка таблиц.

Введение

Для решения многих научных и практических задач требуется извлекать данные из таблиц, содержащихся в различных документах. Методы и системы извлечения таблиц из документов позволяют автоматизировать этот процесс. Обзоры работ по извлечению и обработке таблиц [1-4], появившиеся за последние годы, показывают растущий интерес к данной проблематике. В обзоре [1] выделяются следующие этапы процесса извлечения таблиц:

обнаружение таблиц в документах — поиск на страницах документов областей, являющихся таблицами;

сегментация таблиц — выделение столбцов, строк и ячеек таблицы; функциональный анализ — определение роли ячеек таблицы (являются ли они заголовками, подзаголовками, или значениями);

структурный анализ — определение зависимостей между заголовками, подзаголовками и значениями;

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

* Работа выполнена при финансовой поддержке Российского фонда фундаментальных исследований (грант № 08-07-00163^) и Президентской программы “Ведущие научные школы РФ” (грант № НШ-1676.2008.1).

© ИВТ СО РАН, 2009.

Таким образом, чтобы извлечь таблицы из документов, прежде всего необходимо их обнаружить в этих документах. Существующие методы обнаружения таблиц ориентируются на определенные форматы документов (как правило, это растровые изображения, ASCII-текст или HTML). В то же время при извлечении таблиц из документов в качестве представления входных данных можно использовать один из обменных форматов, например, PostScript [5], PDF [6] или EMF [7]. Эти обменные форматы более информативны по сравнению с растровыми изображениями и ASCII-текстом. Кроме текста и графики, они содержат шрифтовые метрики выводимого текста, а также информацию о порядке вывода этого текста на печать. Эта полезная информация может применяться для более эффективного и аккуратного обнаружения таблиц. Извлекать таблицы из PDF предлагается в работе [8], причем ее авторы отмечают, что им неизвестны другие методы извлечения таблиц из PDF. В работе [9] указывается возможность использования формата PostScript в качестве представления входных данных, но при этом не рассматривается сам процесс извлечения информации из PostScript.

В отличие от других обменных форматов EMF может интерпретироваться с помощью стандартных функций GDI API [7] (часть Windows API). Это делает обработку EMF достаточно простой и доступной. При этом документы различных форматов (например, DOC, XLS, PDF, ASCII-текст, HTML) могут быть напечатаны в метафайлы EMF. В настоящей работе предлагается эвристический метод обнаружения таблиц, ориентированный на метафайлы EMF. При этом предполагается, что таблицы в документах, напечатанных в метафайлы, не являются растровыми включениями. Стоит отметить, что в указанных обзорах нет ссылок на работы, в которых бы рассматривалась такая возможность. Авторам также неизвестно о существовании систем и методов извлечения таблиц, ориентированных на метафайлы.

1. Особенности рассматриваемых таблиц

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

Текстовая

разграфка

-___________l Охватывающий

намолочено і [ заголовок

зерна, с 1 га[ --

______т________+ столбца

Шапка

i 2004 i 2005 i 2004 i 2005<^— Вложенный

I______I_____I______I______- заголовок

Хозяйства всех категорий столбца

Охватывающий l заголовок іИ

Иркутская область

Хозяйства всех категорий

7250 9334 30 20

640 977 18 16

100 141 17 13

292 1309 25 28

799 942 16

61 98 20

414 722 19 20

заголовок

строки

Качугский район Куйтунский район

20

Перерез

Боковик

Иркутская область Братский район Заларинский район

3221 5237 23 24

159 488 19 17

56 121 18 22

V____________________________________

Рис. 1. Пример статистической таблицы

отчетах России, США, Евросоюза, Китая, Японии, а также в финансовых отчетах различных компаний. Проведенный авторами анализ публикуемых статистических таблиц показал, что они обладают достаточно схожей структурой, вне зависимости от национальных или корпоративных особенностей.

На рис. 1 показан пример статистической таблицы, где обозначены основные элементы ее структуры. Описываемый метод предполагает, что таблица может иметь шапку, боковик, тело, а также перерезы внутри тела. Заголовки столбцов таблицы могут образовывать иерархию, причем охватывающие заголовки всегда расположены над соответствующими им вложенными заголовками. Текст таблицы должен иметь горизонтальное расположение. Кроме того, предлагаемый метод учитывает, что таблица может иметь полную или частичную разграфку или не иметь ее вовсе. При этом разграфка таблицы может быть образована как графическими примитивами (линиями, прямоугольниками), так и символами псевдографики и некоторыми другими символами, в последнем случае будем говорить, что таблица имеет текстовую разграфку.

2. Получение данных из метафайлов

Прежде всего электронные документы необходимо преобразовать в метафайлы. Для этого можно использовать виртуальный ЕМЕ-принтер (например, свободно распространяемый проект ЕМЕРп^ег1). Также для некоторых форматов (например, РБЕ) можно использовать специализированные конвертеры. Каждый полученный таким образом метафайл соответствует одной странице исходного документа. Полученные метафайлы обрабатываются с помощью функций ОВ1. В метафайлах инструкциям вывода текста соответствуют записи типов ЕМИ_ЕХТТЕХТОиТШ и ЕМИ_8МАЬЬТЕХТОиТ (существуют и другие типы записей ЕМЕ для вывода текста, но на практике они не применяются). Инструкциям вывода линеек часто соответствуют записи типа ЕМИ_В1ТВЕТ. Указанные типы записей метафайлов описаны в МББХ [7], кроме недокументированного типа записей — ЕМК_8МАЬЬТЕХТОиТ. С помощью контекста метафайла выполняется интерпретация данных из этих записей (определяются позиции вывода текста, межсимвольные расстояния, шрифтовые метрики, цвета фона и текста) в соответствии с системами координат и режимами отображения, используемыми в метафайле. При этом игнорируются записи, соответствующие инструкциям, которые выводят текст вне области страницы либо выводят текст с тем же цветом, что и цвет фона области, ограничивающей этот текст.

Стоит отметить, что в предлагаемом методе применяется прямоугольная система целочисленных координат, в которой ось X направлена слева направо, а ось У — сверху вниз. Кроме того, все рассматриваемые в данной работе ограничивающие прямоугольники задаются координатами своих сторон, при этом если некоторый рассматриваемый объект о имеет ограничивающий прямоугольник, то функции х^ = хДо), у* = у*(о), хг = хг(о) и уь = уь(о) определяют координаты сторон этого прямоугольника: левой, верхней, правой и нижней соответственно.

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

хЬМр://еш£ргіп1ег. sourceforge.net

Внешний зазор

Внутренний зазор

Ограничивающий прямоугольник ч

Надстрочный

инт ГдСе! У

«-----М---М--М---М---+

Подстрочный

интервал

Межсимвольные интервалы

Рис. 2. Пример текстового элемента.

верку е = (С,Б,М,Я), где С = {с1 ...сп}, п Е N — упорядоченный набор непробельных символов; Б = |в1 ...зп} — упорядоченный набор межсимвольных интервалов; М = {ше1,шц,ma,md,mfp,msi} — набор текстовых метрик: ше1 = ше1 (е) — внешний зазор, та = ши(е) — внутренний зазор, ша = ша(е) — надстрочный интервал, та = ша(е) — подстрочный интервал, Шfp = Шfp(e) — шаг шрифта (фиксированный или переменный), ш^ = ш^(е) — межсимвольный интервал пробела; Я — ограничивающий прямоугольник.

Дополнительно определим, что 'ш(е) = хг(е) — Хг(е) — ширина ограничивающего прямоугольника текстового элемента е, а к(е) = уь(е) — Уь(е) — высота этого прямоугольни-

п ___

ка. Причем 'ш(е) = ^2 ^, где в,1, г = 1, п, — полностью составляют набор межсимвольных

i=1

интервалов текстового элемента е, а к(е) = ша(е) — шц(е). На рис. 2 показан текстовой элемент и некоторые его метрики.

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

3. Предобработка полученных данных

На рис. 1 шапка таблицы ограничена текстовой разграфкой. Такая разграфка часто используется в таблицах, являющихся АБСИ-текстом. Поскольку такая разграфка является текстом, ее наличие может затруднить обнаружение и извлечение таблиц. В предлагаемом методе в процессе предобработки выполняется разделение текстовой разграфки и остального текста. Из текстовых элементов исключаются символы, составляющие текстовую разграфку. При этом текстовые элементы, содержащие такие символы, могут быть изменены, разделены на несколько или полностью удалены, а исключенная текстовая разграфка преобразуется в линейки, которые объединяются с остальной, не текстовой, разграфкой страницы. На рис. 3 показан пример разделения текстовой разграфки и текста на фрагменте страницы.

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

т-----------------т-------------------, т------------------т-------------------, т-------------------т-------------------,

!Намолочено !Намолочено ! |Намолочено \Намолочено ! !Намолочено !Намолочено !

!зерна, всего |зерна, с 1 га| |зерна, всего |зерна, с 1 га| |зерна, всего |зерна, с 1 га|

+--------т--------+---------т--------+ +---------т-------+---------т--------+ +---------т-------+---------т--------+

1 1 1 1 І І І І І І І І I 1 I

і 2004 і 2005 і 2004 і 2005 І і 2004 І 2005 і 2004 І 2005 і і 2004 і 2005 І 2004 і 2005 І

І І І І І Щ Щ ЦІ Щ ЦІ І 1 І 1 І

і і і і і Ш ш П П П і і і і і

а б в

Рис. 3. Пример разделения текстовой разграфки и текста: а — фрагмент таблицы с текстовой разграфкой; б — на фрагменте выделены текстовые элементы; в — на фрагменте выделены текстовые элементы, оставшиеся после разделения текста и текстовой разграфки

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

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

4. Существующие методы обнаружения таблиц

В литературе упоминается несколько методов обнаружения таблиц, которые используют структуры, схожие с рассматриваемыми в данной работе текстовыми элементами. Такие структуры соответствуют отдельным словам и имеют ограничивающие прямоугольники (wbb). К таким методам авторы обзора [1] относят рассматриваемые в работах [10-12] (метод из [11] описывается также в работе [13]). Кроме того, к таким методам можно отнести рассмотренные в работах [8, 14]. Методы [10-12, 14] ориентируются на растровые изображения, методы [10, 11, 13] годятся и для ASCII-текста.

Авторы работы [12] прибегают к поиску в тексте документа ключевых слов (например, “Table”), чтобы обнаружить строки текста, в которых расположены таблицы. Стоит отметить, что отсутствие таких ключевых слов в начале таблиц может отрицательно повлиять на результаты обнаружения таблиц методом [12]. В работе [10] для обнаружения таблиц решается оптимизационная задача поиска наилучшего разбиения строк текста на последовательности, которые являются либо таблицами, либо просто текстом. Из того, как в данном методе строятся оценки корреляции строк, можно сделать вывод, что многие таблицы, имеющие в шапках многоуровневую иерархию заголовков столбцов, будут обнаруживаться неточно. Более того, данный подход, как и метод из [12], не учитывает, что внутри таблицы может применяться вертикальное выравнивание текста по середине высоты отдельных ячеек, — в таких случаях обнаружение таблиц этими методами может выполняться неточно. В работах [11, 13] предлагается

подход к кластеризации слов снизу вверх и выбору кластеров, составляющих таблицы. Недостатки этого подхода обсуждаются в работе [14].

В работе [14] отдельные слова рассматриваются как компоненты, для которых определены ограничивающие прямоугольники. Эти компоненты предлагается объединять в структуры, называемые в работе [14] word blobs, в том случае, если они расположены на одной строке текста и горизонтальное расстояние промежутка между ними не превышает определенного порога. Если на странице использовался только один шрифт, то значение этого порога скорее всего будет приближено к интервалу одного пробела. В результате, строка текста наверняка будет содержать единственную структуру word blobs, а строка таблицы — несколько таких структур. Это позволяет в дальнейшем достаточно просто идентифицировать строки таблицы и отличать их от строк текста. Изложенная в работе [14] идея — об объединении отдельных близко расположенных в одной строке слов в более крупные структуры — заимствуется нашим методом. Стоит отметить, что в дальнейшем процессе обнаружения метод [14] использует слишком упрощенные предположения о нескольких таблицах на странице: предполагается, что между таблицами должны располагаться пустые строки или строки текста. В противном случае обнаружение будет выполняться неточно. На точность обнаружения в этом методе также могут повлиять строки с выравниванием текста по ширине.

5. Сегментация страницы

5.1. Формирование текстовых блоков

На этой стадии текстовые элементы группируются в более крупные структуры, которые являются некоторым аналогом структур word blobs из метода [14]. Будем называть эти структуры текстовыми блоками. Определим текстовой блок как пару b = (E,R), где E = {в\,... , en}, n £ N, — набор текстовых элементов; R — ограничивающий прямоугольник. Причем, ограничивающий прямоугольник такого текстового блока вычисляется следующим образом:

R = (да {х1(е)}> да {yt(ei)}^{xr(ei)}, шох{vb(ei)}).

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

Vl^i^n l^i^n l^i^n l^i^n /

Пусть e — текстовой элемент. Определим для него две прямоугольные области: Atop(e) — вокруг вершины в правом верхнем углу его ограничивающего прямоугольника текстового элемента e, Abottom(e) — вокруг вершины в правом нижнем углу этого прямоугольника, — следующим образом:

Atop(e) = (Xr(e) - Vi, yt(e) - hv2, Xr(e)+ msi(e)c, yb(e) - hv3),

Abottom(e) = (Xr(e) - Vi, yt(e) + hv3, Xr(e) + msi(e)c, y,(e) + hv2),

где vi: vi £ R и 0 ^ vi < w(e) (по умолчанию vi = 0); v2: v2 £ R и 0 ^ v2 ^ 1 (по умолчанию v2 = 0, 7); v3: v3 £ R и 0 ^ v3 ^ 1 (по умолчанию v3 = 0,1) — задаваемые пользо-

вателем параметры, которые настраивают размеры и расположение соответствующих областей Atop(e) и Abottom(e); величина с выбирается в зависимости от шага шрифта, зафиксированного в текстовом элементе: с = 1, если mfp(e) = 0, и с = 2, если mfp(e) = 1 (выбор значения c может быть настроен иначе). На рис. 4 эти прямоугольные области выделены штриховкой.

Кроме того, определим прямоугольную область промежутка между двумя текстовыми элементами — ег, е^: XI (ег) < XI (е^), следующим образом:

№(вг,ву)= (хг(вг), тт{уг(ег),уг(вз)}, хг(е^), тах{уь(ег),уь(е^)^.

Обозначим множество линеек, расположенных на странице, как Кра. Будем считать, что два текстовых элемента ег, ej: х\(ег) < х\(е^), принадлежат одному текстовому блоку, если выполняется следующее условие:

(х (ез),Уі(еі)) Є Лор(еі),

(х(ез),Уь(еі)) Є А Ьо^ош (еі) Ч

г П Ш(ві, вэ) = 0 V г : г Є Ярд.

(1)

На рис. 4 показаны два случая расположения ограничивающих прямоугольников двух текстовых элементов ег и ej на странице.

Используя условие (1), формируем текстовые блоки. Текстовые элементы, для которых не существует ни одной пары, удовлетворяющей условию (1), образуют отдельные текстовые блоки. Множество текстовых элементов страницы обрабатывается до тех пор,

Всего

Ъ)ЖЪ))

*°р

(е^))

Всего ш

*- Ьоиот .... ( ^/ ( ('] ) : УЬ ( ) )

б

Рис. 4. Примеры расположения двух текстовых элементов на странице: а — текстовые элементы принадлежат одному текстовому блоку; б — текстовые элементы принадлежат двум разным текстовым блокам

Рис. 5. Пример формирования текстовых блоков: а — исходная страница; б — ограничивающие прямоугольники текстовых элементов; в — ограничивающие прямоугольники текстовых блоков

пока для каждого текстового элемента не будет определен текстовой блок. На рис. 5 показан пример формирования текстовых блоков из текстовых элементов на одной странице.

В отличие от метода, описанного в работе [14], предлагаемый метод использует шрифтовые метрики для группировки слов, а также линии разграфки, если они есть. Это позволяет более аккуратно формировать текстовые блоки.

5.2. Формирование строк

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

Определим строку как тройку I = (В, О, Я), где В = {Ьі,... , Ьп}, п Є N — набор текстовых блоков; О = {д1,... ,дт}, т Є N — набор вертикальных промежутков; Я — ограничивающий прямоугольник.

Пусть Врд — множество всех текстовых блоков некоторой страницы. Пусть отрезок Ру(Ь) = \уг(Ь), Уь(Ь)] — проекция на ось У текстового блока Ь. Чтобы выделить на этой странице строки, прежде всего определяется разбиение множества Врд на подмножества Ві,... , Вп, п Є N Ві и • • • и Вп = Врд, так, что в каждом подмножестве все принадлежащие ему текстовые блоки находятся в транзитивном замыкании отношения: Ру (Ь) П Ру (Ь) = 0, Ь, Ь Є Врд. Будем считать, что каждое полученное подмножество Ві, і = 1,п, определяет набор текстовых блоков в отдельной строке. В результате на странице формируются строки, содержащие хотя бы по одному текстовому блоку. Далее на странице для каждой ее строки с соответствующим набором текстовых блоков В = {Ьі,... , Ьп}, п Є N определяется ограничивающий прямоугольник следующим образом:

Я = (Хі(Р), тіл {уг(Ьі)}, Х(р), тах {уь(Ьі)}) ,

\ і^і^п і^і^п /

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

Рис. 6. Пример расположения строк на странице: строки выделены своими ограничивающими прямоугольниками; вертикальные промежутки белого пространства выделены штриховкой

Рис. 7. Пример сегментации белого пространства строки: штриховкой выделены области, определенные как вертикальные промежутки; остальные прямоугольные области белого пространства не закрашены

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

Для определения вертикальных промежутков в строках используется алгоритм сегментации белого пространства строки. Алгоритм проходит по всем текстовым блокам строки, из вершин их ограничивающих прямоугольников протягиваются вертикальные линии вверх и вниз до тех пор, пока они не упрутся либо в ограничивающий прямоугольник другого текстового блока, либо в верхнюю или нижнюю границу этой строки. Далее все белое пространство этой строки делится на прямоугольные области, боковые стороны которых совпадают с проведенными вертикальными линиями, а верхняя и нижняя стороны проходят либо по верхним или нижним сторонам ограничивающих прямоугольников текстовых блоков, либо по верхней или нижней границе этой строки. При этом полученные прямоугольные области белого пространства строки не пересекаются между собой. Далее среди них выбираются вертикальные промежутки так, что проекция на ось У любого вертикального промежутка не перекрывается полностью проекцией на ось У любой из соседних областей белого пространства, т. е. областей, между которыми нет текстовых блоков. На рис. 7 показан результат сегментации белого пространства строки.

Все полученные строки составляют множество строк страницы, причем внутри этого множества строки упорядочены в соответствии со своим расположением на странице (сверху вниз). Следующая задача сегментации страницы на строки состоит в определении пустых строк (т. е. строк, не содержащих ни одного текстового блока), которые могут располагаться между непустыми строками. Количество строк, расположенных между двумя соседними непустыми строками (т. е. строками, между которыми нет других непустых строк), — їк и їи+ґ- Уь(їк) < Уі(1к+і), вычисляется следующим образом:

(:Уі(1к+і) - Уь(їк))I{тех(їк) + та(їк) + та(їк)),

где теі(їк), та(їк) и та(їк) — средние значения, соответственно, внешнего зазора, надстрочного и подстрочного интервалов текстовых элементов, содержащихся в текстовых блоках строки їк. Полученные таким образом пустые строки добавляются в множество строк страницы, не нарушая при этом его упорядоченности.

5.3. Формирование табличных регионов

Рассматривая документы, включающие таблицы, можно заметить, что почти каждая строка любой таблицы охватывает по нескольку текстовых блоков (даже самая простая таблица содержит хотя бы одну такую строку). Кроме того, подряд идущие строки, составляющие одну таблицу, коррелируют друг с другом по расположению своих вертикальных промежутков. В данном разделе описывается анализ связности строк

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

Определим табличный регион как тройку Ь = (Ь,0, Я), где Ь = {1\,... ,1п}, п £ N — упорядоченный (сверху вниз по расположению на странице) набор строк, которые охватывает табличный регион; О = {д\,... ,дт}, т £ N — набор вертикальных промежутков белого пространства; Я — ограничивающий прямоугольник.

Причем, ограничивающий прямоугольник этого табличного региона вычисляется следующим образом: Я = (хг(р), Уг(1\), хг(р),Уь(1п)), где р — ограничивающий прямоугольник страницы, определенный в предыдущем разделе.

Для обнаружения последовательностей строк, определяющих текстовые регионы, используется несколько эвристик. Прежде всего для того, чтобы строка I с набором вертикальных промежутков 0(1) = {д\,...,дп}, п £ N являлась строкой табличного региона, она должна удовлетворять трем следующим условиям.

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

\G(l)\ > 2.

(2)

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

Уь(g) = уь(1) у g : g є G(l).

(З)

В-третьих, ширина белого пространства строки табличного региона относительно всей ширины данной строки не должна превышать заранее определенной пороговой величины, т. е.

1 ^

(жг(ді) - Хі(ді)) ^ ш,

xr(l) - xi(l)

(4)

где величина ь4: у4 £ К и 0 < у4 < 1 (по умолчанию у4 = 0,1) определяет минимально допустимую ширину белого пространства строки табличного региона.

I

§COUNTRY

I________

(METRIC TONS AND $1000)

January - July

Quantity Value !$$$$$ Quantity Value yw

2004 $$$$$; 2005 ^ 2004 2005 Щ^2004 $$$$£ 2005 $$$$$ 2004 $$$$£ 2005

July

Value

^ Germany

^Belgium-Luxembourg^^js 9,505 $ Netherlands

О

S France________

£$11,662 ^$$10,684 ^$$86,690$

European Union

^ 81,784

5,284 !$$$ 67,820 $$$37,930 4,875 §$$21,429^ 39,694 ч 5,612^ 3,030 §^15,889^: 12,923

§$1,118 ' 27

^ 415^§6,525 ^$$$$1,685

146^^ 648^

Other Markets

§ Japan

^ Russian Federation \; Switzerland_________

:$$$ 13,352 ^$9,117 ' 6,406

1,902

* 550^$$$ 313 § 5,123 ^ V

878 ££

ч 90,901 ^ 52,604; 8,801 $$§29,026 47,781 :

4NXXN 2,899 £^13,713 $^21,090 $$

107 ; 1,173

447$

Рис. 8. Пример расположения табличных регионов на странице: табличные регионы выделены прямоугольными рамками; вертикальные промежутки табличных регионов выделены штриховкой

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

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

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

Тогда последовательность строк табличного региона L(t) = {li}... ,ln} должна удовлетворять следующему условию:

где у5: у5 Є К и у5 ^ 0 — пороговая величина, которая задает минимально допустимое пересечение проекций на ось X двух заданных вертикальных промежутков (по умолчанию определяется как среднее значение среди интервалов пробелов текстовых элементов, принадлежащих текстовым блокам данных строк Іі и ^).

Пусть {1р,... , Ір+д} — последовательность подряд идущих строк страницы, удовлетворяющая условию (5), причем:

если р > 1, то {Ір-і, Ір,... , Ір+д} не удовлетворяет условию (5); если р + д < п, то {Ір,... , Ір+д, Ір+д+і} не удовлетворяет условию (5).

Тогда будем считать, что последовательность {Ір,... ,Ір+д} определяет набор строк табличного региона.

Строки страницы проходятся сверху вниз в поиске последовательностей строк, определяющих табличные регионы. Как только обнаружена такая последовательность, ее строки исключаются из дальнейшего поиска. Таким образом, ограничивающие прямоугольники полученных табличных регионов не будут пересекаться. Далее для каждого табличного региона формируется множество его вертикальных промежутков по следующей схеме. Будем обозначать последовательность строк {Ір,... ,Ір+я} как І[р,р + д]. Если при этом последовательность І[р,р + д] удовлетворяет условию (5), то множество вертикальных промежутков, проходящих через последовательность, будем обозначать как С(1[р,'р + д]). Определим, что

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

Ltа,ь = {l : l Є Lpg и l удовлетворяет условиям (2)-(4)j.

Gtop(l) = {g : g Є G(l) и yt(g) = yt(l)].

wp(g,g) = min{xrig),xr(g)} - max{xi(g), xi(g)}.

(Б)

У г : г = І,п — І, У j : j = г + І,п, У g Є Gilі) З g Є Gtopilj) : wpig, g) ^ vs,

G

(l[p

]

Gilp),

г = p;

app[G{l[p, г — І^, Gil,)), г = p + І^ + q.

Функция app{G{l[p,г — І^,Gili)) формирует множество с(/м) по следующей схеме.

множества определяется подмножество вертикальных промежутков из G(l,), у которых верхняя граница совпадает с верхней границей ограничивающего прямоугольника строки l, и пересечения проекций на ось X каждого из них с проекцией вертикального промежутка gj превышают порог, определенный в условии (5):

G(gj,li) = {д : g € Gtop(li) и wp(g,g) ^ V5}

(так как при этом требуется выполнение условия (5), то G(gj ,li) = 0). Пусть для gj получено следующее подмножество G(gj,l,) = {g1}...,gm], m € N, тогда далее строится множество вертикальных промежутков, которые должны заменить gj в G{l[p,i]) следующим образом:

G'(gj,li) = {gk}, k =l,m где gk = imax{l(gj), l(gk)},t(gj), min{r(gj),r(gk)},b(hЙ.

В результате выполнения данной процедуры для всех gj получим:

n n

g(*m) = (U G’(gj •«)u (G(«/LJG(gj л,]).

j=i j=i

Если l[p,p + q] является последовательностью строк табличного региона t, то будем считать, что G{l[p,rp + q]) составляет его набор вертикальных промежутков.

Полученные табличные регионы могут быть таблицами или частями таблиц. Но также они могут являться текстом (например, текстом с выравниванием по ширине и достаточно разряженным пространством между словами), или колонтитулами страниц с табличной компоновкой, или текстовыми подписями графиков.

5.4. Выделение границ таблиц

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

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

Пусть t и t: yt(t) < Vt(t) — два табличных региона с соответствующими наборами

вертикальных промежутков G(t) и G(t). Для вертикальных промежутков g: g € G(t)

определим функцию

gcorr(g t) = если 3 g: g € G(t) и wp(g, g ) ^ v6;

0, в противном случае,

где у6 : у6 £ Z и у6 ^ 0 выполняет функцию, аналогичную пороговой величине у5, но с другим определением по умолчанию (по умолчанию определяется как среднее значение среди интервалов пробелов текстовых элементов, принадлежащих текстовым блокам строк табличного региона I).

Кроме того, пусть 0(Ь) = {дх,... , дп}, п £ N определим функцию

п

Ьсотт(1,1) = дсотг(дг,1).

г=1

Будем считать, что два табличных региона Ь и I являются связными, если каждая строка, расположенная между ними, удовлетворяет условию (4), а количество подряд идущих пустых строк между ними не превышает пороговой величины у7: у7 £ Z и у7 ^ 0 (по умолчанию у7 = 2) и выполняется следующее условие:

Ьсотт(Ь,Ь)/10(Ь)1 ^ у8, (6)

где величина у8: у8 £ К и 0 < у8 ^ 1 (по умолчанию у8 = 0, 8).

Будем считать, что последовательность табличных регионов

гр,...,гр+д : уь(и) <уг(и+г), г = р,р + д — 1, р,д £ N

в совокупности со строками, расположенными между ними, составляет таблицу, если

в каждой паре (Ь ,, Ь+у), г = р,р + д — 1, ] = р + 1,р + д табличные регионы являются

связными и существуют две таких пары (Ь^-1,Ьк), (Ьк,Ьр+д+1), к £ [р,р + д], в которых табличные регионы не являются связными.

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

OJSC ‘AEROFLOT - RUSSIAN AIRLINES"

(ЛоиюяЫЬ пошт of US Dolbrt

а

в

Рис. 9. Результаты применения предлагаемого метода обнаружения таблиц: прямоугольными рамками выделены области страниц, определенные как таблицы

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

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

6. Экспериментальные результаты

Экспериментальная оценка результатов использования предлагаемого метода проводилась в соответствии с подходом, предложенным в работе [10]. Таблица считается корректно обнаруженной, если по крайней мере корректно обнаружено ее тело, т. е. каждая строка в теле таблицы идентифицирована как часть данной таблицы. При этом не допускается, чтобы в качестве строк тела данной таблицы были идентифицированы какие-либо строки, не принадлежащие данной таблице. В этом подходе используются две оценки эффективности метода обнаружения: точность (precision) обнаружения — процент количества корректно обнаруженных таблиц к общему количеству обнаруженных таблиц; и полнота (recall) обнаружения — процент количества корректно обнаруженных таблиц к общему числу существующих таблиц.

Экспериментальные данные были составлены из статистических отчетов, публикуемых Росстатом2 и Территориальным управлением Росстата по Иркутской области3; из государственных статистических отчетов США4, Евросоюза5, Японии6, а также из финансовых отчетов различных компаний7. Указанные документы были представленны в форматах: PDF, DOC, XLS, HTML. Всего было обработано 345 страниц из указанных документов. Каждая страница содержала от одной до четырех таблиц. Всего документы содержали 440 таблиц, из них 134 имели текстовую разграфку. Кроме того, эти страницы содержали текст (включая текст с выравниванием по ширине) верхние и нижние колонтитулы, имеющие табличную форму, графики и диаграммы с текстовыми подписями. В таблице приведены измерения точности и полноты обнаружения для каждого формата.

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

2“Регионы России, социально-экономические показатели 2002” и др.

3“Сельское хозяйство Иркутской области 1993-1998” и др.

4“Tobacco: World Markets and Trade 2005” и другие отчеты, доступные по адресу www.fedstats.gov.

5“Eurostat yearbook 2006-07”.

6“Statistical Handbook of Japan 2007’.

7“Boeing Co., Annual Report 2006”, “OJSC AEROFLOT—RUSSIAN AIRLINES, Consolidated Financial Statements For the Year Ended December 31, 2006”, “ОАО АК ТРАНСНЕФТЬ. Консолидированная финансовая отчетность за год, закончившийся 31 декабря 2006 года” и др.

Точность и полнота обнаружения

Формат Количество таблиц Точность, % Полнота, %

PDF 132 В4.1 96.2

DOC 24В В0.9 91.9

XLS 45 93.0 ВВ.В

HTML 15 В7.5 93.3

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

Заключение

Статистические таблицы имеют существенное сходство в структуре расположения своих компонентов. Это сходство позволило сделать некоторые предположения о таких таблицах и сформулировать эвристики, используемые предлагаемым методом обнаружения таблиц. Использование метафайлов в качестве источника данных в предлагаемом методе позволяет применить этот метод к документам, представленным в разных форматах (например, PDF, DOC, XLS, HTML и др.).

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

Список литературы

[1] Silva A.C., Jorge A.M., Torgo L. Design of an end-to-end method to extract information from tables // Intern. J. on Document Analysis and Recognition. 2006. Vol. 8, N 2. P. 144-171.

[2] Embley D.W., Hurst M., Lopresti D., Nagy G. Table-processing paradigms: a research survey // Intern. J. on Document Analysis and Recognition. 2006. Vol. 8, N 2. P. 66-86.

[3] Lopresti D., Nagy G. A tabular survey of automated table processing // Lecture Notes in Computer Science. Springer. 2000. Vol. 1941. P. 93-120.

[4] Zanibbi R., Blostein D., Cordy J.R. A survey of table recognition: Models, observations, transformations, and inferences // Intern. J. on Document Analysis and Recognition. 2004. Vol. 7, N 1. P. 1-16.

[5] PostScript Language Reference, Third Edition // Addison-Wesley, 1999.

[6] PDF Reference. Fifth edition. Adobe.

[7] Microsoft Developer Network. http://msdn.microsoft.com

[8] Hassan Т., Baumgartner R. Table recognition and understanding from pdf files // Proc. 9th Intern. Conf. on Document Analysis and Recognition (ICDAR 2007), IEEE Computer Society. 2007. P. 1143-1147.

73

M. B. Bm^kob, r. M. PyxHHKOB, A. E. Xue.nbHOB, A. O. tturapoB

[9] Ramel J.-Y., Crucianu M., Vincent N., Faure C. Detection, extraction and representation of tables // Proc. 7th Intern. Conf. on Document Analysis and Recognition (ICDAR 2003), IEEE Computer Society. 2003. Vol. 2. P. 374-379.

[10] Hu J., Kashi R., Lopresti D., Wilfong G. Medium-independent table detection // Document Recognition and Retrieval VII. IS&T/SPIE Electronic Imaging. San Jose, 2000. P. 291-302.

[11] Kieninger T. Table structure recognition based on robust block segmentation // Proc. Document Recognition V, IS&T/SPIE Electronic Imaging. 1998.

[12] Tupaj S., Shi Z., Chang C. H., Alam H. Extracting tabular information from text files // Tufts University, USA, Medford, 1996. http://citeseer.nj.nec.com

[13] Kieninger T., Dengel A. The T-Recs table recognition and analysis system // Lecture Notes in Computer Science. Springer. 1999. Vol. 1655. P. 255-270.

[14] Mandal S., Chowdhury S.P., Das A.K., Chanda B. A simple and effective table detection system from document images // Intern. J. on Document Analysis and Recognition. 2006. Vol. 8, N 2. P. 172-182.

nocmyuuAa e peda^uw 1 uk>a.h 2008 г.

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