Mégsem kell vacakolni a karakterfelismeréssel

Boobaa küldte be 2006. 01. 16., hétfő, 10:57 időpontban

Fel szoktam tölteni a Bibliaolvasó Kalauzt az SDG oldalára. Ennek eddig a következő volt a menete:

  1. Következő évi kalauz megvásárol a templomban (lehetőleg még karácsony előtt, hogy maradjon idő foglalkozni is vele).
  2. Valamilyen módszerrel (digi fényképezővel, vagy még jobb: céges scannerrel) gépre vinni a tartalmát.
  3. Valamiféle OCR programmal felismertetni, végigmenni rajta az OCR javítójával.
  4. Átemelni az egészet OOo.Writerbe, és újra végigmenni rajta (legalább a helyesírás-ellenőrző által jelzett hibákat javítandó, de még jobb, ha van idő végigolvasni az egészet).
  5. Az írókat, heteket kézzel felvinni az SDG-honlapra, majd szépen egyesével a napokat is, menet közben kijavítva a nyomdai idézőjeleket egyszerűekre, a kiemeléseket beállítani, stb.

Látható, hogy ez egy meglehetősen időigényes feladat, amiben különösen a 2-3-4. pont idegőrlő, tudván, hogy valahol valaki már biztosan gépre vitte az egészet (1). Nem hagyott tehát nyugodni a dolog, megnéztem közelebbről, mit lehet elérni, és erre jutottam:

#!/bin/bash
# vim ft:sh
egynap() {
 echo "Hónap: $1, nap: $2";
 curl -d "honap=$1&nap=$2" (egyhonlap) >k$1-$2.net 2>>/dev/null
 cp k$1-$2.net k$1-$2.got
 dos2unix k$1-$2.got
 dos2unix k$1-$2.got
 dos2unix k$1-$2.got
 tr "\n| " " " k$1-$2.get
 sed 's/.*HREF.\+=\(.*\)">.*/\1/' k$1-$2.napiige
 sed 's/.* <p>\(.\+\) <.>k$1-$2.magyarazat
 sed 's/.*<p>\(RÉ.\+\) .*/\1/' \(RÉ.\+\).*/\1/' >k$1-$2.enekek
 (
 echo -en "$1\t$2\t"
 cat k$1-$2.napiige
 echo -en "\t"
 cat k$1-$2.magyarazat
 echo -en "\t"
 cat k$1-$2.enekek
 echo -en "\n"
 ) >k$1-$2.kesz
 sed "s/ / /g" >egeszev.tsv
 rm k$1-$2.{get,got,kesz,enekek,magyarazat,napiige}
}
rm -f egeszev.tsv
for i in 01 02 03 04 05 06 07 08 09 10 11 12
do
 for j in 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
 do
 egynap $i $j
 done
done

Valószínűleg itt-ott még lehetne gyorsítani a dolgon, de évente egyszer kibírja az ember.

(1) Folyamatban van az illetővel való kapcsolatfelvétel is, lévén ha normálisan meglenne az egész anyag, akkor lehet, hogy egyenesen az SQL INSERT-eket állítanám elő egy szkripttel.