Здравствуйте, уважаемые участники листа!
Как-то в другом листе тоже говорили о проблемах в распознавании
текста, и один очень хороший человек отослал туда инструкцию, как
очистить текст от мусора в виде переносов и лишних абзацев и
пробелов. Хотя у
меня и не было таких проблем, когда я сканировал сам, но в чужом
самоскане такого добра встречается много. Я сейчас попробовал, и просто
пришёл в восторг. Предлагаю публике тоже ознакомиться с этим
документом.
Очень часто поподаются тексты, в которых переход на следующую строку осуществлялся
не автоматически, а с помощью клавиши Enter. В
То есть речь идёт о текстах созданныхх в досовских редакторах ? текст с разлделением
на строки.
Теперь о преобразовании такого текста в Вордовский формат:
Ну во первых, лучше всего открыть ДОСовский текст симбаговым блокнотом
и от туда перетащить его в Ворд через буфер обмена.
Потом, Первым делом нужно очистить этот текст от лишних пробелов. Я
вообще удивляюсь, что Ворд не делает этого автоматически. Это же
очевидно!
Жмёшь CTRL+H, в поле "найти" ставишь 2 пробела, табом переходишь к
полю "заменить на" и ставишь там один пробел. После этого
переключаешься в русскую или украинскую раскладку и жмёшь Альт+В -
"заменить всё". Потом подгоняешь Джос-курсор к писи-курсору и одной
строчкой выше читаешь в отчёте сколько сделано замен. Потом не
переключаясь на Писи, жмёшь Энтер и снова - Альт+В. Читаешь строку -
Ins+стрелкаВверх. Ведь Джос-курсор никуда не сдвигался и мы снова
слышим отчёт с количеством замен. Так повторяем до тех пор, пока не
будет 0 замен.
Затем очень рекомендую ещё почистить концы строк. Там могут оставаться
ненужные пробелы перед символами концов абзаца. Для этого в поле
"найти" ставим пробел и "крышка" Пи ( ^p), а в поле "заменить" ставим
просто "крышка"Пи - символ конца абзаца. Другими словами, меняем
каждую пару состоящую из пробела и символа конца абзаца просто на
конец абзаца.
Если текст сканированный, то там, скорее всего, встречаются переносы.
Их обязательно нужно убрать. Для этого заменяем все пары состоящие из
тире и символа конца абзаца на ничего, то есть в поле "заменить" ни
должно быть ровным счётом ничего. (Просто пощёлкать в нём делитом). И
"заменить всё".
Если больше ничего не нужно очищать, то жмём Esc дважды, чтобы
вернуться обратно в текст.
После этого нужно подумать, как преобразовать текст в вордовский
формат. Фишка состоит в том, чтобы правильно определить регулярный
признак конца (или начала) абзаца. Тут могут быть варианты. Если текст
набирался в досовском редакторе, то в началах абзацев ставилось по
нескольку пробелов для отступа. Теперь после пробельной чистки,
сколько бы пробелов туда не вставлялось, в начале каждого такого
абзаца остался только один пробел, А значит признаком конца абзаца
может служить парочка состоящая из символа конца абзаца и следующего
за ним пробела.
Если же текст, сканированный, то там, обычно, никаких пробелов в
началах абзацев не ставится. Однако, абзацы часто разделяются пустыми
строками. А пустая строка в нашем случае - это просто символ конца
абзаца, который стоит сразу после предыдущего символа конца абзаца. То
есть признаком служит парочка состоящая из двух подряд идущих сиволов
конца абзаца.
Ну и я придумал ещё один довольно универсальный, хотя иногда и не
совсем надёжный приём: обычно абзац заканчивается точкой. Вот пара
состоящая из точки и конца абзаца и служит, скорее всего, искомым
признаком.
Для того, тобы легче было определить характеристики и особенности
преобразуемого текста, рекомендуется включить отображение всех
символов. Легче всего это сделать на панели форматирования. Жмём Альт,
попав в меню, нажимаем Ctrl+Tab и попадаем на панель инструментов. При
этом должно произнестись что-то вроде "Создать кнопка". Потом раза 2
или 3 жмём Shift+Tab пока не попадаем на "отобразить все символы
кнопка" и щёлкаем по ней энтером. После этой операции произносятся все
пробелы и символы концов абзаца.
Если же панель форматирования по каким-то соображениям не включена, то можно
сделать это прямо через меню "Сервис" (Alt+с русское, курсор вверх на
"параметры", Входим, и идём на флажки включающие отображение непечатаемых
символов. Обычно я просто нажимаю Alt+а русское и фокус сразу оказывается на
флажке для включения символов конца абзаца и при этом сразу же его
переключает. Там же рядом и флажки для пробелов...
Определившись с признаком конца абзаца, приступаем к собственно
преобразованию.
1. заменяем признак конца абзаца на метасимвол (что-нибудь вроде "$$$"
или "$$$" - 3 доллара или два номера). Главное, чтобы таких
последовательностей не встречалось в самом тексте.
2. заменяем все символы конца абзаца на пробел. При этом текст
превращается в один сплошной абзац и Ворду становится не по себе. Он
начинает отчаянно тормозить и сучить ногами. Тут главное не впадать в
панику и быстро, но неторопясь, сделать следующюю замену.
3. Заменить наш метасимвол из первого пункта на символ конца абзаца
(Крышкапи). При этом Ворду сразу полегчает.
Ну вот, в принципе и всё. не забудь сохранить своё детище!
При желании, этого узкого места можно избежать Только при конвертации из
Доса в
Ворд. Вместо трёх замен придётся делать четыре: 1. заменяем признак
абзаца на пару, состоящую из символа доллара и символа конца абзаца
($^p);
2. заменяем просто уже один символ конца абзаца снова на те же символ
доллара и символ конца абзаца. Теперь просто концы строк у нас
выглядят как пары символов $^p, а признаки абзацев превратились в
цепочки из двух долларов и конца абзаца ($$^p);
3. Теперь заменяем два доллара ($$) на ничего, они просто исчезают;
4. Заменяем пару ($^p) на пробел.
Вот и всё! Мы обошли узкое место, у нас всё время в ходе
преобразования остаётся достаточное количество символов абзаца в
тексте.
Всех благ!
С уважением Сергей Картавцев.
Ну и под конец - как же без вопроса? Я нашёл в интернете макрос для
word'а, который улучшает качество отсканированного текста. Подскажите,
пожалуйста (можно на личный адрес), что конкретно нужно сделать, чтобы
этот макрос установить и заставить работать. Впрочем, если тема
окажется интересной не только мне, можно и в листе поговорить. Макрос
солидных размеров - больше установленного лимита на размер писем, так
что отослать непосредственно в лист его не получится. На том жду ваших
откликов.
Добрый вечер, Михаил и остальные участники конференции!
10.01.2004 Вы написали мне письмо:
mid:20040111005538.515***@l*****.subscribe
Тема: "[еКнига] scan"
Михаил прислал макрос мне, а я выкладываю его на хостинге для желающих:
http://users.cosmostv.by/soros/temp/makros.zip всего лишь 3 кб !
Я его еще не тестировал (куча дел).
Наверняка кому-то из участников он пригодится больше (мне так почти не
нужен, ибо я редко выполняю подобные операции и всегда делал описанное
Михаилом вручную). Поэтому комментарии о работе макроса приветствуются!
--
11.01.2004 - 22:19
Ток-лист "НАЛОГОВОЕ ПЛАНИРОВАНИЕ: вопросы и ответы"
mailto:economics.school.taxplan-sub@subscribe.ru [~ 900 участников]
Ток-лист "КОНТРОЛЛИНГ: вопросы и ответы по теории и практике"
mailto:economics.school.controlling-sub@subscribe.ru [~ 850 участников]
Ток-лист "Аспирант и Соискатель"
mailto:job.education.aspirant-sub@subscribe.ru [~ 1050 участников]
С уважением, Славников Дмитрий.
*WWW: http://slavnikov.cjb.net
E-mail: slavnikov***@t*****.by
Mobile: (+375 29) 629-30-43
ICQ: 115041944
*В начале пути отклонишься на шаг - скоро будешь на чужой дороге. (Один из принципов
контроллинга.)
--
Сейчас нас 195 человек.
-*Информационный канал Subscribe.Ru
Написать в лист: mailto:lit.book.library.ebookaccess-list@subscribe.ru
Отписаться: mailto:lit.book.library.ebookaccess--unsub@subscribe.ru
http://subscribe.ru/ mailto:ask@subscribe.ru