Перевод в электронный формат, кодированные наборы шрифтов и система Оптического Распознавания Символов для многошрифтовых информационных ресурсов на примере “Летописи журнальных статей” - [2]

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

 На сегодняшний день наилучшим остающимся возможным вариантом кодирования многошрифтовых текстов является многобайтовая система кодирования символов Unicode. Unicode был задуман с целью разрешения проблемы “распространения множественных несопоставимых и неадекватных систем шрифтов”[2]. К сожалению в последующие с момента начала разработки стандарта Unicode годы были разработаны схемы кодирования, представляющие собой различные вариации на тему стандарта Unicode, такие как стандарт UTF (Unicode Transformation Format)-8, UTF-16 формат с обратным порядком байтов и UTF-16 с прямым порядком байтов. 

Использование Unicode для текстовых файлов, которые кодировались при помощи XML для “Летописи журнальных статей” предполагало принятие ряда других важных решений, таких как выбор редактора для кодирования и поисковой системы для обеспечения доступа к данным. Спецификация XML предполагает распознавание всеми XML синтаксическими анализаторами версий UTF-8 и UTF-16 стандарта Unicode[8]. Тем не менее комбинирование Unicode и XML постепенно развивается с использованием редакторов XML и XML поисковых систем. Кроме того, некоторые программные продукты используют UTF-8 в качестве дефолт- схемы Unicode, в то время как другие используют для этих целей тот или иной вид UTF-16.

В результате тестирования различных текстовых редакторов дружественных Unicode, а также редакторов XML, совместимых с Unicode, мы пришли к выводу, что Unicode создаваемый или редактируемый в одном редакторе далеко не всегда читаем в другом Unicode редакторе. Мы протестировали несколько редакторов Unicode, включая Yudit, Unicode редактор с открытым источником; Unipad, редактор Unicode, имеющий в своей основе Windows, Microsoft Word 2000 и WordPerfect 9. Те несколько редакторов, которые мы протестировали, являют собой несколько отличающиеся версии стандарта Unicode, или имеют странные заменители символов Unicode. Например, мы нашли один редактор, который автоматически превращает все русские угловые скобки, символизирующие цитату (кавычки Unicode U+00AB и U+00BB) в кавычки из латинского алфавита (Unicode U+0022) каждый раз когда файл сохраняется, закрывается и открывается снова. Таким образом, текст закодированный в Unicode для проекта “Летопись журнальных статей пожалуй создал столько же проблем, сколько решил. 

Тем не менее, использование многобайтового кодирования позволяет выйти за рамки 256-символьного лимита, установленного восьми-битовым кодированием. Шестнадцати-битовое кодирование позволяет кодировать до 65 536 символов, хотя версия 3.0 станадарта Unicode рассчитана на 49 194 символа [9]. Следует заметить, что одной из целей, заявленных Консорциумом Unicode является “устранение дублирования посредством объединения символов в рамках одного шрифта по языкам и придания единого кодового значения символам, идентичным по форме” [6]. Ключевым выражением в этом заявлении является “в рамках одного шрифта”. Символы, идентичные по форме, но категоризированные как принадлежащие разным шрифтам, рассматриваются как совершенно разные единицы с определенными шестнадцатизначными кодами Unicode. Таким образом, те символы Unicode, которые визуально похожи или идентичны, в различных шрифтах рассматриваются как совершенно разные символы Unicode. Например, в латинском алфавите заглавная буква “X” имеет шестнадцатизначный код Unicode U+0058, в греческом алфавите заглавная буква хи “X” имеет значение U+03A7, и в кириллице заглавная буква “X” имеет значение U+0425. 

В то время как определение идентичных или похожих графических изображений символов в соответствующие наборы шрифтов имеет свои преимущества и в некоторых ситуациях имеет абстрактное логическое обоснование (например, латинское “Н” и кириллическое “Н” имеют абсолютно разную фонетическую нагрузку), на практике это негативно влияет на точность распознавания символов программным продуктом OCR, что в свою очередь снижает способность поисковых систем находить отдельные текстовые фрагменты в оцифрованных текстовых документах, которые прошли через процесс оптического распознавания с применением OCR. В тексте на нескольких языках каким является “Летопись журнальных статей”, если OCR запрограмированно на распознавание нескольких языков, существует реальная опасность того, что для читающего человека слово зрительно предстает правильно написанным, однако отдельные символы могут быть неверно распознаны программой OCR. Например, “H” латинского алфавита может быть заменено на “Н” из кириллицы. В зависимости от типа и размера печатного шрифта это различие может быть незаметно взгляду читающего, однако компьютерная поисковая система определенно даст сбой при поиске текста, поскольку она будет искать символ U+041D, в то время как фактически текст содержит символ U+0048.

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


Рекомендуем почитать
Изучаем Java EE 7

Java Enterprise Edition (Java EE) остается одной из ведущих технологий и платформ на основе Java. Данная книга представляет собой логичное пошаговое руководство, в котором подробно описаны многие спецификации и эталонные реализации Java EE 7. Работа с ними продемонстрирована на практических примерах. В этом фундаментальном издании также используется новейшая версия инструмента GlassFish, предназначенного для развертывания и администрирования примеров кода. Книга написана ведущим специалистом по обработке запросов на спецификацию Java EE, членом наблюдательного совета организации Java Community Process (JCP)


Pro Git

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


Java 7

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


Фундаментальные алгоритмы и структуры данных в Delphi

Книга "Фундаментальные алгоритмы и структуры данных в Delphi" представляет собой уникальное учебное и справочное пособие по наиболее распространенным алгоритмам манипулирования данными, которые зарекомендовали себя как надежные и проверенные многими поколениями программистов. По данным журнала "Delphi Informant" за 2002 год, эта книга была признана сообществом разработчиков прикладных приложений на Delphi как «самая лучшая книга по практическому применению всех версий Delphi».В книге подробно рассматриваются базовые понятия алгоритмов и основополагающие структуры данных, алгоритмы сортировки, поиска, хеширования, синтаксического разбора, сжатия данных, а также многие другие темы, тесно связанные с прикладным программированием.


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

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


Как пасти котов. Наставление для программистов, руководящих другими программистами

«Как пасти котов» – это книга о лидерстве и руководстве, о том, как первое совмещать со вторым. Это, если хотите, словарь трудных случаев управления IT-проектами. Программист подобен кошке, которая гуляет сама по себе. Так уж исторически сложилось. Именно поэтому так непросто быть руководителем команды разработчиков. Даже если вы еще месяц назад были блестящим и дисциплинированным программистом и вдруг оказались в роли менеджера, вряд ли вы знаете, с чего надо начать, какой выбрать стиль руководства, как нанимать и увольнять сотрудников, проводить совещания, добиваться своевременного выполнения задач.