Zu jeder Klassifikator-Datei wird eine zugehörige Alc-Datei mitgeliefert. Sie hat die Funktion einer
Protokolldatei. Dies ist eine Textdatei, in welcher die dem Klassifikator bekannten Kennungen (Labels) abgelegt sind. Die Kennungen
sind dabei in Gruppen aufgeteilt, welche den Alc-Konstanten entsprechen.So findet sich beispielsweise unter
[numeric]
in der Datei ttfde.alc folgender Eintrag:
[numeric] font=0123456789 size=0:1 font+=0w121|32 02 size+=0:1 0.3:1
Dies bedeutet, dass der Klassifikator unter ALC_NUMERIC
die Labels
'0
', '1
', '2
',... '9
' , '0w
', '12
',
'1|
', '32
' und '02
' enthält. Alle diese Zeichen werden in ihrer Zeile
wie ein grosses 'A
' erwartet, nur das Zeichen 02
ist kleiner. Es handelt sich um das
Zeichen o
, das oft als Null verwendet wird. Sofern die Zweitkennung im Normalfall nicht mit Blank (' ') besetzt
ist, wird dies mit einem zusätzlichen Eintrag in der Alc-Datei vermerkt. So findet sich etwa in der Datei hand.alc unter
[numeric]
der zusätzliche Eintrag ext=_
. Unter den Einträgen font und size beziehungsweise
font+
und size+
können noch Einträge xminmax
und yminmax
stehen.
Dort sind dann - wie unter size
und size+
- die minimal und maximal zulässige Ausdehnung
der Zeichen in x- und y-Richtung festgelegt, gemessen in Bildpunkten. Ein Beispiel:
[numeric] font=0123456789 size=0.0:1.0 xminmax=10:20 yminmax=15:30
Die unter font gegebenen Zeichen müssen hier mindestens 10 Bildpunkte, dürfen höchstens jedoch 20 Bildpunkte
breit sein (xminmax). Die Höhe eines Zeichen muss mindestens 15 Bildpunkte, darf höchstens jedoch 30
Bildpunkte betragen (yminmax). Ist eine der Bedingungen nicht erfüllt, erfolgt eine Rückweisung des Zeichens.
Aus der Alc-Datei ist auch ersichtlich, welche Kennungen Zeichen gleicher Form beschreiben. Diese finden sich unter
[equivalence]
bei dem Eintrag moma=
.... Beim Klassifikator ttfde.rec finden wir in der
zugehörigen Alc-Datei etwa unter anderem folgende moma-Äquivalenzen:
, ' - _ . '2· * *2*4 / '|,|1|I|\ l|| 0 02O o ° 12l
Bei den moma-äquivalenten Zeichenklassen erfolgt keine Rückweisung von Alternativen, falls beim Aufruf
von re?_do()
unter options OPTIONS_EXCLUDE
gesetzt sein sollte. Es würde ja
sonst ein zufälliges Resultat erzwungen.
Beispiel einer Alc-Datei
[comment] Kommentarteil dieser Alc-Datei ttfde.alc Generated by RecMaker from ttf.rec and ttfde.al0 Generation Time ##-Feb-200# 11:50 crc=0x7ab8 [general] representation=CODE_ISO_8859_1 [lcalpha] Rubrik der Kleinbuchstaben font=acemnorsuvwxz bdfhklt gpqy iäöü j ss size=0.3:1 0:1 0.3:1.4 0.1:1 0.1:1.4 0:1.1 font+=a2 g2 i| j| l2l| size+=0.3:1 0.1:1 0.1:1 0.1:1,4 0:1
font=
Zeichen dieser Rubrik mit 1-Byte-Kennung
size=
Grösse der jeweiligen Zeichenblöcke Oberkante:Unterkante mit Massstab gemessen an einem grossen A mit dem Wert 0 Oberkante und 1 Unterkante
font+=
Zeichen dieser Rubrik mit 2-Byte-Kennung
size+=
siehe size=
[ucalpha] Rubrik der Grossbuchstaben
font=ABCDEFGHIJKLMNOPRSTUVWXYZ Q ÄÖÜ
size=0:1 0:1.1 -0.2:1
font+=I|
size+=0:1
font=
Zeichen dieser Rubrik mit 1-Byte-Kennung
size=
Grösse der jeweiligen Zeichenblöcke Oberkante; Unterkante mit Massstab gemessen an einem grossen A mit dem Wert 0 Oberkante und 1 Unterkante
font+=
Zeichen dieser Rubrik mit 2-Byte-Kennung
size+=
siehe size=
[numeric] Rubrik der Ziffern
font=012345689
size=0:1
font+=0w121|32 02
size+=-0:1 0.3:1
font=
Zeichen dieser Rubrik mit 1-Byte-Kennung
size=
Grösse der jeweiligen Zeichenblöcke Oberkante:Unterkante mit Massstab gemessen an einem grossen A mit dem Wert 0 Oberkante und 1 Unterkante
font+=
Zeichen dieser Rubrik mit 2-Byte-Kennung
size+=
siehe size=
[special] Rubrik der Sonderzeichen
font=!#%&()/?[\]{|}£¥ "' $§ *+ , -· . : ...
size=0:1 0:0.2 -0.1:1.1 0.3:0.7 0.8:1.2 0.5:0.6 0.7:1 0.4:1
font+=*4e$ '2'| *2 ,|
size+=0:1 0:0.2 0:0.4 0.8:1.2
font=
Zeichen dieser Rubrik mit 1-Byte-Kennung
size=
Grösse der jeweiligen Zeichenblöcke Oberkante:Unterkante mit Massstab gemessen an einem grossen A mit dem Wert 0 Oberkante und 1 Unterkante
font+=
Zeichen dieser Rubrik mit 2-Byte-Kennung
size+=
siehe size=
[reject] labels=#X#x0<0[0]1<1[1]2<2[2]3<3[3]4<4[4]5<5[5]6<6[6]7<7[7]8<8[8]9<9[9]
labels=
Zeichenklassen (labels), die zurückgewiesen werden sollen
[slant] Rubrik Zeichen mit natürlicher Schräglage mit 2-Byte-Kennung
base=64
label=' , F J P d f j p r y / L Q b h k q \
slant=10 20 -10 -5 -20
korr='|,|/ 1|I|\ l||
base=
Angenommene Zeichenhöhe in Pixel
label=
Zeichen dieser Rubrik mit 2-Byte-Kennung.
slant=
Schräglage in Pixel, negative Zahlen mit Schräge nach links, positive Zahlen nach rechts.
korr=
Zeichen, bei denen die Schräglage für die Erkennung stark bewertet werden soll.
[width]
Breitenvorgabe der Zeichen mit 2-Byte-Kennung
base=16
Angenommene Zeichenhöhe 16 Pixel
blank=4
Breite eines Standard-Leerzeichens
prop=11
Durchschnittsbreite der Zeichen bei Proportionalschrift
prop3=! " ' '2'|, ,|1|. ; I|i|l|| .
prop4=( ) - [ ] j|{ }
prop5=* *2+ . = °
prop6=/ j l
prop7=1 12< > \ _ i ¢
prop8=? @ I J f l2s ~ §
prop9=# 020w3 5 7 a2c e o r t u z £ ä ö
prop10=$ *40 2 324 6 8 9 E F L a b d h k n v x
prop12=M U V X m y ¥ Ä Ö Ü
prop13=w
prop14=W
equi=9 Durchschnittsbreite der Zeichen bei äquidistanter Schrift
equi3=! " ' '2'|( ) , ,|- 1|: ; I|[ ] i|j|l|{ | } ·
equi6=* *2+ . / 1 12< = > \ _ i j l ¢ °
equi12=% & A B C D G H K M N O P Q R S T U V W X Y Z e$g g2m p q w y
¥ Ä Ö Ü ss
prop?=
Breite dieser proportionalen Zeichen bezogen auf die angenommene Höhe
equi?=
Breite dieser äquidistanten Zeichen bezogen auf die angenommene
[equivalence] Rubrik formgleicher oder namensgleicher Zeichen
moma=, ' - _ . '2· * *2*4 / '|,|1|I|\ l|| 0 02O o ° 12l2
moma=C c i|j| Ö ö P p S s U u Ü ü V v W w X x Y y
moma=Z z
rename=* * *2*4 , , ,| 0 0 0w02 1 1 121| 3 3 32 I I I| a a a2 g g g2
rename=i i i| j j j| l l l2l| ' ' '2'|
moma=
Die 2-Byte-Kennungen in jedem Block stehen für Zeichen, die in ihrer Gestalt identisch mit anderen Zeichen sind wie z.B. 0,O,o,°.
rename=
Die erste 2-Byte-Kennung in jedem Block stellt die Gruppen-Kennung für den ganzen Block dar.
Die folgenden 2-Byte-Kennungen (Basis-Kennungen) stehen für die einzelnen Gruppen-Mitglieder.
Z.B. umfasst die Gruppen-Kennung 9_ (Handschrift 9) die Basis-Kennungen 9_ (gebogene 9),
91 (gerade 9) und 93 (wie kleines q). Es kann mit der Gruppen-Kennung oder mit den Basiskennungen gearbeitet werden.
[words]
In der aufgeführten Rubrik können die nachstehenden Zeichen in einem Wort enthalten sein.
Diese Worterkennung ist wichtig, um z.B. in Zahlworten die Ziffer 2 nicht als Z zurückzuliefern (siehe POS_NOWORDCONTEXT
).
lcalpha+=, . / : ; ' '|,|\ | ucalpha+=, . / : ; ' '|,|\ | numeric+=, . / : ; ' '|,|\ | machine=[ ] 0w1232a2e$g2i|'2'|*2*4,|021|I|j|l2l|
[fontgroup]
Hier sind Informationen darüber abgelegt, ob es sich bei den entsprechenden Zeichen um Handschrift, Maschinenschrift, OCRA oder anderes handelt. Wird etwa unter Maschinenschrift-Zeichen ein Handschrift-Zeichen detektiert, so ist wohl Vorsicht geboten (Anhebung von rec_value nach der Erkennung). Das Leerzeichen in den eckigen Klammern am Anfang bedeuten, dass alle Kennungen mit Blank an der zweiten Stelle ebenfalls Maschinenschrift-zeichen sind.
[segmentation]
Gruppe von Zeichen, bei denen trotz gutem Ergebnis eine alternative Segmentierung probiert wird. Beispielsweise kann aus einem m bei entsprechender Segmentierung ein r und ein n erkannt werden. Es ist also in jedem Fall noch eine weitergehende Segmentierung zu prüfen (“trymore”).
tryless=trymore="#%49HKLMNPTUVWYbdhkmnpquwÜü!'(*,./1:;<>CIJV[\cijlnrv{|