×

CITlab Keyword Spotting | API

CITlab Keyword Spotting kann auf alle Dokumente angewendet werden, die mit CITlab HTR(+) bearbeitet wurden. Die Suche ist derzeit auf ein einzelnes Dokument pro Suchanfrage beschränkt.

  • Senden einer Suchanfrage:

POST https://transkribus.eu/TrpServerTesting/rest/kws/queries?collId={myCollectionId}&id={myDocId}&query={searchTerm1}&query={searchTerm2}&query=...

  • KWS-Suchprozesse auflisten. Da diese einige Zeit in Anspruch nehmen können, beobachten Sie das Feld "Status" eines Prozesses, bis dessen Wert "Completed" ist:

GET https://transkribus.eu/TrpServerTesting/rest/kws/queries

  • Ruft die Treffer eines abgeschlossenen Suchvorgangs ab:

GET https://transkribus.eu/TrpServerTesting/rest/kws/queries/{myKwsJobId}/hits


Die GET-Anfragen erlauben ein Paging, z. B. mit den Abfrageparametern "?index=0&nValues=2", um die ersten beiden Elemente zu erhalten

Experten-Syntax

Die erweiterte Abfragesyntax kann aktiviert werden, indem in der POST-Anfrage, mit der die Suche gestartet wird, eine Parameter-Map gesendet wird, die diese Funktion aktiviert:

{
   "type" : "kwsParameters",
   "entry" : [ {
      "key" : "caseSensitive",
      "value" : "true"
   }, {
      "key" : "expert",
      "value" : "true"
   } ]
}

Anstelle von Wörtern werden die Suchmuster nun durch reguläre Ausdrücke definiert.

Um den interessierenden Teil zu definieren, muss man eine Gruppe "KW" definieren. Als Ergebnis wird der Teil, der diese Gruppe enthält, zurückgegeben, z. B.

  • date: .*(?<KW>[0-3][0-9]\.[0-1][0-9]\.[0-9]{4}).* passt auf jede Zeile, die ein Datum der Form TT.MM.JJJJ enthält
  • abbreviations: .*(?<KW>Dr\.|Doctor).* passt auf jede Zeile, die Doctor und dessen Abkürzung Dr. enthält.
  • uncertainties: .*(?<KW>(k|c|che|chh)rist?).* passt zu jeder Zeile, die althochdeutsche Schreibweisen für Christus enthält: z. B. kris, krist, crist, cherist, chhrist


Im Gegensatz zur normalen Verwendung von regulären Ausdrücken müssen die Suchmuster auf die gesamte Zeile passen, z. B. .*[0-9]{4,6} passt nur auf Zeilen, die mit einer mindestens 4-stelligen Zahl enden. Um beliebige Zeichen nach den 4 Ziffern zuzulassen, muss man hinzufügen .* am Ende: .*[0-9]{4,6}.* Analog dazu, [0-9]{4,6}.* findet nur Zeilen, die mit 4 Ziffern beginnen.

Standardfunktionen für reguläre Ausdrücke, die unterstützt werden:

.beliebiges Zeichen
+eine oder mehrere Wiederholungen des vorherigen Literales
*null oder mehr Wiederholungen des vorherigen Literals
[]Klasse von Zeichen, z. B. [0-9] jede Ziffer zwischen 0 und 9; [aeiou] jeder Vokal; [A-Z] jeder Großbuchstabe
?das vorherige Literal ist optional
{X}vorheriges Literal X-mal wiederholen
{X,Y}Vorheriges Literal zwischen X und Y mal wiederholen
|b bedeutet entweder a oder b
()b)c stimmt mit ac oder bc überein, während a|bc mit a oder bc übereinstimmt
\Escape-Operator: um z.B. ein + oder . zu finden, muss man es mit \+ oder \ entschlüsseln.

Standardmerkmale regulärer Ausdrücke, die nicht unterstützt werden:

^Zeilenanfang wird nicht unterstützt
[^....]Negation in Zeichen wird nicht unterstützt
{,Y} {X,}offene Wiederholungen werden nicht unterstützt (im Fall {,X} schreiben Sie {0,X})
$Zeilenende wird nicht unterstützt
[:alpha:]Vordefinierte Zeichenklassen wie diese alphabetische Klasse werden nicht unterstützt