Lieber Armin,
auch an dich meine übliche Bitte: Wärst du bereit, das Perl-Skript und die kurze
Dokumentation dazu auf GitHub zur Verfügung zu stellen? Das Repository „kitodo-contrib“
[1] ist genau dazu gedacht, Anwendungsbeispiele, kleine Skripte, Best Practices, etc. aus
der Community zu sammeln, damit andere sich davon inspirieren lassen können.
Viele Grüße
Sebastian
[1]
https://github.com/kitodo/kitodo-contrib
--
Sebastian Meyer
Stabsstelle Digitale Bibliothek
Sächsische Landesbibliothek –
Staats- und Universitätsbibliothek Dresden (SLUB)
Abteilung IT, Referat 2.1 Digitale Bibliothek
01054 Dresden
Besucheradresse: Zellescher Weg 18, 01069 Dresden
Telefon: +49 351 4677-206
Mobilfunk: +49 173 9615528
From: kitodo-community-bounces(a)kitodo.org <kitodo-community-bounces(a)kitodo.org> On
Behalf Of Möller, Armin
Sent: Thursday, October 31, 2019 11:17 AM
To: kitodo-community(a)kitodo.org
Subject: Re: [Kitodo] [OCR] Texterkennung mit Kitodo
Liebe Community,
ich kann die Funktion bestätigen. Ich habe den OCR-Button bei uns auch implementiert. Dazu
noch ein paar Anmerkungen.
Ich habe ein Script das ALTO in eine TXT-Datei wandelt und ausgibt. Dabei ist aufgefallen
das allen Zeilenumbrüche in der Anzeige entfernt werden.
Also liefere ich HTML aus mit <pre>Datei</pre> das sieht dann deutlich besser
aus. Da ich das ALTO-Verzeichnis benötige wäre es schön wenn der VariableReplacer auch
ocraltopath liefern würde. Jetzt ändere ich einfach bei ocrplaintextpath „_txt/$“ in
„_alto/“ um und fertig.
Damit spare ich noch doppelte Datenhaltung von ALTO- und txt-Dateien.
Eintrag in goobi_config.properties
showOcrButton=true
ocrUrl=http://b-digiwf-1.sbb.spk-berlin.de/cgi-bin/pres/gib_ocr.pl?ocrtxtpath=(ocrplaintextpath)
Anbei noch das Perl-Script
#!/usr/bin/perl
# -*- coding: utf-8 -*-
#Programm einchecken
use feature ":5.10";
use strict;
use CGI qw/ :all -debug /;
use XML::LibXML;
use HTML::Entities;
if( !defined(param("ocrtxtpath")) or !defined(param("imgrange")) ){
fehlerr( "falscher Aufruf " ) ;
}
my $ocrpath = param("ocrtxtpath");
my $bild = param("imgrange");
# Umwandeln von OCR-TXT nach OCR_ALTO
$ocrpath =~ s#_txt/$#_alto/#;
my $file = "$ocrpath".sprintf("%08d",$bild).".xml";
if( ! -f $file ) {
fehlerr( "OCR $file ist nicht in der Präsentation");
}
# Umwaldenl von ALTO in TXT
my $tmp = alto2txt($file);
binmode( STDOUT,':utf8');
# ON the fly TXT to HTML pre-formatet
print STDOUT "Content-Type: text/html;
charset=UTF-8\n\n<pre>".encode_entities($tmp->{$file})."</pre>";
sub fehlerr {
print STDOUT "Content-Type: text/html;
charset=UTF-8\n\n<pre>Keine OCR gefunden</pre>";
exit(0);
}
sub alto2txt {
# Umwandeln mit ein bisschen Layout
my ( $file ) = @_;
my $parser = XML::LibXML->new();
my %xmls;
my $ret;
if( ref ( $file ) ) {
$xmls{'unkown'}=$file;
} elsif ( -f $file ) {
$xmls{$file}=$parser->parse_file($file) || die
"parse";
} elsif ( -d $file ) {
opendir my $DIR,$file || die "parse";
while ( my $f = readdir($DIR) ) {
next unless $f =~ /xml$/;
#~ say $file;
$xmls{$f}=$parser->parse_file("$file/$f") || die "parse";
}
close $DIR;
}
for my $k ( sort keys %xmls ) {
my $obj = $xmls{$k};
my %text;
for my $line (
$obj->findnodes('//*[name()="TextLine"]')) {
my $vp =
$line->getAttribute("VPOS");
($vp) = grep { abs($_-$vp)<10 } (keys
%text,$vp);
$text{$vp} .= ($text{$vp} ? "\t"
: "");
for my $string (
$line->findnodes('.//*[name()="String"]')) {
if (
$string->getAttribute("SUBS_TYPE") eq "HypPart1" ) {
$text{$vp}
.= ($text{$vp} ? " " :
"").$string->getAttribute("SUBS_CONTENT");
} else {
$text{$vp}
.= ($text{$vp} ? " " :
"").$string->getAttribute("CONTENT") unless
$string->getAttribute("SUBS_TYPE") eq "HypPart2"
}
}
}
for my $key ( sort { $a <=> $b } keys %text ) {
$ret->{$k} .=
"$text{$key}\n";
}
}
return $ret;
}
Mfg
Armin Möller
--
******************************************************************
Armin Möller, Administrator
Abt. IDM Ref. 2 Tel +49 30 266 432231
Staatsbibliothek zu Berlin PK
Potsdamer Str. 33
10772 Berlin
armin.moeller@sbb.spk-berlin.de<mailto:armin.moeller@sbb.spk-berlin.de>
Von: kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>
<kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>>
Im Auftrag von Weber, Frank-Ulrich
Gesendet: Mittwoch, 30. Oktober 2019 14:13
An: kitodo-community@kitodo.org<mailto:kitodo-community@kitodo.org>
Betreff: Re: [Kitodo] [OCR] Texterkennung mit Kitodo
Hallo Herr Hartwig,
der OCR-Button ruft schlicht die unter ocrUrl konfigurierte URL auf und füllt das OCR
Fenster mit deren Ausgabe.
(tifpath) ist ein Platzhalter und wird zur Laufzeit passen ersetzt (siehe
VariableReplacer.pdf). Zusätzlich wird die Seitennummer(imgrange) angehängt.
An dieser Stelle (ocr.php) könnten natürlich auch andere Formate eingelesen und passend
ausgegeben werden.
Beste Grüße
Frank Ulrich Weber
________________________________
Frank-Ulrich Weber
Product Manager Software Solutions
[cid:image001.png@01D5930B.730505D0]<http://www.zeutschel.de>
[cid:image002.png@01D5930B.730505D0]<https://twitter.com/zeutschelgmbh>
[cid:image003.png@01D5930B.730505D0]<http://www.youtube.com/user/zeutschelbookscanner>
[cid:image004.png@01D5930B.730505D0]<https://www.facebook.com/pages/Zeutschel-GmbH/193873073980288?fref=ts>
Zeutschel GmbH | Heerweg 2 | 72070 Tübingen | Deutschland
p: +49 (7071) 9706-56 | m: | f: +49 (7071) 9706-44
e: Frank-Ulrich.Weber@zeutschel.de<mailto:Frank-Ulrich.Weber@zeutschel.de> | w:
http://www.zeutschel.de
Geschäftsführer/President: Joerg Vogler | Registergericht Stuttgart: HRB 380917
[cid:image005.png@01D5930B.730505D0]<https://www.zeutschel.de/>
Von: kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>
<kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>>
Im Auftrag von Wendt, Kerstin
Gesendet: Mittwoch, 30. Oktober 2019 13:49
An: 'kitodo-community(a)kitodo.org'
<kitodo-community@kitodo.org<mailto:kitodo-community@kitodo.org>>
Betreff: Re: [Kitodo] [OCR] Texterkennung mit Kitodo
Hallo Herr Hartwig,
auf die Schnelle ein Bild vom „Verschollenen“ aus unserem Kitodo:
[cid:image001.png@01D58F28.9146AE90]
Technische Voraussetzung ist, dass im Vorgangsverzeichnis (neben den ALTO-Files) ein
Verzeichnis mit reinen .txt-Dateien der OCR-Ergebnisse existiert. Wir lassen diese
Textdatei zusätzlich und ohne Mehrkosten vom OCR-Dienstleister erzeugen. Dann kommt noch
ein kl. Stück Konfiguration in goobi_config.properties dazu:
showOcrButton=true
ocrUrl=https://kitodo.sub.uni-hamburg.de/tools/ocr.php?path=(tifpath)
Ich hoffe, ich habe jetzt keinen Baustein vergessen.
Viele Grüße von Kerstin Wendt
--
Kerstin Wendt
Stabsstelle Digitalisierung
Staats- und Universitaetsbibliothek Hamburg Carl von Ossietzky
Von-Melle-Park 3, 20146 Hamburg
Telefon 040/42838-5817 | Fax : 040/41345070
Mail: kerstin.wendt@sub.uni-hamburg.de<mailto:kerstin.wendt@sub.uni-hamburg.de>
www.sub.uni-hamburg.de<http://www.sub.uni-hamburg.de>
Von: kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>
<kitodo-community-bounces@kitodo.org<mailto:kitodo-community-bounces@kitodo.org>>
Im Auftrag von Uwe Hartwig
Gesendet: Mittwoch, 30. Oktober 2019 13:16
An: kitodo-community@kitodo.org<mailto:kitodo-community@kitodo.org>
Betreff: Re: [Kitodo] [OCR] Texterkennung mit Kitodo
Liebe Community, lieber Herr Gerhardt,
ich hatte die Hoffnung, dass die Einbindung der erstellten OCR-Daten (im Format
HOCR-xhtml) im Prinzip in Kitodo 2.x möglich ist und es einen Fehler in unserer
Kitodo-Konfiguration gibt, die dazu führt, dass keine Daten angezeigt werden. Nun klingt
das für mich leider so, als sei diese Funktionalität schon länger verschollen.
Bei unserem derzeitigen Workflow haben die Mitarbeiter im VL-Manager die Möglichkeit,
anhand der OC-Resultate zusätzliche Qualitätssicherungsmaßnahme einzuleiten, z.B. einen
Nachscan anzufordern. Das wäre also in dieser Form nach derzeitigem Kenntnisstand mit
Kitodo 2.x nicht möglich, weil keine OCR-Daten im Metadateneditor angezeigt werden?
Danke und Grüße!
On 30.10.19 13:02, Henning Gerhardt wrote:
Liebe Community, lieber Herr Hartwig,
Kitodo.Production 2.x bringt selbst keine Werkzeuge mit, um eine
Texterkennung direkt durchzuführen und ist auf externe Dienste
angewiesen. Ein solcher Dienst versteckt sich hinter dem "OCR" Button,
der eine nicht näher spezifizierte Schnittstelle anspricht und von
dieser nicht näher spezifizierte Daten zurück bekommt. Damit soll man
dann wohl die Ergebnisse im Metadateneditor von Kitodo.Production sehen
können. Ich selbst habe in den vielen Jahren der Nutzung von
Kitodo.Production 1.x und 2.x niemals eine solche Einbindung gesehen und
/ oder erlebt.
An der SLUB wird die OCR selbst als eigenständiger Schritt / Aufgabe
nach der Metadaten-Bearbeitung ausgeführt. Über unseren externen OCR
Dienstleister werden die Ergebnisse als ALTO-XML zurückgeliefert und im
jeweiligen Vorgangsverzeichnis abgelegt. Beim Export werden neben den
Bild- und Metadaten auch die vorhandenen OCR Daten exportiert und an die
Präsentation auf Basis von Kitodo.Presentation übergeben.
Kitodo.Presentation stellt dann die OCR Ergebnisse dar.
Viele Grüße
Henning Gerhardt
On 10/30/19 11:10 AM, Uwe Hartwig wrote:
Liebe Community,
mal allgemein in die Runde gefragt: Wer hat Erfahrungen mit den
Texterkennungsfunktionalitäten mit Kitodo gesammelt?
Und wenn ja, mit welcher Kitodo-Version?
Da wir bei der ULB Sachsen-Anhalt auf ALTO-XML setzen, interessiert uns
natürlich, ob Kitodo mit diesem Format etwas anfangen kann. Dazu zählt,
z.B. ob der "OCR"-Button in der Strukturierungsansicht diese Daten
entsprechend darstellen kann und ob dieses Format auch von
nachgelagerten Prozessen Richtung DMS-Export (zedExporter) verarbeitet
werden kann.
Danke!
_______________________________________________
Kitodo-Community mailing list
Kitodo-Community@kitodo.org<mailto:Kitodo-Community@kitodo.org>
https://maillist.slub-dresden.de/cgi-bin/mailman/listinfo/kitodo-community
--
Uwe Hartwig
Anwendungsentwickler IT / Digitale Dienste
Universitäts- und Landesbibliothek Sachsen-Anhalt
August-Bebel-Straße 13
D - 06108 Halle (Saale)
Fon: + 49 345 55 22 183
Mail:
uwe.hartwig@bibliothek.uni-halle.de<mailto:uwe.hartwig@bibliothek.uni-halle.de>