Отправляет email-рассылки с помощью сервиса Sendsay

Электронная книга

Здравствуйте, уважаемые участники листа!

Как-то в другом листе тоже говорили о проблемах в распознавании
текста, и один очень хороший человек отослал туда инструкцию, как
очистить текст от мусора в виде переносов и лишних абзацев и
пробелов. Хотя у
меня и не было таких проблем, когда я сканировал сам, но в чужом
самоскане такого добра встречается много. Я сейчас попробовал, и просто
пришёл в восторг. Предлагаю публике тоже ознакомиться с этим
документом.

Очень часто поподаются тексты, в которых переход на следующую строку осуществлялся
не автоматически, а с помощью клавиши 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'а, который улучшает качество отсканированного текста. Подскажите,
пожалуйста (можно на личный адрес), что конкретно нужно сделать, чтобы
этот макрос установить и заставить работать. Впрочем, если тема
окажется интересной не только мне, можно и в листе поговорить. Макрос
солидных размеров - больше установленного лимита на размер писем, так
что отослать непосредственно в лист его не получится. На том жду ваших
откликов.

Ответить   Sun, 11 Jan 2004 00:27:26 +0300 (#51530)

 

Ответы:

Добрый вечер, Михаил и остальные участники конференции!

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

Ответить   "Dmitry V. Slavnikov" Sun, 11 Jan 2004 22:22:29 +0200 (#52133)

 

(Не цитирую всю статью, она длинная...)
Тема о исправлении дефектоф сканирования и преобразования DOS-текстов.
Мои комментарии:

Во первых:

Заливайте из файнридера сразу в Вёрд!, поэкспериментируйте с галочками в окне
"экспорт"
и многие проблемы решаться сами собой!

Вы получите doc-авский текст практически в том виде, в каком он был в отсканированной
книге (если хотите, даже с картинками!)

Те-же переносы, например, превратятся в мягкий перенос, без никаких переводов
строки,
который при попадении в середину строки просто невиден,
а при попадении на конец строки становится переносом.

По опыту убедился - проще потом из вёрда слить в txt

Во вторых:

Если у кого нет вёрда, или ему надоели вёрдовские глюки с большими текстами -
могу слить парочку фильтров (хорошие, для себя писал :-))).
А если уж сильно-сильно попросите, то и написать под заказ...

Вот, для примера исходничек одного из них на С:

//находит и удаляет "\n", при этом не трогая "\n "
#include <stdio.h>
main()
{
int a1,a2;
if(EOF==(a2=getchar())){fputs("pizdec",stderr);return EOF;}
for(;EOF!=(a1=getchar());)
{
if(a2=='\n'&&(a1>' '&&a1!='-'))
{
a2=' ';
}
if(EOF==putchar(a2)){fputs("pizdec",stderr);break;}
a2=a1;
}
if(EOF==putchar(a2)){fputs("pizdec",stderr);return EOF;}
return 1;
}
--
Сейчас нас 196 человек.

-*Информационный канал 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

Ответить   Timur Tue, 13 Jan 2004 08:02:25 +0200 (#53097)

 

Здравствуйте, Timur и остальные участники листа!

Объясните пожалуйста чайнику.

Как в windows 98 se этот исходник из текста превратить в программу? И
что означает:

Это просто произвольные символы, или какой-то код?

Так я отвечаю на ваше письмо от 13 января 2004 г.,
на тему [еКнига] Re: scan.
где вы писали:

...

Ответить   Tue, 13 Jan 2004 09:52:54 +0300 (#53137)

 

Здравствуйте Михаил и остальные участники! Позволю себе включиться в
обсуждение данной темы.

Чтобы превратить этот исходник в программу нужен компилятор с языка
"C", который, естественно, в состав windows-98 не входит. Так что если
кому нужен откомпилированный файл, пишите мне лично, вышлю. Этот
фильтр помогает избавиться от той проблемы, когда в досовских текстах
каждая строка даётся в виде отдельного абзаца. Единственно, на что
хочу обратить внимание, что прежде, чем им пользоваться, нужно куда-то
деть и переносы, иначе их придётся выискивать и удалять в самых
неожиданных местах.

С уважением,

Сергей Флейтин.

--
Сейчас нас 196 человек.

-*Информационный канал 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

Ответить   13 Jan 2004 20:52:25 +0300 (#53794)

 

Sergey Fleytin> Этот фильтр помогает избавиться от той проблемы, когда в досовских
текстах
Sergey Fleytin> каждая строка даётся в виде отдельного абзаца. Единственно, на
что
Sergey Fleytin> хочу обратить внимание, что прежде, чем им пользоваться, нужно
куда-то
Sergey Fleytin> деть и переносы, иначе их придётся выискивать и удалять в самых
Sergey Fleytin> неожиданных местах.
Фильтр, удаляющий переносы тоже есть :-)
Но по собственному опыту скажу:
как не фильтруй, а вычитывать и
корректировать что-небуть вручную всёравно нужно!
--
Сейчас нас 199 человек.

-*Информационный канал 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

Ответить   Timur Thu, 15 Jan 2004 01:07:11 +0200 (#54852)

 

михаил Духонин> Как в windows 98 se этот исходник из текста превратить в программу?
михаил Духонин> И что означает:
Люди! Ну читайте письма полностью!
Я ж предложил готовые фильтра, причём не только этот, но и другие...
Работают они под досом и любой виндой.
Очень эффиктивная штука для переформатирования больших объёмов текста.
Только одно но...
Надо себе чётко представлять из чего этот текст "сделан" и знать DOS,
иначе результаты будут просто непредсказуемые...
Кого интересует - пишите мне на net_hobb***@u*****.net , вышлю
--
Сейчас нас 199 человек.

-*Информационный канал 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

Ответить   Timur Thu, 15 Jan 2004 00:47:09 +0200 (#54853)