Типичные ошибки распознавания - собираем статистику для скрипта ФБЕ

Собираю статистику по наиболее частым типичным ошибкам распознавания для включения их в скрипт ФБЕ:

Варианты:
пе (не), оп (он), пи (ни), ва (за), пее (нее), опа (она)...

Прошу участвовать всех желающих.

Дополненный список я хочу включить в недавно обновленный скрипт "Поиск по набору регэкспов", автор Sclex (http://groups.google.com/group/fiction-book-editor/browse_thread/thread/b4700ee54d255384), работающий под ФБЕ.
Собранная статистика еще больше упростит отлов косяков сканирования и, соответственно, позволит более качественно и быстро делать верстку отсканенных книг и быстрее находить косяки в уже сделанных книгах тем, кто занимается их правкой-вычиткой.

Сейчас данный скрипт у меня ищет:
- смесь латиницы с кириллицей во всех вариантах,
- смесь букв с цифрами,
- неправильные дефисы-тире,
- мусор после скана,
- концы строк без знаков препинания
- неполный курсив слова
- указанные выше типичные ошибки распознавания
и другие подозрительные места.

Использование этого скрипта заметно сокращает время работы над книгой в ФБЕ.

Комментарии

Закончил книгу, где использовал данный скрипт. Призведя вычитку, убедился. что ляпов практически нет. Скрипт сработал на отлично. В тексте осталась только замена "ьщ" на "ыц". Ещё раз спасибо TaKir, да и вообще всем, принявшим участие в его создании.

Неожиданно выпало: "щей" вместо "шеи".
Можно и не заметить, оба слова в словаре присутствуют.

Вот еще, из довольно частых: Айда - Аида, ай - аи.

Добавляю:

Ищет смесь регистров (кириллица ) проимерно так: проБа или ПРоба. Не трогает имена собственные
addRegExp("[а-яё][А-ЯЁ]","","Найдено: смесь регистров");
addRegExp("[А-ЯЁ][А-ЯЁ][а-яё]","","Найдено: смесь регистров");

Слипшиеся слова....А то..., .....И то
tagRegExp("(?< ![а-яё])ато(?![а-яё])","i","Найдено: слово \"ато\" (\"а то\" с опечаткой).");
tagRegExp("(?< ![а-яё])ито(?![а-яё])","i","Найдено: слово \"ито\" (\"и то\" с опечаткой).");
Удалить пробелы перед восклицательным знаком (!)

А вообще - убойный скрипт!! Ещё раз спасибо Такиру и Склексу!!
Может кому пригодится - я задублировал три таких скрипта - с небольшими изменениями, каждый на своей кнопке. Это касается украинских, болгарских букв ( у меня они выставлены в ФР и я частенько забываю их откл/вкл)), специальных знаков итд. В общем - каждый себе может подобрать набор. ОЧЕНЬ убыстряет и улучшает

Полагаю, стоит включить версию скрипта с регэкспами ТаКир'а в следующий релиз FBE.

Sclex написал:
Полагаю, стоит включить версию скрипта с регэкспами ТаКир'а в следующий релиз FBE.

+1.

вес - все
Круглов - Круглое
Валет - Балет
рот - рог

Случайно обнаружил, что скрипт не ищет буква+знак препинания+цифра
Это могут быть цифры пропущенных сносок примерно в таком виде:
Текст,3...Текст)3... Текст.3... Текст»3....

Предлагаю добавить:
addRegExp("[A-Za-zА-яЁё»).,][0-9]","","Найдено:Подозрение на пропущенную сноску");

К сожалению не получилось добавит сюда комп. кавычки - начинает выдавать ошибку скрипта.
Для целенаправленного поиска только таких цифр можно проводить и рег. выражением:
[A-Za-zА-яЁё"»).,][\d]

УПД: Если сделать так: addRegExp("[A-Za-zА-яЁё\"»).,][0-9]","","Найдено:Подозрение на сноску"); То комп.кавычку+цифра находится нормально (пришлось дополнительно вставить слеш)

В регэкспе была ошибка, поправил:

addMacros("<откр-закр-em-str>","<emphasis>|</emphasis>|<strong>|</strong>");
tagRegExp("([а-яёa-z]<откр-закр-em-str>*)*?[а-яёa-z]<откр-закр-em-str>*(<emphasis>|</emphasis>)<откр-закр-em-str>*([а-яёa-z]<откр-закр-em-str>*)+","i","Найдено: курсивность части слова.");

(Заменил один плюс на звездочку.)

Упс. Вместо "ответить" кликнул на "изменить", в итоге затер старое сообщение. Или форум сглючил? Вряд ли.

Хорошо бы добавить точку с запятой (;) в конце абзаца. Иногда вместо двоеточия перед прямой речью выскакивает.

Алексей_Н написал:
Хорошо бы добавить точку с запятой (;) в конце абзаца. Иногда вместо двоеточия перед прямой речью выскакивает.

Да неплохо бы!
Всем привет. Когда починят добавлялку?

вамп = вами
II = И
попятно = понятно

Алексей_Н написал:
вамп = вами
II = И
попятно = понятно

первое и третье можно будет добавить, а вот со вторым проблемы могут возникнуть. Скрипт будет показывать ВСЕ вхождения "И" (как отдельно стоящего слова) и боюсь их может быть многовато (((
Я вот ещё думаю, может добавить V+любую цифру? Довольно часто встречается вместо дроби (напр. 1/2

В скрипт нужно добавить не "И", а "II" с пробелами с обоих сторон.

Аватар пользователя s_Sergius

Алексей_Н написал:
В скрипт нужно добавить не "И", а "II" с пробелами с обоих сторон.

И скрипт будет останавливаться на каждом “II”?
Боюсь для исторических текстов с обилием имен типа Екатерина II это не совсем хорошо.

Сейчас скрипт останавливается на каждой "б" (частица), "яи" (в словах типа "хозяин"), и эти случаи встречаются чаще, чем "Екатерина II".

Аватар пользователя s_Sergius

Насчет "хозяина", "яиц" и т.п. спорить не буду, а вот одиночная "б" встречается довольно редко, поэтому не раздражает.

Сорри, я наверное не так понял. У меня просто чаще встречается ошибка, когда вместо римской цифры - выдаёт "И" ))

tagRegExp("(?< ![а-яё])вамп(?![а-яё])","i","Найдено: слово \"вамп\" (\"вами\" с опечаткой).");
tagRegExp("(?< ![а-яё])попятно(?![а-яё])","i","Найдено: слово \"попятно \" (\"понятно\" с опечаткой).");
tagRegExp("(?< ![а-яё])II(?![а-яё])","i","Найдено: слово \"II\" (\"И\" с опечаткой).");

Хочу ещё раз подчеркнуть - скрип целесообразно иметь не один. Лучше его поделить на несколько, оставив в каждом необходимые+специфические. Ведь всё-таки есть разница по частоте ошибок в разных жанрах - свои словечки (жаргонизмы) есть в фантастике, свои слова в политической, научной или другой литературе.

Здравствуйте, все!
Большое спасибо Sclex-у за срипты, а TaKir-у - что открыл эту тему!
Попробовал - очень полезно!
И, конечно, уже дополнил кое-чем, о чём вспомнил. Вот это дополнение.
В файле скрипта от Sclex-а "Поиск по набору регэкспов_TaKir_24_01_2011.js" после строки
// -------------конец блока TaKir - регэкспы:---------------
я добавил следующие (прошу строго не судить - чайник):

// -------------начало блока F.CYXOB - регэкспы:--------------
tagRegExp("(ыо)","i","Найдено: часть слова \"ыо\" (\"ью\" с опечаткой?).","",1);
tagRegExp("(ыш)","i","Найдено: часть слова \"ыш\" (\"ьни\" с опечаткой?).","",1);
tagRegExp("(?#(![а-яё])ужо(?![а-яё])","i","Найдено: слово \"ужо\" (\"уже\" с опечаткой, если это не просторечие).","",1);

addRegExp("^[Л][\\x20\\xA0\\t\\n\\r\\f]","i","Найдено: буква Л вместо А в начале строки");
addRegExp("^[Л][.,:;!\?]","i","Найдено: буква Л вместо А в начале строки");
addRegExp("^[Д][\\x20\\xA0\\t\\n\\r\\f]","i","Найдено: буква Д вместо А в начале строки");
addRegExp("^[Д][.,:;!\?]","i","Найдено: буква Д вместо А в начале строки");
addRegExp("^[Н][\\x20\\xA0\\t\\n\\r\\f]","i","Найдено: буква Н вместо И в начале строки");
addRegExp("^[Н][.,:;!\?]","i","Найдено: буква Н вместо И в начале строки");
addRegExp("[\\x20][.,:;!\?]","i","Найдено: пробел перед знаком препинания");
addRegExp("[\\x20][»”’]","i","Найдено: пробел перед закрывающей кавычкой");
addRegExp("[…][.,]","i","Найдено: трёхточие с прилегающим справа знаком препинания");

// ~~~~~~~~~~ идея про строчные в начале предлож. от Рыжего Тигры. С усовершенствованием от F.CYXOB'а:
addRegExp("^[a-zа-яё]","","Найдено: строчная буква в начале строки");
addRegExp("[A-Za-zА-яЁё][….!\?][\\x20][a-zа-яё]","","Найдено: строчная буква в начале предложения.");

// ~~~~~~~~~~ идея про сноски от shokons. С усовершенствованием от F.CYXOB'а:
addRegExp("[A-Za-zА-яЁё][»….,:;!\?«)(\"”“][0-9]","i","Найдено: Подозрение на пропущенную сноску");

// -------------конец блока F.CYXOB - регэкспы:---------------

Пару символов "#(" в третьей строке tagRegExp надо заменить на левую угловую скобку.
Конечно, старшие товарищи меня пусть поправят, если что...
Спасибо!

По ходу работы над очередной книгой, выискиваются еще случаи:

отда, вместо отца конда, вместо конца лидами, вместо лицами

Встретил сегодня ф вместо гр.
А еще у меня истоия вот такая открылась, может уже здесь и писал кто:
Я раньше не особо не обращал внимания на точки и запятые перед тире в прямой речи. Вдруг обратил и огорчился. Например предложение:
"— Ты же меня знаешь — гнили не подсуну, — ответил взводный, — Драться умеют все."
И в книге и по-правилам: "— Ты же меня знаешь — гнили не подсуну, — ответил взводный. — Драться умеют все."
То-есть перед заглавной буквой должна стоять точка, А перед маленькой запятая:
"— Как букашку под микроскопом — вот что я хотел сказать, — буркнул он."
В книгах проставлено верно, а наши вычитывальщики вместо точки перед заглавной часто ставят запятую. Или файнридер им ставит. Но не обращают внимания.
Нельзя ли это как-то скриптом находить?

А не пробовали использовать скрипт "Точка, тире, буква"?

Алексей_Н написал:
А не пробовали использовать скрипт "Точка, тире, буква"?

СПАСИБО, ДОБРЫЙ ЧЕЛОВЕК! Так и пришлось 2.5 ставить. :)

Смешные очепатки - ЖЗЛ Гулыга "Гегель" http://lib.rus.ec/b/188976/read
"Неловкий, старообразный, неряшливо одетый, у женщин он успехом используется."
Узнаем что Гегель учился на геологическом факультете
"Это не мешает Гегелю в двадцать лет стать магистром философии. По заведенному на геологическом факультете"
Который он закончил не много ни мало в осенью 4793 года!!!
"Консисториальный экзамен осенью 4793 года — последняя дань пребыванию на студенческой скамье."

И ещё Fr10 устойчиво фамилию Бальтазар распознавал как Бсихьтазар или Балыпазар

"еше" вместо "еще"

Я себе уже сама добавила. Подглядела, как ТаКир сделал. ;)
Но коль скрипт в этом виде собираются добавлять в следующий релиз, то не мешало бы включить и эту весьма распространённую ошибку. :)

Есть вопрос. Номера строк в стихотворных произведения сильно отвлекают (мешают) при чтении. Я представил эти номера над строкой и мне очень понравилось (кому интересно, можно посмотреть http://lib.rus.ec/b/269388). Так вот нужно ли и можно ли это автоматизировать? Делать это ручками можно, но занимает много времени. Прошу извинить за то, что не совсем в тему.

Если опишете поподробней, как вы себе представляете функциональность и интерфейс такого скрипта, может, когда-нибудь сделаю.

Не помню, отмечалось или нет:

"Аза" вместо "А за".

sd написал:
открыл Test.doc WordPad-ом, сохранил как Test0.doc, новый документ открыл обычным Вордом, выделил, перетащил в ФБЕ - стилей нет, ни одного! Лекарство - WordPad
Ой-ей, чуть не забыл: в WordPad-е выделил все и назначил размер шрифта 12, на всякий случай, ФБЕ такой размер нравится.

Точно! Помогает.
Сам раньше вставлял прямо из WordPad-а, но заметил не хорошую тенденцию - стилей нет - хорошо, но пропали пустые строки в тексте - очень плохо.

TaKir - отличный скрипт! Вот в копилку: ои -> он го -> по или то нот -> пот И такой вопрос - была книга, где дефис не распознался, имеет ли смысл в добавлении: гдето -> где-то какогото -> какого-то изза -> из-за какойто -> какой-то чтото -> что-то... Скрипт слипшихся слов - игнорирует эти ошибки...

JonVic написал:

И такой вопрос - была книга, где дефис не распознался, имеет ли смысл в добавлении:
гдето -> где-то
какогото -> какого-то
изза -> из-за
какойто -> какой-то
чтото -> что-то...
Скрипт слипшихся слов - игнорирует эти ошибки...

это проверяется спелчеком. если это вставлять (вы представляете СКОЛЬКО частоупотребляемых слов с дефисами есть в русском языке?) затормозим работу скрипта до полного аута

Почему "часто употребляемых"?
Слов, типа "чтото, какогото" и т. п. в русском языке нет. И если скрипт поможет выявить эти ошибки - прекрасно. Скрипт ведь будет искать не слова с дефисами, а именно случаи без дефисов.

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

Но мне довольно часто попадаются слитные - какнибудь, какойлибо итд. В своё время мне Склекс присылал выборку слов с дефисами в тхт (надо поискать куда засунул) так этот тхт весил немерянно.
ПС кстати - изза - в исходном скрипте есть

Аватар пользователя PrePress

Слово "полста" часто распознается как "полета".

PrePress написал:
Слово "полста" часто распознается как "полета".

+1. Надо бы в скрипт добавить. Сейчас делаю книгу, автор любит слово полста...

06 - вместо "об"
01 - вместо "от"

эго = это
И вот это: "но" после слова и в обрамлении пробелов, скорее всего нужно "по".

Да, тоже хотела про "но" написать. Как правильно такую строчку прописать в скрипте, чтобы она не искала все подряд "но"? А именно сочетание "конец слова" + пробел + но + пробел.

Спасибо, попробую.

Aldio написал:
"[а-я] но "

Не годится. После запятой (если это правильно "но") тоже стоит пробел.

golma1 написал:
Aldio написал:
"[а-я] но "

Не годится. После запятой (если это правильно "но") тоже стоит пробел.

Годится. Запятая в множество [а-я] не входит. Пользуюсь давно - работает. Причём это один из наиболее упускаемых даже при хорошей вычитке багов.

Aldio написал:
golma1 написал:
Aldio написал:
"[а-я] но "

Не годится. После запятой (если это правильно "но") тоже стоит пробел.

Годится. Запятая в множество [а-я] не входит. Пользуюсь давно - работает. Причём это один из наиболее упускаемых даже при хорошей вычитке багов.

Хммм... Напиши тогда полную строку, пожалуйста.

golma1 написал:
Хммм... Напиши тогда полную строку, пожалуйста.

Пытался - не выходит. Режется.
Единственное, я делал это под оператором addRegExp а не tagRegExp.

Aldio написал:
golma1 написал:
Хммм... Напиши тогда полную строку, пожалуйста.

Пытался - не выходит. Режется.
Единственное, я делал это под оператором addRegExp а не tagRegExp.

Чё-то у меня не получается. :(
А в тэге "code" тоже режется? Или сделай вместо круглых скобок фигурные. Очень бы хотелось пользоваться.

По поводу пропущенных точек: есть отдельный скрипт, но он останавливается перед каждый именем собственным. Я пользуюсь "точка, тире, буква" - он ищет неправильные знаки в прямой речи.
Твой может больше?

golma1 написал:

Хммм... Напиши тогда полную строку, пожалуйста.

tagRegExp("[а-яё] (но) ","i","Найдено: слово "но" ("но " без запятой).");

wotti написал:
golma1 написал:

Хммм... Напиши тогда полную строку, пожалуйста.

tagRegExp("[а-яё] (но) ","i","Найдено: слово "но" ("но " без запятой).");


О, спасибо, Миша. Я не увидела и сама пыталась писать.
Твой скрипт действительно находит в указанном месте, а в следующем уже нет. :(
"вид но"

Как такое может быть?

Я написала addRegExp, но он ВСЕ "но" ищет. :( А мне нужно только те, у которых до пробела нет запятой.

Страницы

X