Перевод в электронный формат, кодированные наборы шрифтов и система Оптического Распознавания Символов для многошрифтовых информационных ресурсов на примере “Летописи журнальных статей” - [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.
Данная проблема предстает с особой очевидностью при использовании заглавных букв, где в частности (в зависимости от выбора типографских шрифтов) может не быть разницы в визуальном изображении греческой буквы “альфа”, кириллической “А” и латинской “А”. В отношении строчных букв, греческие буквы существенно отличаются по форме по сравнению с латинскими и кириллическими. Значение данной проблемы становится очевидным при принятии во внимание количества похожих символов в латинском, греческом и кириллическом алфавитах, учитывая что все три набора шрифтов имеют общее происхождение. Как и в случае заглавных букв, для строчных возможно более пятидесяти комбинаций ошибок, если в тексте используются все три алфавита. В более упрощенной ситуации, когда в тексте используются только кириллический и латинский шрифты, все же возможно большое количество ошибок. Оценить значение данной проблемы помогает Приложение, в котором представлены несколько примеров.
Разработчику часто требуется много сторонних инструментов, чтобы создавать и поддерживать проект. Система Git — один из таких инструментов и используется для контроля промежуточных версий вашего приложения, позволяя вам исправлять ошибки, откатывать к старой версии, разрабатывать проект в команде и сливать его потом. В книге вы узнаете об основах работы с Git: установка, ключевые команды, gitHub и многое другое.В книге рассматриваются следующие темы:основы Git;ветвление в Git;Git на сервере;распределённый Git;GitHub;инструменты Git;настройка Git;Git и другие системы контроля версий.
Рассмотрено все необходимое для разработки, компиляции, отладки и запуска приложений Java. Изложены практические приемы использования как традиционных, так и новейших конструкций объектно-ориентированного языка Java, графической библиотеки классов Swing, расширенной библиотеки Java 2D, работа со звуком, печать, способы русификации программ. Приведено полное описание нововведений Java SE 7: двоичная запись чисел, строковые варианты разветвлений, "ромбовидный оператор", NIO2, новые средства многопоточности и др.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Python - объектно-ориентированный язык сверхвысокого уровня. Python, в отличии от Java, не требует исключительно объектной ориентированности, но классы в Python так просто изучить и так удобно использовать, что даже новые и неискушенные пользователи быстро переходят на ОО-подход.