Автор Тема: FAQ: Оцифровка и OCR-обработка дореформенных текстов, расстановка Ё и ударений  (Прочитано 78196 раз)

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
Извиняюсь, если не в тот раздел. Первоначально опубликовал статью на сайте миркниг, она прошла незамеченной. Специально зарегистрировался у Вас.

Оцифровка и OCR-обработка дореформенных текстов, расстановка Ё и ударений.
Автор: Черников Павел.
charoplet@gmail.com
Статья рассчитана на уверенных пользователей ПК, которые могут самостоятельно читать справку в описываемых программах. Здесь представлен лишь общий алгоритм действий и основные программы для этой статьи - FineReader 11 и Hieroglyph 3.7

Да, можно было сделать обстоятельнее и лучше, но тогда бы я не закончил статью вовсе =).
Суть - старые тексты из графического файла переводим в файл текстовый, в современную орфографию. Как бонус - расставляем Ё (ёфикация) и ударения.
http://mirknig.com/jurnaly/gumanitarnye_jurnaly/1181454359-istoricheskiy-vestnik-inostrannaya-pechat-o-russkoy-revolyucii.html Вот пример публикации текста, обработанного таким образом.

1.   Первое, нам нужны отсканированные страницы с текстом. Сканируем с оригинала или скачиваем нужную книгу.
2.   Подготовка FineReader 11 (можно и ниже). Для этого нужно  указать язык документа. Заходим язык документа -> выбор языков -> здесь отмечаем 1) Русский и английский; 2) Русский (старая орфография).
Дополнительно можно настроить эталон распознавания, чтобы научить программу должным образом определять спорные символы. Для этого заходим сервис -> опции -> вкладка «распознать», выбираем «использовать встроенные и пользовательские эталоны» и ставим галочку «распознавание с обучением». Подробнее об эталонах читайте в справке самой программы.
Отдельно взятые фразы на немецком, французском и других языках можно потом распознать с помощью ScreenshotReader
3.   Собственно, распознавание текста. Затем, для улучшения результата, рекомендую вычитать все ошибки в самом FineReader. Добиваемся создания копии текста без ошибок. Старые буквы удобно вводить при помощи типографской раскладки Ильи Бирмана.
4.   Полученный текст копируем в программу Hieroglyph 3.7. Нажимаем (ctrl+H) или поиск -> замена по списку. Тут нужно выбрать словарик oldrus, созданный Черниковым Павлом (ака Чароплёт) на основе деятификатора с Викитеки (так как чтобы им пользоваться, нужно быть на ней зарегистрированным и быть онлайн, данный offline способ лучше). Жмём «заменить все».
5.   Далее желательно в этой же программе нажать F8 и согласиться со стандартным вариантом переформатирования.
6.   Правим текст с использованием автоматической проверки текста в WORD, Орфо, иных программ, или вручную.
7.   Можно расставить Ё в тексте, используем программу yo. Есть два варианта расстановки – слова, где Ё бесспорно и слова, где нужно выбрать вроде все-всё. Читайте справку к программе, написано доступно.
8.   Можно расставить ударения (для TTS-читалок или для себя). Используем RussAcc.
Здесь также есть выбор – автоматическая расстановка, или вручную (для идеального результата, так как по средАм (о дне недели) или по срЕдам
(щелочным) программа не разберет. Читайте справку, тоже все легко. 
<- образные ударения можно привести к любому виду с помощью словаря замен в  Hieroglyph 3.7.



Для иллюстрации:

Текст до преобразований, орфография дореформенная и Текст после преобразований, с расставленными ударениями (для создания аудиокниги)

---



Уважаемые читатели!
1. Если статья была полезна, распространяйте ее по рунету (желательно авторство мое сохранить). Покажите ее друзьям, которым она могла бы пригодится, если не пригодилась Вам.

2. Критика и замечания приветствуются. Я для Вас старался, напишите хоть пару слов, не поленитесь.

3. Уважаемые модераторы, пожалуйста закрепите эту тему, а файлы, прилагаемые к ней, залейте на свои сервера (по крайней мере, текстовый файл словаря).

http://narod.ru/disk/36634043001/oldrus.rar.html


yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Уважаемый charoplet большое спасибо за статью.
Наконец-то нашёлся хоть один единомышленник :) Теперь по порядку.

Не так давно, в прошлом году, я взялся за оцифровку книг дореволюционного издания. Доводил гугловские сканы до ума — чистил, выравнивал сканы и т. д. но-эт-неважно. Захотелось мне распознать текст и внедрить его в DjVu книгу. Вот здесь и началось самое интересное. В FR'е "русский, старая орфография" есть, а вот не словаря не тем-более морфологии нет.  Поэтому я начал составлять словарь сам ::)
Перелопатил нэт на наличие слов и словарей, в дореволюционной орфографии, внедрял слова из таких баз как www.dorev.ru или www.lib.russportal.ru например, в свой словарик, попутно вычитывал книги в FR'e и добавлял слова в этот-же словарь. Есстно, не о какой морфологии там речи не идёт — просто тупо набор слов с "фитами" и "ятями" числом около 60 000 :o
Статья из Вики, о которой Вы говорите, мне тоже попадалась на глаза. Но регистрация и пр.
Теперь-же, я думаю, дело сдвинется с мёртвой точки. Вы сподвигли меня снова заниматься, как мне ранее казалось, никому не нужным делом :)
Книги, выпущенные до Февральской революции, не менее интересны и актуальны сегодня.

Если Вам, равно и всем остальным, интересна тема перевода дореформенных текстов, то готов поделиться своими наработками, мыслями. 

Одна из немногих книг, в которую я вшил OCR  представленна здесь —> http://rutracker.org/forum/viewtopic.php?t=3590009

С уважением — yuree

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
yuree
Очень рад, что для Вас тема актуальна. Было бы жаль, если совсем уж никому она не была интересна. Хотелось бы выработать общий алгоритм действий по оцифровке таких текстов, потому что вычитывать ~600 страниц очень долго. Ну или хотя бы найти единомышленников).
http://mirknig.com/user/charoplet/news/ Вот тут книги, которые я оцифровал, используя материалы с http://www.djvu-scan.ru. (Лично мои сканы Институциональная экономика для чайников и История СССР, учебное пособие для 7 класса, а другие книги - это почищенные сканы с гуглбукс). Причем, я не внедрял OCR слой в дореволюционные книги, а внедрял лишь в современные, и было бы неплохо получить Ваши советы и наработки).
Да, если не затруднит, можете книгу скинуть мне на почту или выложить на обменник типа рапиды или народа? Не сложилось у меня (и моего провайдера) с рутрекером.
« Последнее редактирование: 06 Января 2012, 11:33:08 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
yuree
Очень рад, что для Вас тема актуальна. Было бы жаль, если совсем уж никому она не была интересна. Хотелось бы выработать общий алгоритм действий по оцифровке таких текстов, потому что вычитывать ~600 страниц очень долго. Ну или хотя бы найти единомышленников).


Конечно долго. Вот поэтому я и решил хоть немного облегчить себе вычитку, создав словарь к FR'у.
...

http://mirknig.com/user/charoplet/news/ Вот тут книги, которые я оцифровал, используя материалы с http://www.djvu-scan.ru. (Лично мои сканы Институциональная экономика для чайников и История СССР, учебное пособие для 7 класса, а другие книги - это почищенные сканы с гуглбукс). Причем, я не внедрял OCR слой в дореволюционные книги, а внедрял лишь в современные, и было бы неплохо получить Ваши советы и наработки).


...
В том архиве, который будет приведён ниже находятся, кроме всего прочего, два txt'шных файла. Это набор слов в дореформенном формате. Один сделан мной из словаря представленном на сайте www.dorev.ru , другой — драфтовый, в который включено все-что можно было включить ;D

Технология правильного извлечения и перекодировки мне представляется следующей:
1. Запихиваем книгу или скан в FR ("тогда я использовал 10-ю версию, сейчас перешёл на 11-ю").
Предварительно, в FR'е создаём свою группу или словарь ("или как он там-бишь") вообщем подключаем к нему словарь(-и) представленные ниже в архиве. Создаём проект и распознаём нашу книгу, попутно внося новые слова в наш словарь. Можно распознавать и с обучением конечно. Итак, книга распознана. Сохраняем её в необходимом формате. В данном случае я-бы сохранял в нескольких. Кроме DjVu или PDF/A, кому как нравиться, ещё и в fb2 а то и в txt, на всякий случай :)  Не забываем про кодировку. Должен быть Юникод.
2.Итак, у нас есть текст с "фитами" и "ятями". Загружаем его Иероглиф, предварительно подключив Ваш oldrus.txt. Далее действуем по Вашей схеме.
Кстати, все хотел спросить про очерёдность действий в Иероглифе.
Ваш файл я подключил, сделал все по описанию, дошёл до F8 и тут меня смутил один момент. В самом Иероглифе, в "OCR Чистка" есть две последние функции которые позволяют делать то-же что и Ваш подключенный файл-словарь. Или я заблуждаюсь? В чём отличие и каков механизм работы с программой после копирования в неё текста в д.р. формате?
3. После перевода, копируем в ОРФО 2010 и правим его дальше. Сохраняем.
Хочу ещё добавить, что при распознавании не следует брать во внимание колонтитулы, нумерацию. А то даже и сноски. Или отделять их надо, в ручном режиме в одном из текстовых редакторов дабы примечания не сливались с основным текстом.

Теперь о файлах представленных в архиве.
Залил на Narod и несколько других файлообменников два словаря, те которые можно пихать в FR, EmEditor — текстовый редактор, о нём ниже, и книгу в DjVu формате с OCR слоем.
Дабы опробовать технологию представленную выше надо правильно извлечь OCR слой из DjVu файла. Для этого я использовал DjVu OCR v. 2.4b Rus, можно версию и пониже взять.
После извлечения у нас есть два файла. Берём HTML'ку и копируем текст из неё в EmEditor (или ещё какой который поддерживает "регулярные выражения"). Так-как в тексте есть переносы, то нам необходимо их удалить, "сшить" текст в удобочитаемый, т.е. такой в котором-бы не было "- ", разрывов в слове. Потом можно заменить два пропуска "  " на один " ". В моей тексте такое тоже попадается.
Итак. Копируем текст из HTML'ки в EmEditor. Далее выделяем "- ", Ctrl+H, устанавливаем галочки в "Только слово целиком" и в "Использовать esc-последовательность". В "Найти" пишем "- \n" — "тире пробел слэш эн" ("регикс \n означает перевод каретки"), а в "Заменить на" ничего не пишем. Или можете поставить в том поле курсор и нажать "Delete". Потом меняем два пропуска на один, о чём я говорил выше. Далее, по обычному курсу, Hieroglyph 3.7 —> ОРФО 2010 —> правка, если то надо. 

И напоследок. По поводу словаря для FR'а.
Вы знаете, как вариант, дикость конечно, хотя. А можно большую группу слов, словарь по сути, например тот который используется для проверки написания, у меня в Опере такая фича стои'т, не верно написанные слова он подчёркивает, и перегнать их в старую орфографию? Хоть какое а будет начало. Так-как словари мои немного худосочны. В первом — 47094 а в другом 60724 (47094+13630) слов.

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

Сочувствую.
Лично я-бы поменял провайдера. Если есть такая возможность конечно.

Архив с словарями+EmEditor+ ... невесёлая книга в DjVu :)
http://www.multiupload.com/TISD1JTEN6
http://narod.ru/disk/36700373001/060112.RAR.html

ORFO 2010 Maximum:
http://www.multiupload.com/JZV4XFIV6W
http://narod.ru/disk/36701337001/ORFO2010max.rar.html

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
yuree
Сейчас не могу подробно ответить, отпишу завтра.
Вкратце - нужно в ФР создать пользовательский словарь на основе существующего "русского", только символы для распознавания скопипастить из "русский (старая орфография). Тогда для проверки будут предложены русские словари, которые работают и со старым написанием слов. (и, насколько понимаю, отпадет необходимость в Ваших словарях).

А плюс моего словаря к программе иероглиф - Он редактируем, некоторые дополнительные слова заменяет и т.д.

Ладно, завтра пост исправлю/дополню.

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
Вот, нашел словарь в старой орфографии на миллион слов. Но есть и минус, при распаковке и использовании в ФР, он существенно тормозит систему, так как весит более 24 мб. Если подключать, то тогда делайте копию языка в ФР русский (старая орфография), пользовательский словарь - импорт.

Также нашел набор макросов для word, которые тоже переводят орфографию. (P.S. в word 2010 и windows 7 они не работают, нужен или другой ворд, или другая система. На виртуалке проверил в XP с 2003 вордом - очень шустренько переводит).
Вот, все в архиве.

http://narod.ru/disk/37053923001/dict_old.rar.html
« Последнее редактирование: 10 Января 2012, 10:40:17 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Спасибо большое! ;)
На работе буду пробовать.

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
Протестировал. dict_1006649 делает необходимость правки минимальной (http://narod.ru/disk/37053923001/dict_old.rar.html). Так что можно получить вполне приемлемое качество и без ручной корректировки. Жду замечаний и предложений.

Общий алгоритм действий:
1. Чистим сканы до момента предварительной сборки. Если текст весь без иллюстраций, переходим к следующему пункту, если с иллюстрациями - используем st_split_v1_4 (и выше) и сканы из папки .../splitted/1

2. Один раз в FineReader 11 создаем и настраиваем новый язык (дальше уже пользуемся созданным): язык документа->Выбор языков... Откроется редактор языков, внизу слева нажимаем кнопку "Новый...", отмечаем "создать новый язык на основе существующего", выбираем в выпадающем меню "Русский (старая орфография), жмем ОК. Откроется окно свойств языка, вводим название, например "Русский (дореформенный, со словарем)". В разделе словарь выбираем "пользовательский словарь" и жмем кнопку "свойства..." В открывшимся окне жмем "импорт..." и выбираем словарь dict_1006649. Ждем, когда миллион шесть тысяч шестьсот сорок девять слов займут положенное им место. Давим кнопку "закрыть" в окне "словарь для языка", куда успешно импортирован наш словарь. в свойствах языка также жмем "ок". Затем и в редакторе языков отмечаем галочкой наш новый язык "Русский (дореформенный, со словарем)" (или как сами называли), он будет в самом низу, в пользовательских языках. Я ставил галочку также напротив языка "Русский и английский; (со словарной поддержкой). Жмем ок. Настройка языка распознавания окончена.

Жмем файл->открыть PDF/изображение (или Сtrl+O) и выбираем подготовленные нами сканы. Ждем-с.
Программа все распознает, потом можно править, а) можно так текст внедрить в DJVU (сам текст будет тоже в дореформенном написании) или б) преобразовать текст к современному виду (без внедрения в DJVU).

а) Сохраняем результат нашей работы, как "документ DjVu". Из него, используя DjvuOCR, извлекаем ОСR текст в .txt. Затем, подготовленные нами сканы самостоятельно кодируем djvu_smal или в чем привыкли. Доделываем по вкусу (DjVu Pal, djvuoutline_v1_1). и опять же с помощью DjvuOCR внедряем текст в уже правильно созданный нами DjVu. PROFIT!

б) см. первый пост с пункта 4


в) (результат конвертации получаем быстрее, но качество хуже). Сохраняем, как документ Word. Устанавливаем приложение "Пишите по-русски", которое представляет собой набор макросов для MS Word (Rus_5.0.alfa1)(подробно все в официальной справке). В ворде появятся новые кнопочки на панели инструментов. Используем ѣ (ять) "правописание до 1917 года", "перевести в новое". Ждем и сохраняем файл в нужном формате txt/rtf или других (перед этим можно отредактировать, при желании). PROFIT!
P.S. Связка MS Word 2010 и Windows 7 приведет вас к ошибке макросов (из-за разрядности систем, что-то от 64 есть там). Насколько я понимаю, если у вас в семерке другой ворд, то будет работать, и в XP/Vista должно тоже работать с любым вордом. Я поставил Oracle VirtualBox и на виртуалке проверил в WindowsXP и MS Word 2003, там все работает.

3. Публикуем материалы. Думаю, уместно сразу делать DjVu c OCR-слоем с оригинальным текстом и txt/rtf с текстом современного вида.

« Последнее редактирование: 11 Января 2012, 22:16:42 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Протестировал. dict_1006649 делает необходимость правки минимальной (http://narod.ru/disk/37053923001/dict_old.rar.html). Так что можно получить вполне приемлемое качество и без ручной корректировки. Жду замечаний и предложений.

Да, так и есть. Сейчас книгу, со своей раздачи, переделываю.
Не могу нарадоваться.

Общий алгоритм действий:
<...>

Лично я это всё пихаю в ОРФО 2010, после Иероглифа есстно.
Отличная программа, скажу Вам ;)
Хотя — на вкус и цвет.

3. Публикуем материалы. Думаю, уместно сразу делать DjVu c OCR-слоем с оригинальным текстом и txt/rtf с текстом современного вида.

Читаете мои мысли ;D

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
yuree
Нам осталось только, в идеале, отловить ошибки конвертации. Вот эти ошибочно сконвертированные слова включить в новый словарь иероглифа.

« Последнее редактирование: 11 Января 2012, 22:14:46 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
Очень интересно. Тем-более что на работе у меня ХРюша стои'т со старым Вордом :o
Сегодня одной своей раздачей занимался. Опробовал твой метод. Очень-даже-хорошо выходит. А вот до макросов руки ещё не дошли.

Кстаа. Можно не только в txt/rtf перегонять а и в fb2 например.
Например вот так —> http://www.multiupload.com/I760PVVSRJ
Только надо книгу дораспознать, перепроверить и xml'ку подправить.

По поводу включения в новый словарь то я вышел примерно таким путём. Создал, параллельно к твоему словарю — свой. И вношу в него уже' те слова что выловил в книге которой занят.
Есть конечно слова и словосочетания которых нет в базовом но их так ничтожно мало, к тому-же это всякие фамилии, некоторые географические или мифологические, там, термины что я задумываюсь — есть-ли смысл забивать словарь всякими там "Аресами" и "Йорубами"? :)
« Последнее редактирование: 10 Января 2012, 22:39:41 от yuree »

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
Цитировать
По поводу включения в новый словарь то я вышел примерно таким путём. Создал, параллельно к твоему словарю — свой.
да, именно об этом я и говорил. Нужно в релизах создать файлик, в котором просить наших читателей, чтобы они сообщали об опечатках на форум/почту! Пусть составляют список вида "Украйна=Украина". Тогда мы быстрее подготовим второй словарь. Только нам, для страховки, прежде чем окончательно вносить новые слова в него, надо проверять, чтобы дореформенный вариант написания был однозначно грамотен, и ошибки не появлялсь из-за неуверенно распознанных символов.
По поводу названий и имен, можно включить самые распространенные.

-добавлено-
От макросов Rus_5.0.alfa1 решил отказаться. Там конвертация хоть и быстрее, но хуже, + там мы зависим от MS Word.

Сейчас смотрю, откуда ноги растут у нашего словаря для ФР, нашел кое-что интересное, выложу позднее.

По поводу 2 словаря для Иероглифа:
ъ-=-
+ здесь еще все новые символы-кракозябры надо убрать.
« Последнее редактирование: 11 Января 2012, 22:21:02 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
<...>
-добавлено-
От макросов Rus_5.0.alfa1 решил отказаться. Там конвертация хоть и быстрее, но хуже, + там мы зависим от MS Word.

По правде говоря, я в этом макросе тоже несколько "боков" нашёл. Например, в тексте который я ему "скормил" он на букву "ять", причём не на все, выдал какие-то кривулины. То-ли я в описании чего не дочитал, то-ли ещё что. Вообщем разбираться желания особого не было. Тем более писать на их форум, тот откуда эти два макроса родом. 

Сейчас смотрю, откуда ноги растут у нашего словаря для ФР, нашел кое-что интересное, выложу позднее.

По поводу 2 словаря для Иероглифа:
ъ-=-
+ здесь еще все новые символы-кракозябры надо убрать.

Понятно.

На выходных думаю, успею, закончить распознавать, редактировать, переводить и оформлять книгу. Выложу её на треккере. Vox populi меня очень интересует. Вторая неделя идёт, 130 просмотров темы ... и тишина.
Настораживает

charoplet

  • Новичок
  • *
  • Сообщений: 12
    • Просмотр профиля
    • E-mail
yuree
А как меня настораживает, не поверишь. Особенно, когда я только на миркниг опубликовал топик, ни одного скачивания не было за месяц. Сейчас, смешно признаться, 3 скачивания. Но не буду же я бегать по ru-board и другим сайтам, создавая везде одно и то же  :'(. Народ - жутко пассивный, за исключением тебя никто толкового не сказал. Большинство просто прочтет, не пробуя ничего, и из этого большинства 1 человек выскажет ИМХО, что мол, кому и зачем оно надо, ошибок распознавания будет больше, чем пользы. http://mirknig.com/forum/topic_5839#post-13702

Цитировать
успею, закончить распознавать, редактировать, переводить и оформлять книгу
Выложи потом словарик правки, интересно, какие косяки есть в основном. И какие у тебя есть мысли по слиянию словарей, чтобы дубли слов из них убирать?
Я все думаю, оптимально в чем выкладывать такой конвентированный текст. Меня смущают книги со ссылками внизу страниц. Может, наведешь на мысль, что делать с ссылками? С fb2 как-то мало сталкивался, читал (на ридере), но сам не делал.
« Последнее редактирование: 13 Января 2012, 08:25:47 от charoplet »

yuree

  • Постоялец
  • ***
  • Сообщений: 172
    • Просмотр профиля
    • E-mail
<...>
Выложи потом словарик правки, интересно, какие косяки есть в основном.

Забирай —> http://www.multiupload.com/NTAMZ75B6Y 
Там он весь как есть. Т. е. в грязном виде.
Повторюсь. Всякие "что-бы", "он-же" и пр. я-бы оставил. Может и отчества тоже. А фамилии, имена мифологических героев, наименования населённых пунктов, и пр. "узконаправленные" слова — изъял.
Твои предложения!

Цитировать
И какие у тебя есть мысли по слиянию словарей, чтобы дубли слов из них убирать?

Дубли, есстно убираются в ФР автоматически, в алфавитном порядке. Это ты знаешь.

Цитировать
Я все думаю, оптимально в чем выкладывать такой конвентированный текст.


Да в txt ("или в архиве") можно, пожалуй. Что-бы к ФР подключать.

Цитировать
Меня смущают книги со ссылками внизу страниц. Может, наведешь на мысль, что делать с ссылками?

Это да. Можно конечно создавать два файла. Полностью распознанный и без ссылок.
В моём случае я запихивал это всё в RTF, правил, и сохранил тупо txt'шный файл. Столько времени угробил на редактуру! Кто хочет, пусть сам PDF создаёт или чего там. В любом случае, можно пойти навстречу пожеланиям и сформировать PDF'ку из текстового файла. Например того-же RTF. 

Цитировать
С fb2 как-то мало сталкивался, читал (на ридере), но сам не делал.

Fb2 я занимался довольно давно, до перехода и освоения DjVu. В принципе можно в памяти освежить. Хотя народ больше PDF жаждет, насколько я могу судить по сообщениям в своих раздачах.
Ах-да, вот эта самая раздача —> http://rutracker.org/forum/viewtopic.php?p=50531163#50531163