×

CITlab Keyword Spotting | API

CITlab Keyword Spotting può essere utilizzato su tutti i documenti che sono stati elaborati con CITlab HTR(+). La ricerca è attualmente limitata a un singolo documento per richiesta di ricerca.

  • Invio di una richiesta di ricerca:

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

  • Elenca i processi di ricerca KWS. Poiché questi potrebbero richiedere del tempo per finire, guarda il campo "status" di un processo finché il suo valore è "Completed":

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

  • Recupera i risultati di un processo di ricerca completato:

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


Le richieste GET permettono l'impaginazione, ad esempio, usa i parametri della query "?index=0&nValues=2" per ottenere i primi due elementi

Sintassi esperta

La sintassi estesa delle query può essere abilitata inviando una mappa di parametri nella richiesta POST che avvia la ricerca, abilitando questa caratteristica:

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

Invece di parole, i modelli di ricerca sono ora definiti da espressioni regolari.

Per definire la parte di interesse, bisogna definire un gruppo "KW". Come risultato verrà restituita la parte che contiene questo gruppo, per esempio

  • data: .*(?<KW>[0-3][0-9]\.[0-1][0-9]\.[0-9]{4}).* corrisponde a qualsiasi riga contenente una data della forma TT.MM.JJJJ
  • abbreviazioni: .*(?<KW>Dr\.|Doctor).* corrisponde a qualsiasi riga contenente Doctor e la sua abbreviazione Dr.
  • incertezze: .*(?<KW>(k|c|che|chh)rist?).* corrisponde a qualsiasi riga che contenga ortografie dell'alto tedesco antico per Cristo: per esempio kris, krist, crist, cherist, chhrist


In contrasto con l'uso standard delle espressioni regolari, i modelli di ricerca devono corrispondere all'intera linea, ad esempio .*[0-9]{4,6} corrisponderà solo alle linee che finiscono con un numero di almeno 4 cifre. Per permettere caratteri arbitrari dopo le 4 cifre, si deve aggiungere .* alla fine: .*[0-9]{4,6}.* Analogamente, [0-9]{4,6}.* corrisponde solo alle linee che iniziano con 4 cifre.

Caratteristiche standard delle espressioni regolari che sono supportate:

.qualsiasi carattere
+una o più ripetizioni del precedente letterale
*zero o più ripetizioni del letterale precedente
[]classe di caratteri, ad esempio [0-9] qualsiasi cifra tra 0 e 9; [aeiou] qualsiasi vocale; [A-Z] qualsiasi lettera maiuscola
?il letterale precedente è opzionale
{X}ripete il precedente letterale X volte
{X,Y}ripete il precedente letterale tra X e Y volte
|b significa o a o b
()b)c corrisponde ad ac o bc mentre a|bc corrisponde ad a o bc
\operatore di escape: per abbinare, ad esempio, un + o un . bisogna sfuggire con \+ o \.

Caratteristiche standard delle espressioni regolari che non sono supportate:

^l'inizio della linea non è supportato
[^....]la negazione nel carattere non è supportata
{,Y} {X,}le ripetizioni aperte non sono supportate (nel caso {,X} scrivere {0,X})
$la fine della linea non è supportata
[:alpha:]le classi di caratteri predefinite come questa classe alfabetica non sono supportate