Графика

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Графика » Остальные программы » Скрипты и регэкспы часть II


Скрипты и регэкспы часть II

Сообщений 1 страница 30 из 451

1

Топик по скриптам, регэкспам и прочим полезным вещам в практике книгоделов.

Полезности
Перенумератор ссылок в FB2 файлах (читать READ ME!)
PopChar 5.5.2 для вставки любых символов в текст (портабельная)
CompareIt! 4.2.2221 для сравнения двух файлов (портабельная)
ACDSee 5 самый маленький и быстрый вьюер/редактор для основных типов графики (портабельный)
Scholar 1.0 + ORFO 2010 portable
Scholar 1.0.2 portable (если нужно, то ORFO 2010 берется из ссылки выше)

Отредактировано GMAP (2013-05-08 18:55:20)

2

Alex2L
Разобрался, мой косяк с папкой. Все заработало как надо, впечатления и идеи изложу чуть позже.

3

Попробовал в деле. Впечатления положительные, но насчет исчезновения слов из левого списка и очень легкого их удаления из правого, есть некоторые сомнения. Может сделать некие опции - либо оставить как сейчас, либо не удалять слева, а справа удалять, но через некий дополнительный пункт? Хотя, при некотором навыке это не есть проблема. Не уловил, что должно происходить по нажатию ">>>>" под показанным текстом, у меня ничего не происходит. Сделал все портабельное, связано с портабельным же ОРФО, который подключен как плагин и может использоваться самостоятельно. Добавил запуск hta через ярлык для рестарта, так удобнее. Насчет несохранения результатов работы - тоже вопрос. Либо делай от начала до конца за раз, либо начинай все заново. Может присваивать js файлам имена fb2 файлов и сделать их выбор?

4

Приветствую!
Тут такое дело - энтого Грамотея сочинил только, чтобы проверить идею: сначала сканируем весь текст сразу, походу отмечая ошибки - что получится? Т.к. сидеть проверять стандартным образом - утомляло. С другой стороны опробованная идея пригодится для другого.
Ну а Грамотеем - кито хочет - пусть пользуется на здоровье. Сильно возится с ним неохота, тем более, что:
- сомнений быть не должно, просто слова (справа) уходят (влево) в конец списка (на большом списке - ест-но незаметно сразу).
По нажатию ">>>>" в буффер обмена попадают первые 30 символов абзаца, ну чтобы потом найти в FBE/либо другом редакторе.
Ну это удобно, если ошибочное слово встретилось 1 раз. Иначе, лучше искать по самому слову.
На портабельном софте - вижу "собаку съел"?! Похвально! Если не в тягость - выложи всё в архиве куда-нить. Любопытно взглянуть. Да и не только мне, возможно. Самому с этим разбираться, честно, нет времени. Заодно предложение - вроде недавно выложили ОРФО-2012 (типа улучшенное) портабельное - не мешало бы проверить, как Грамотей с ним подружится. На досуге.
Насчет несохранения - ну... а F5 нажимать не пробовал?!  http://fludu.h1.ru/Smiles/mosking.gif Рекомендовать можно только проверять сверху вниз по-алфавиту. Ну и запоминать до какой буквы дошли. Сам же пишешь - рестарт hta для удобства.
Тем более, что сохранять? Обратной связи - а отредактировал-ли юзер FB2-файл нет.  http://fludu.h1.ru/Smiles/sad.gif
С другой стороны - программа-то работает поди достаточно шустро, так что можно и перезапускать на исполнение.
Найденные ошибки фиксируются в джава-скрипте frombook.js, т.к. в 37-й строке scholar.hta "забито" подключение этого файла.
Если пытаться использовать имя FB2-файла - то две проблемы: добавлять в hta-файл окно выбора файлов - что довольно морочливо (система безопасности ентого не любит, но возможно), и как пользователь удумает файл обозвать тоже не ясно. А разбираться с каждым в отдельности - сам понимаешь...
И потом - видно же - по [кол-ву раз] - если какое-нить слово (типа "Буратино") встретилось 378 раз (к примеру) - то сверяться с первоисточником смысла нет.
К Delphi не нашел толковых компонентов, которые позволяли работать с FB2-файлом в режиме радактора. Либо не поддерживает utf-8 кодировку, либо существуют в виде платных вариантов. Кабы было что-нить, можно было в Грамотее "прикрутить" редактор - тогда проблема сохранения ушла бы сама собой. Но этим заниматься плотно нужно. А время?!
А так - что есть - то есть.  http://fludu.h1.ru/Smiles/pardon.gif
Орфо-проверку по идеям Грамотея попробую в грядущих версиях Spotter-а. Потоку как только там (при одновременной работе с ПЧ) можно исправить ошибку, если она имеет место быть. При желании, ест-но, ИМХО.

Я внятен?!

5

Alex2L написал(а):

"собаку съел"

Скромно потупившись - слона доедаю :-) С ОРФО2012 попробую, особых проблем нет, но в какие-то супердостижения этой конторы верится слабо. Вот сборка - распаковать куда угодно и запускать по вкусу, fb2 файл может быть где угодно. Результирующий файл frombook.js будет всегда в песочнице, которая всегда рядом с экзешником.

6

Сборка - шикарная. Понравилась! (тут должна быть иконка аплодисменты - что-то сильно тормозит именно эта страница, не могу выбрать).
Отлично!
Коллеги рекомендую, хотя бы посмотреть. Ничем не рискуете! :)
Похоже можно пополнять пользовательский словарь, если не удалять папку %ProgramFilesDir%.
Вот над этим можно подумать, если конечно это нужно.

7

Если никто не возражает, то буду потихоньку выкладывать в шапку всякие полезности, в том числе, портабельные. Для начала могу выложить скомпилированный скрипт для перенумерации сносок в fb2 файлах. golma1 от него деликатно отказалась, а меня он сильно выручил.

8

Ну, я если честно, не знаю буду пользоваться перенумератором или как... http://fludu.h1.ru/Smiles/dntknw.gif
Уж больно морочливо!
Если типа так доработать:

If -%1==- GoTo No_Param
copy %1 [путь прописать]Input.fb2
[путь прописать]FB2_footnote_corrector.exe
GoTo :End
:No_Param
echo Параметры не указаны!!!
:End

в какой-нить bat-ник втулить... И что-бы из любого места запускалось... И ещё сильно смущает фраза

первая сноска, которая обязательно должна быть правильной

- а ежели нет?!

Ну а если деликатно откажутся, или, скажем, промолчат - то всё не так и плохо! http://fludu.h1.ru/Smiles/smile3.gif
Могут и обругать. Или неделикатно высказать претензии - мы с Эвер старались, делали-делали скрипт "Метаграмма-контекст"...
Ну да, слишком много слов (очень много слов) можно уличит в метаграммной связи. Притом самых обыденных.
Оказывается ПЧ вместо "далее" распознаёт "даже", таже история с "более". И т.д. Сколь часто, правда, неизвестно. http://fludu.h1.ru/Smiles/dntknw.gif
А чего хотели-то?!http://fludu.h1.ru/Smiles/sarcasticaa9.gif
А что - скрипт не ищет что-ли?! Ищет. Скрупулёзно. И находит столько всего... http://fludu.h1.ru/Smiles/mosking.gif
А там - хош проверяй, хош - забей! Одна проверяла. Осталась зело разочарована.   http://fludu.h1.ru/Smiles/dash2.gif
Типа (на манер известной частушки):
  Метаграммы я искала, материлась втихаря.
  Только время зря пропало. Не нашла я ничего! http://fludu.h1.ru/Smiles/pardon.gif

Неблагодарный труд. Неблагодарный.
Но ничего, пока трудимся.  http://fludu.h1.ru/Smiles/boast.gif

9

Дык юзать или наоборот - интимное дело каждого. Простой пример - афтар никак не расшифровал аббревиатуру, которая у него часто встречается в тексте, может у них даже младенцы ее знают, а у нас наоборот. На остальные непонятные слова сноски есть, а на нее нет. Вот желаю я, вопреки всем канонам, добавить эту аббревиатуру в разъяснения, причем, еще до первой официальной сноски. А сносок много, получается, все придется лопатить. А тут вставил добавку, запустил скрипт и Вася! А первую сноску, одну-единственную, всегда можно сделать правильной, типа, якоря для остальных.
Добавил я в "Поиск по набору регэкспов" полтора десятка строк, сугубо из практики косяков после распознавания. Полегчало, уже упомянутые 25 ошибок теперь благополучно подсвечиваются. Бум продолжать, благо косяки OCR в FR неисчерпаемы :-)

10

Думается мне, что будет очень полезно добавить в Грамотей фильтр по количеству повторов слова. Обработал текст с помощью TextSTAT, условно принял, что ошибочное слово не может быть более 3-х раз, сохранил все эти слова, перекинул в fb2, к сожалению, Грамотей не пожелал обрабатывать такой файл. Логика простая - зачем мне список из несловарных слов, когда подавляющее большинство из них встречается стотыщпицот раз? Мне нужно найти ошибки, а не постоянно встречающиеся, хоть и трижды три раза несловарные слова. Для резкого сокращения списка слов, надо их отфильтровать по количеству повторений в тексте, условно скажем - от 1 до 5, с возможностью выбора числа повторов. А для гурманов показывать весь список, без фильтрации.

Отредактировано GMAP (2013-04-03 09:10:30)

11

http://fludu.h1.ru/Smiles/sm405.gif
Насчет того примера, лично я бы оформил не сноской (в любом месте), а комментарием (верстальщика) - и выглядит солиднее, и перенумеровывать ничего не надо, и каноны соблюдены. К тому же, ежели произвести нехитрую операцию "Перенос примечаний в скобки", а потом "Примечания из скобок" - то перенумеруется всё автоматицки. А так, да  - кому что привычнее, ИМХО. В конце-концов - главное результат. http://fludu.h1.ru/Smiles/good.gif
"Поиск по набору регэкспов"  - уже писал, не пользуюсь, но поглядеть на эти полтора десятка строк любопытно - с чем народ сталкивается на приктике.

упомянутые 25 ошибок

- да гиде же они?! У Бориса Николаевича Е. были, помнится, 38 снайперов, которых никто в глаза не видел. Верили на слово. Может приоткроешь завесу тайны-то?! http://fludu.h1.ru/Smiles/derisive.gif

12

перекинул в fb2, к сожалению, Грамотей не пожелал обрабатывать такой файл.

- что значит не пожелал?! http://fludu.h1.ru/Smiles/swoon.gif
Насчёт более внятной визуализации количества повторов слова я тоже размышлял. В принципе можно. Но на тех (тренировочных) книгах выявил закономерность, что неизвестных словарю слов с повторением 3 - 5 и более раз, не превышает нескольких процентов (на глаз - 10%) от всего неизвестных слов. Т.е. список резко не сократиться. Подумаю.
И ещё, реализовать не просто, да и необходимость неочевидна - о чём речь? Вот скажем, несколько (как правило два) неизвестных слова ПОДРЯД. Вопрос - может стоит их засчитать, как ОДНО?!

Я внятен?!

13

Alex2L написал(а):

да гиде же они?!

Ось туточки:
----------------
Та же винтовка, тут. нет никаких сомнений – баллистическая экспертиза доказала.
– Сорока восьми ?
Он напоминал пса, которого били так часто, что. он и не ожидал ничего другого.
Знаю точно так же, как Вы знаете, что Фрэнк Даннинг убил Вашу сестру Клару и Вашего племянника Майки. ПОЖАЛУЙСТА. ПОВЕРЬТЕ МНЕ И ОБРАТИТЕСЬ К ВРАЧУ!
Я думал об. этом, когда кто-то похлопал меня по плечу, и чуть не вскрикнул.
Но наверняка подпрыгнул, потому что молодой чернокожий мужчина уважительно отступил на шаг и поднял пустые руки, показывая,, что угрозы от него не исходит.
Но если знаешь, что паук ядовитый? Что. это черная вдова?
Цепи (полагаю, за исключением тех, что мы учимся делать из полосок цветной бумаги в. детском саду) – крепкие штуки.
Помада такого же цвета подчеркивала маленький рот, недовольный и сварливый, рот. женщины, верящей, что весь мир настроен против нее, и за годы собравшей немала тому доказательств.
Она рассмеялась,, хлопнула в ладоши, поднялась, протянула ко мне руки.
– А если нас много ?
– Что ж, я учился со своей бывшей. Догадываюсь, что ты училась со своим мужем,, с которым разбежалась.
Для этого ему пришлось сказать мне, что я, должно быть,, псих, раз обдумываю такую возможность.
– У меня маленькая девочка, – ответил Ли и наклонился, упираясь руками в колени,, чтобы ей не пришлось сильно задирать голову.
– Как сегодня моя маленькая КРАСОТКА ?
Если скажу, что есть такое, вы можете примчаться сюда, а она не хочет вас. видеть.
Он говорил, что баллотироваться Кеннеди будет в паре с Джонсоном, потому что Джонсон – единственный южанин, которого сочтут приемлемым к северу от линии Мейсона—Диксона.
Поединок Кейс - Тайгер не спортивное событие, а пробный шар этой новинки, платного кабельного телевидения.
Эл, о чем ты у мать твою, думал ?
Смогу ли я это сделать ? Сделаю ли ? В этом ли мое предназначение ?
Этот сукин сын прострелил ей грудь, или вы не заметили ?
И разве существовала более зловещая фраза, чем вам нужно увидеть своими глазами, что вы наделали ?
----------------
Междустрочные пробелы убрал для краткости. Но уже все исправлено в скрипте, все показанные ошибки отлавливаются и не только они.

Alex2L написал(а):

что значит не пожелал?!

А не желает обрабатывать вот такое:
<p>Август</p><p>авиакомпании</p><p>автобусная</p><p>автобусом</p><p>автобусы</p><p>автовокзала</p> и так далее, на 41 тыщу с хвостом слов.

14

Ага...
Так а эта...

Та же винтовка, тут. нет никаких сомнений – баллистическая экспертиза доказала.

- ошибка ЭТО точка после "тут"?!
А здеся:

– А если нас много ?

- пробел ПЕРЕД знаком вопроса?!

А что в скрипте исправлено?! Не могу понять! http://fludu.h1.ru/Smiles/nea.gif

отлавливаются и не только они.

- к примеру?

А не желает обрабатывать вот такое:
<p>Август</p><p>авиакомпании</p><p>автобусная</p><p>автобусом</p><p>автобусы</p><p>автовокзала</p> и так далее, на 41 тыщу с хвостом слов.

- такое не будет. Нужно  пары </p><p> разделить знаками "возврат каретки - перевод строки" CR и LF.
Т.е. Одно слово (словочочетание) в одной строке.

15

Alex2L написал(а):

А что в скрипте исправлено?! Не могу понять!

addRegExp("\\s[?]","","Найдено: пробел перед вопросительным знаком.")
addRegExp("\\s[!]","","Найдено: пробел перед восклицательным знаком.")
addRegExp("[a-zа-яё][.]\\s[a-zа-яё]","","Найдено: нижний регистр-точка-пробел-нижний регистр");
addRegExp("[,][,]","","Найдено: две запятых.")
addRegExp("[,][.]","","Найдено: запятая-точка.")
addRegExp("[,][.][.]","","Найдено: запятая-две точки.")
addRegExp("[!][.][.][.]","","Найдено: восклицательный знак-три точки.")
addRegExp("[?][.][.][.]","","Найдено: вопросительный знак-три точки.")
addRegExp("[a-zа-яё][(]","","Найдено: нижний регистр-скобка");
addRegExp("[(]\\s","","Найдено: левая скобка-пробел");
addRegExp("\\s[)]","","Найдено: пробел-правая скобка");
addRegExp("[a-zа-яё][–]","","Найдено: нижний регистр-тире");
addRegExp("[–][a-zа-яё]","","Найдено: тире-нижний регистр");
addRegExp("\\s[.][.][.]\\s","","Найдено: пробел-три точки-пробел");

16

А...  http://fludu.h1.ru/Smiles/clapping.gif
Но, тут такое дело - по меньшей мере все случаи типа "пробел - чего-то там" решаются скриптом "Генеральная уборка", если я не ошибаюсь. Разумеется, в случае, коли им пользоваться.
Упрекать оба Spotter-а в том, что такие случаи не ловятся  не имеет смысла, т.к. Spotter-2 ловит ТОЛЬКО разрыв абзаца (особо не принимая в расчет знаки препинания и соседствующие с ним пробелы), основываясь на анализе TXT-файла, который выдаёт ПЧ после распознавания текста и только не нём. А Spotter-3 вдобавок анализирует ПЧ-шный же htm-файл (и ТОЛЬКО ПЧ-шный htm-файл) и пытается ещё и слипшиеся абзацы ловить. Иными словами Spotter-ам глубоко безразлично есть ли, нет "левая скобка-пробел" или что-то из вышеизложенного. Тем более, чувствуя теперь, такой вот "крепкий тыл" за своей спиной. http://fludu.h1.ru/Smiles/good.gif

17

Alex2L написал(а):

решаются скриптом "Генеральная уборка"

У мну его нет. Вы со своей высоты не знаете, каково нам тут, на дне общества книговычитывателей живется :-) Поэтому приходится изощряться самостоятельно. Прошу прощения, не понял о чем речь, разумеется, есть, но как-то был не в ходу.
Вставил переводы строк, заработало, но на всем файле был облом, маловато число оказалось, как хошь, маловато!
http://s002.radikal.ru/i197/1304/50/f094eb0b1a3e.gif
Пришлось делить пополам. Прогнал сырец и убедился, что мысля верная, фильтр по количеству слов будет совсем не лишний.

Отредактировано GMAP (2013-04-03 11:58:02)

18

был не в ходу

- стоит того, чтобы раз опробовать. Тем более, а вдруг новые идеи появятся?!

С этим делить пополам файл не прийдётся:
Версия 1.02

19

GMAP написал(а):

Вот желаю я, вопреки всем канонам, добавить эту аббревиатуру в разъяснения, причем, еще до первой официальной сноски.

А какие с этим проблемы? Скрипт "добавить сноску" отлично с этим справляется. Не путать с "добавить последнюю сноску".
Кстати, если удалить сноску и запустить скрипт "Унификация сносок", он отлично перенумеровывает их. Есть вариант, когда даже переносит ЗА знак пунктуации.

20

Alex2L написал(а):

К тому же, ежели произвести нехитрую операцию "Перенос примечаний в скобки", а потом "Примечания из скобок" - то перенумеруется всё автоматицки.

:tired:

21

GMAP написал(а):

addRegExp("\\s[?]","","Найдено: пробел перед вопросительным знаком.")
addRegExp("\\s[!]","","Найдено: пробел перед восклицательным знаком.")
addRegExp("[(]\\s","","Найдено: левая скобка-пробел");
addRegExp("\\s[)]","","Найдено: пробел-правая скобка");

Исправляется "Генуборкой"

GMAP написал(а):

addRegExp("[a-zа-яё][.]\\s[a-zа-яё]","","Найдено: нижний регистр-точка-пробел-нижний регистр");
addRegExp("[a-zа-яё][–]","","Найдено: нижний регистр-тире");

Ищется (в том числе) скриптом "Слипшиеся слова".

GMAP написал(а):

addRegExp("[–][a-zа-яё]","","Найдено: тире-нижний регистр");

Уже есть:

Код:
addRegExp("[A-Za-zА-яЁё][—]","i","Найдено: прилипшее тире в конце и середине слова");
addRegExp("[—][A-Za-zА-яЁё]","i","Найдено: прилипшее тире в начале и середине слова");
addRegExp("[»][—]","", "Найдено: пропущен пробел перед тире");

Насчёт запятых и точек - согласна, надо искать. Я ищу немного иначе:

Код:
[а-я]\.\.

- простым поиском, отметив "регэксп". Но Вы правы, надо бы добавить в скрипт. Как и многоточие после вопросительного/восклицательного знака.

А вообще, вместо того чтобы огульно критиковать имеющиеся скрипты, наверное, имеет смысл посмотреть на них подробнее и "не изобретать велосипед".  :glasses:

Отредактировано golma1 (2013-04-03 13:18:49)

22

К тому же, ежели произвести нехитрую операцию "Перенос примечаний в скобки", а потом "Примечания из скобок" - то перенумеруется всё автоматицки.

  Уж и поразвлекаться нельзя!   http://fludu.h1.ru/Smiles/sad.gif  Помниться, как-то делал. Зачем ?! http://fludu.h1.ru/Smiles/dntknw.gif
Но сработало.  http://fludu.h1.ru/Smiles/good.gif Вот и запомнилось! http://fludu.h1.ru/Smiles/pardon.gif

23

Scholar 1.0.2 portable
ОРФО остается прежним, изменил открываемую директорию на диск С, чтобы не щелкать лишний раз мышом. Проверил, теперь с количеством строк все нормально.
P.S. А нет ли у присутствующих в знакомцах кого-нибудь из "питонцев" (не путать с питомцами!!!), дабы несколько изменить TextSTAT, исходники имеются в открытом доступе. Надо всего лишь сделать прокрутку колесом мыши в главном окне и менять размер шрифта в нем же.

Отредактировано GMAP (2013-04-03 14:44:51)

24

GMAP написал(а):

А нет ли у присутствующих в знакомцах кого-нибудь из "питонцев"

:no:

25

И примкнувший к Голме Алекс. http://fludu.h1.ru/Smiles/pardon.gif
http://fludu.h1.ru/Smiles/secret.gif А фильтр по частоте, возможно, через некоторое время приделаю.

26

С частотным порогом
Изменился, ест-но scholar.hta, а также в папке \css - изменился common.css,
добавился jquery-ui.css; в папке \js изменился version2.js.

Слайдер внизу hta-окна динамический - двигай мышью или "тынцай" её же.
На большом списке "ошибок" малёхо подтормаживает. При этом, ранее проверенные и типа "очищенные", снова реинкарнируют.
Возится с этим неохота, т.к. выявился существенный дефект этой идеи, а именно: скажем ГГ (с экзотицким именем) сотню-другую раз фигурирует с Прописной, ест-но, а пару раз ПЧ разпознал со строчной - так они-то рядом и хорошо видно лажу, а фильтрани - и опля - что-то строчно-экзотицкое. Такое дело.
Ну или какая другая похожая лажа.
Вот на днях писал про сборник Пристли "Другое место", повторяюсь: "капитан Уотерхауз" упомянуто в тексте 5 раз, а "капитан Уотерхаус" - 1 раз. Если поставить фильтр и "срезать" всё, что больше 3-х или 4-х - так вот и проморгаем ошибочку-то. Да и существенного уменьшения общего кол-ва слов не происходит.
Так что механизьм есть, но лучше им не пользоваться, во избежании, ИМХО. http://fludu.h1.ru/Smiles/sarcasticaa9.gif
Да и ещё - "не более 49"-ти - предельный порог, при котором "всё честно". Если "не более 50" - значит считай, порога нет - показывает всё - режим "гурман". По умолчанию на него же и установлен.

27

Alex2L написал(а):

так вот и проморгаем ошибочку-то

Неправда ваша! Как раз нововведение позволило найти 4 ошибки, и именно по списку уникальных слов с единичным повтором. Респект! Как негурман, сделал себе начальную установку =1. А ведь проверял даже АфтерСканом, три ошибки явно пропущены им. Хотя идея там схожая, только реализация кривая донельзя. Еще раз благодарю за нужный утиль, буду активно использовать.

28

http://fludu.h1.ru/Smiles/sm405.gif
Ага...
Да, в АфтерСкан-е идея схожая. Там хорошо то, что можно сразу рихтовать. Правда не fb2-файл, но это кому как. Можно и в плюсы записать. А пропущены ошибки, скорее из-за того, что у них собственный спеллер, похуже ОРФО. Кстати что там с ОРФО-2012?
Совместимость и премственность наблюдается?

29

Alex2L написал(а):

Кстати что там с ОРФО-2012?

Scholar не видит апишку коммон спеллера, пробовал и портабельную, и установленную (правда, старую демку от конца октября 2012), версии Scholar тоже менял, результата не было.

30

Scholar не видит апишку коммон спеллера, пробовал и портабельную, и установленную (правда, старую демку от конца октября 2012), версии Scholar тоже менял, результата не было.

http://fludu.h1.ru/Smiles/thank_you.gif Поменяли механизьм, стало быть. Ну да и ОРФО-2010 весьма хорош.
Поживём, посмотрим...


Вы здесь » Графика » Остальные программы » Скрипты и регэкспы часть II