Создание инструмента научных исследований на основе XML: Проблемы и методология - [4]

Шрифт
Интервал

2. Процесс оцифровывания

Основные этапы процесса оцифровывания таковы:  

Выпуски Летописи в печатном виде без переплета отосыляются фирме-подрядчику для перевода в электронный формат. Страницы Летописи сканируются и сохраняются с параметрами 600 точек на дюйм (dpi) в двухцветном режиме TIFF образов.

    • По получении цифровых изображений страниц от подрядчика они подвергаются обработке системой Оптического Распознавания Символов (OCR) компании ABBYY(http://www.abbyy.com/). Программный продукт “Fine Reader” российской компании ABBYY, единственный из известных нам, способен распознавать русский (киррилический) текст. Тексты, распознанные при помощи процесса OCR, сохраняются как UTF-8 файлы Unicode. 

    • Файлы, содержащие выпуски Летописи, проходят через первоначальное ручное кодирование, включающее проставление символов элементов div1, div2 и div3 согласно подразделениям предметных заголовков. Необходмые атрибуты id каждого раздела на данном этапе игнорируются.

     • Файлы, содержание выпуски Летописи, подвергаются заказчиком обработке программой Java, позволяюцей автоматизировать основной объем работы по кодированию текста. Программа Java, названная LMU от английского выражения “Letopis MarkUp” («Кодирование Летописи»), делает следующее:

        1. Производит прекодировочную обработку по корректированию типичных ошибок OCR и форматирует текст с целью увеличения эффективности и надежности процесса кодирования.

        2. Проставляет правильные значения id атрибутов (в соответствии с годом выпуска, номером выпуска и положением предметного заголовка в иерархии) во всех элементах div1, div2 и div3.

        3. Заключает тысячи библиографических ссылок в символы элементов cit, проставляя автоматически правильные значения атрибутов cit/id.

        4. Внутри каждого элемента cit проставляет символ года публикации “year”.

      Программа кодирования Летописи, имеющая в своей основе Java, активно использует публичный источник gnu.regexp package (http://www.cacas.org/~wes/java/) для отражения регулярных выражений.

    • Далее файлы, содержащие выпуски Летописи, подвергаются заключительному ручному редактированию и проверке. На данном этапе исправляются ошибки, выявленные в результате проверки на соответствие требованиям XML, и прочие неточности.  

3. Проблемы

3.1. Слишком большой объем данных, слишком мало времени

Одной из основных проблем, с которыми мы столкнулись в ходе реализации проекта, является попытка перевода в цифровую форму громадного объема данных. Наша цель, повторюсь, перевод в электронный формат и кодирование выпусков Летописи за период в двадцать лет. Этот объем соответствует 1040 еженедельным выпускам Летописи, с более чем 250000 страниц и более чем тремя миллионами отдельных библиографических ссылок. Создание цифровых изображений страниц с печатных оригиналов и последующая обработка при помощи OCR прошли относительно гладко и безболезненно в первый год работы по гранту (октябрь 1999 — сентябрь 2000). Трудоемкий процесс кодирования и корректирования текста гораздо болезненнее и поглощает много времени.

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

3.1.1. Компромиссы DTD

Один из компромиссов, на которые мы были вынуждены пойти с целью увеличения производительности, было радикальное упрощение DTD, в особенности содержательной модели библиографической ссылки, заключемой в символы элемента cit (ссылка). Первоначально мы планировали использовать несколько других элементов внутри элемента cit. В частности элемент contributor с атрибутами type, обозначающими авторов, редакторов, иллюстраторов и т.д.; элемент title с атрибутами типа, обозначающими название статьи и журнала; элемент enumeration, в который предполагалось заключать год выпуска и номера страниц статьи в журнале; и элемент notes для прочей информации, содержащейся в библиографической ссылке. Ниже приводятся примеры вариантов кодирования одной и той же ссылки «до» и «после» - с использованием первоначального, более сложного варианта DTD, и нового, упрощенного.  


Рекомендуем почитать
Pro Git

Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.


Java 7

Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.


MFC и OpenGL

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


Симуляция частичной специализации

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


Обработка событий в С++

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


Питон — модули, пакеты, классы, экземпляры

Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.