5 Выделение табличной информации из файлов различных типов - Разработка средств автоматизации поиска структурированной информации в гетерогенной среде
В данной работе приложению необходимо извлекать таблицы из документов Word, Excel и HTML для дальнейшей обработки, поэтому встает задача создания алгоритмов для выделения табличных данных из соответствующих документов. Ниже описаны алгоритмы для работы с каждым из приведенных выше типов документов.
Выделение информации из таблиц в документах Excel
Для выделение табличных данных из документов Excel вначале необходимо выделить на листе часть с данными и далее выделить из нее заголовки.
Во-первых, необходимо проверить лист на пустоту. Для этого, используется стандартную функцию UsedRange объекта WorkSheet(Рабоичй лист) [9]. В случае, если UsedRange. Rows. Count и UsedRange. Columns. Count одновременно равны единице, то можно сделать вывод, что данный пустой. Ну, а далее, когда мы прошли проверку листа на пустоту, то необходимо выделить диапазон с данными.
Для решения данной задачи можно было бы использовать ту же самую функцию(UsedRange), которая выделяет диапазон используемых ячеек, но у нее есть один большой недостаток. Недостаток заключается в том, что используемой ячейкой считается не только заполненная ячейка, но и ячейка в которой когда-либо находились данные. К примеру, я ввел данные в ячейку А1, а далее удалил их из этой ячейки. Таким образом, данная функция вернет ячейку А1, несмотря на то, что на данный момент она пустая, так как ранее она использовалась. Таким образом, необходимо разработать собственный алгоритм для выделения данных с листа Excel.
Этапы выделения данных с листа Excel:
- 1. Найти одну непустую ячейку на листе. 2. От этой ячейки двигаться вверх, вниз, вправо, влево до тех пор, пока не встретится пустая ячейка(выделить диапазон ячеек). 3. Считать заголовки таблицы.
Ниже будет рассмотрен этап для выделения непустой ячейки. Во-первых, для выделения диапазона непустых ячеек необходимо вначале выделить одну непустую ячейку. Для этого будет использована стандартная функция в языке C# "UsedRange ".
Ниже будет рассмотрен алгоритм для выделения диапазона ячеек.
На вход нам попадает непустая ячейка из предыдущего этапа. После того, как найдена непустая ячейка приложение определяет диапазон этих данных. Для этого она начинает идти вверх, вниз, влево, вправо до тех пор, пока не встретит пустую ячейку. На выходе мы получаем диапазон ячеек.
Ниже будет рассмотрен этап выделения заголовков.
На вход нам попадает диапазон ячеек с данными из предыдущего этапа. После того, как диапазон выделен, приложение перемещается на самую верхнюю заполненную строчку и считывает заголовки данной таблицы слева направо. Если количество считанных заголовков меньше или равно ширине диапазона минус 4, то приложение переходит к следующей строке с данными и формирует новый уровень заголовков. И так до тех пор, пока количество непустых ячеек в ряде будет больше или равно Таким образом, после проведения всех этих манипуляций мы получаем, список заголовков таблицы или null, если лист пуст.
Ниже будет рассмотрен пример работы алгоритма.
Далее приложение начинает искать в нем первую непустую ячейку. С помощью функции "UsedCells" можно получить доступ к верхней левой заполненной ячейке или получить пустую ячейку, если лист пуст.
Далее из ячейки C4 программа начнет двигаться вверх, вниз, влево, вправо до тех пор пока не встретит пустую ячейку или не дойдет до конца листа.
Так как у нас количество заголовков в первой строке больше или равно ширине диапазона минус 4(14>14-4), то перехода к считыванию следующей строки не будет. Таким образом, модель таблицы будет состоять только из одного уровня заголовков, в который будут входить следующие заголовки:
- - Хозяева. - Гости. - Тур. - Месяц. - Место. - Id команды. - Класс тренера. - 1. - Бюджет. - Голов забито. - Голов пропущено. - Голов забито игру назад. - Голов пропущено игру назад.
Выделение информации из таблиц в документах WORD
С WORD все обстоит проще. DLL для работы с документами WORD дает широкие возможности для различных действий на основе этих документов.
В данной библиотеке все таблицы документа хранятся в свойстве WordDocument. Tables и поэтому доступ к этой таблице сводится к тому, что необходимо просто указать индекс интересующей таблицы [10]. К примеру, строка WordDocument. Tables[1] в результате вернет ссылку на первую таблицу в документе.
Таким образом, алгоритм извлечения таблиц сводится к следующему. Во-первых запрашивается таблица из массива WordDocument. Tables[1] и далее идет проход по первой строке этой таблицы с целью извлечения ее заголовков.
Единственной проблемой может быть, когда несколько ячеек заголовка слиты воедино, но эта ситуация обработана с помощью блока try-catch.
Таким образом, результатом обработки таблицы 1 будет список заголовков таблицы:
- - Хозяева. - Гости. - Работа. - Id. - Место в составе.
Выделение информации из таблиц в документах HTML
На входе в приложение мы получаем HTML файл или ссылку на документ формате HTML. Для его парсинга, а именно извлечения данных из тэгов будет использована dll библиотека "HtmlAgilityPack", которая работает с языком Xpath.
Ниже приведены этапы работы данного алгоритма:
- 1. Выделить все таблицы из документа 2. Для каждой таблицы, проверить наличие внутренних таблиц в этих таблицах. Те, таблицы, которые имеют внутренние таблицы отбросить. 3. Из оставшихся от предыдущего этапа оставить только те таблицы, у которых количество ячеек больше 5 и, у которых хотя бы 50% содержат числовые данные.
Чтобы найти таблицы нужно странице обратиться с помощью языка Xpath. Запрос будет выглядеть следующим образом:
HtmlNodeCollection tables = d. DocumentNode. SelectNodes("//table");
Данный код означает, что из документа берутся все DOM-узлы с тэгом "table", то есть таблицей. Итого у нас есть коллекция кодов всех таблиц, которые имеются на данной странице.
Таблицы на страницах могут быть 2 видов: информационные и те, которые используются для разметки страницы. Таким образом, необходимо оставить только те таблицы, которые несут информационную нагрузку.
Для этого в цикле обращаемся к каждой таблице из коллекции и начинаем определять ее тип.
Чтобы найти таблицы с данными, а не таблицы, которые связаны с разметкой, нам нужно найти только внутренние таблицы, а потом уже, проанализировав их, определить подходят ли они под данный запрос или нет. Внутренними таблицами в данном случае являются таблицы, которые не содержат внутри себя других таблиц.
Для реализации проверки таблицы - является она внутренней или нет - мы будем искать в коде таблицы фрагмент "<table", открывающий тэг таблицы, который говорит о том, что внутри таблицы имеется еще одна таблица. Если мы обнаруживаем данный фрагмент, то это значит, что таблица не внутренняя, и мы ее отбрасываем.
Далее, если этот проверка таблицей пройдена, то мы к его коду проводим два запроса с помощью синтаксиса Xpath, для получения коллекции рядов таблицы и ячеек таблицы для их дальнейшей обработки.
Проведем следующую проверку таблицы на то, что в ней имеется хотя бы один ряд и ячейка, потому что могут быть такие ситуации, что таблица окажется совершенно пустой.
Если эта проверка пройдена, то проверим таблицу на количество ячеек. В данной работе было определено, что если в таблице менее 6 ячеек, то мы их отсекаем.
Далее необходимо обойти все ячейки, кроме первого ряда, и посчитать количество ячеек, в которых представлены числовые данные. Если количество таких ячеек будет представлять 50 и более процентов от количества всех ячеек, мы выделяем из данной таблицы заголовки необходимые нам для дальнейшего анализа. Далее на основе заголовков будет строиться модель таблицы для дальнейшей работы с ней.
Похожие статьи
-
Для сравнения двух таблиц на соответствие необходимо выделить некоторые характеристики, с помощью которых можно описать таблицу. В данной работе такими...
-
В данной главе будут рассматриваться алгоритмы, которые необходимо разработать для решения задач, поставленных в данной работе. Во-первых, как уже было...
-
Существует множество средств решения задачи поиска, однако эта задача очень широка и решается в абсолютно разных условиях с различными требованиями к...
-
Введение - Разработка средств автоматизации поиска структурированной информации в гетерогенной среде
Объем информации в Интернет растет c каждым днем, а соответственно и растут потребности пользователей в поиске информации, которая может быть...
-
Данный алгоритм будет использоваться в алгоритме сопоставления двух таблиц. На вход алгоритму подается два списка слов из двух заголовков. Первым...
-
Данный алгоритм будет использоваться в алгоритме сопоставления двух таблиц. На вход алгоритму подается два набора заголовков, которые взяты из уровней...
-
Парсинг интернет страниц на сегодняшний день очень широко распространенная задача. Примером может являться ситуация, когда пользователю необходимо...
-
Как уже было написано во введении, одной главных задач данной работы является разработка алгоритма сравнения двух таблиц на их соответствие. На вход в...
-
Для измерения уровня концентрации (показатель рН) ионов водорода в растворе или жидкости используют pH метр. Его принцип действия основывается на...
-
Виды патентного поиска - Основы патентоведения
При всем многообразии целей патентного поиска его осуществление сводится всего к нескольким основным и вспомогательным процедурам. В этом смысле...
-
ИЗГОТОВЛЕНИЕ ПЕЧКИ - Разработка аппарата холодного копчения
Печка, детали которой приведены на рис. 2, -- производитель дыма для копчения. Рис. 2. Печка Учтите, что дым необходимо получить в результате...
-
В схеме (Приложение А) для поддержания температуры смеси в аппарате в диапазоне 130±10°С и конденсата сокового пара, поступающего в аппарат, в диапазоне...
-
Классификация средств измерения температуры Классификация приборов для измерения температуры по принципу действия изображена на рисунке 3.3. Рисунок 3.3...
-
Для измерения давления или разрежения в технологических агрегатах, сосудах или трубопроводах отечественная промышленность выпускает две группы приборов:...
-
Технология - это лесенка, ведущая к намеченной цели. Современный изобретатель фильтрует варианты, отбрасывая то, что кажется ему неудачным. Увеличение...
-
Техника безопасности на предприятии - это совокупность мероприятий организационного и технического характера, которые направлены на предотвращение на...
-
Интенсивное развитие радиоэлектронной техники обусловило постоянное присутствие повышенного уровня электромагнитного излучения (ЭМИ) в окружающей среде...
-
Настройка контроллера и управление контроллером осуществляются через персональный или карманный компьютер при помощи программы "AK2-Service Tool"....
-
Характеристика горбуши - Разработка ассортимента и технологии блюд и изделий из рыбы
Горбуша - одна из популярных промышленных рыб, ее еще называют розовым лососем. Ценится продукт за довольно вкусное мясо и деликатесную икру. Горбуша,...
-
Характеристика сырья и вспомогательных материалов Для производства сушеных белых кореньев используются следующие виды сырья: коренья петрушки, сельдерея,...
-
Планирование технической подготовки производства анализатора спектра сигнала с построением календарного графика выполнения работ Техническая подготовка...
-
Цели метода конструирование, в конечном счете, следующие: - получение более лучших и более экономичных изделий; - рационализация и создание предпосылки...
-
Для отделки платьев из трикотажа используют бейку. Ассортимент отделочной бейки включает ряд различный по ширине (10, 15, 20, 30 и 80мм), гладкокрашеные...
-
В данном случае нам потребуются 2 прибора для измерения температуры: в аппарате (контур 2) в диапазоне 130±10°С и конденсата сокового пара, поступающего...
-
CuneiForm (англ. Клинопись) -- свободно распространяемая открытая система оптического распознавания текстов российской компании Cognitive Technologies....
-
На рисунке 2.2 представлена блок-схема экономической системы ПК "Шекснинский маслозавод", коэффициенты которой К1 и К2 являются отношением объема...
-
На основании таблицы загрузки зала и плана-меню количество блюд того или иного наименования за каждый час работы предприятия определяем по формуле: Nr =...
-
Электромагнитное излучение оказывает отрицательное влияние на организм человека, а также препятствует эффективной работе радиотехнического оборудования....
-
Расчет тока уставки группы №1. Установлена мощность ламп P1 = 8*100 =800 Вт. Рабочий ток I1 равняется: I1 = P1 / U = 800/ 220 =3,64 A Принимаем ток...
-
Общие сведения Патентная информация является опережающей научно-технической информацией и поэтому используется на различных стадиях научно-технических и...
-
После расчета трудоемкости и продолжительности отдельных стадий технической подготовки производства составим календарный (сетевой) график всей...
-
Основным технологическим средством автоматизации проектирования в машиностроении является цифровая ЭВМ, оперирующая с информацией, представленной в...
-
Расчет электрической функциональной схемы тактового генератора анализатора спектра, используемого для защиты информации В соответствии с заданием на...
-
Структурная схема предлагаемого дискретного анализатора частотного спектра сигнала, представленного в [7] как устройство для вычисления модулей...
-
Функциональная схема системы автоматизации приведена на рис. Э1. В дополнение к существующим подсистемам включены следующие: АСК концентрации входящей...
-
Средства измерений и контроля - Разработка системы поверки манометров
Техническое средство, предназначенное для измерений, имеющее нормированные метрологические характеристики, воспроизводящее и (или) хранящее единицу...
-
Технологическая схема зависит от вида и характера, вида и качества исходных материалов, от уровня развития техники (рис.1.). Рисунок 1- Технологическая...
-
Наибольшее распространение получили следующие типы расходомеров: Электромагнитные (магнитно-индукционные). Они основаны на использовании закона ЭМИ...
-
Для снижения вредного воздействия на окружающую среду при проектировании и эксплуатации измельчителя, выполняются природно-охранные мероприятия....
-
Общая информация В данном разделе подробнее рассмотрим объект исследования - ПК "Шекснинский маслозавод". Форма собственности - частная....
5 Выделение табличной информации из файлов различных типов - Разработка средств автоматизации поиска структурированной информации в гетерогенной среде