Annotazione di PDF
Annota i PDF in Potato con il tipo di visualizzazione pdf, con evidenziazione di span, bounding box sulla pagina, collegamenti tra pagine e OCR per i file scansionati.
La visualizzazione pdf renderizza un PDF nel browser con PDF.js e colloca la superficie di annotazione sulla pagina renderizzata anziché su testo estratto in anticipo. Chi annota vede il documento reale, con colonne, tabelle, figure e interruzioni di pagina intatte, e lo etichetta sul posto. La visualizzazione richiede una sola chiave obbligatoria, il campo che contiene il percorso o l'URL del PDF, e tutto il resto è un'opzione di visualizzazione.
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
view_mode: scroll
max_height: 760
zoom: page-widthview_mode accetta scroll, paginated o side-by-side. Lo scorrimento continuo impila tutte le pagine in un unico contenitore, il che conta quando un'annotazione deve attraversare un'interruzione di pagina. La vista paginata mostra una pagina alla volta con i controlli di navigazione e si adatta ai documenti lunghi, in cui si lavora pagina per pagina.
Tre modalità di annotazione
annotation_mode decide che cosa può disegnare chi annota, ed è l'opzione che cambia il compito stesso, non il suo aspetto. Il valore predefinito è span.
| Modalità | Che cosa fa chi annota | Ancorato a |
|---|---|---|
span | Seleziona del testo e vi applica un'etichetta | Il livello di testo di PDF.js |
bounding_box | Disegna un riquadro in qualsiasi punto della pagina | Coordinate di pagina |
link | Segna le ancore, poi le collega | Span di testo e regioni di pagina |
La modalità span dipende dal fatto che il PDF porti con sé un livello di testo, cosa vera per qualsiasi PDF generato da un elaboratore di testi o da un sistema di composizione tipografica e falsa per una scansione. La modalità bounding box non ne dipende, quindi una pagina scansionata può comunque essere etichettata per regioni senza alcuna estrazione di testo.
Poiché la visualizzazione pdf ancora gli span attraverso il livello di testo di PDF.js e non attraverso il contenitore .text-content usato dalle altre visualizzazioni, non accetta il flag span_target. L'annotazione di span funziona lo stesso, tramite il livello di testo proprio del PDF.
Collegamenti tra pagine
La modalità link serve per relazioni che attraversano le pagine, come un'affermazione a pagina 2 che poggia su una figura a pagina 9. Chi annota segna prima le ancore, poi traccia collegamenti tipizzati tra di esse, e Potato registra ancore e collegamenti sotto nomi di schema distinti.
instance_display:
fields:
- key: pdf
type: pdf
label: "Document"
display_options:
annotation_mode: link
view_mode: scroll
enable_text_anchors: true
enable_region_anchors: true
anchor_schema: pdf_anchors
link_schema: pdf_links
anchor_labels:
- name: claim
color: "#dc2626"
- name: figure
color: "#2563eb"
link_types:
- name: refers_to
directed: true
color: "#dc2626"
allowed_source_labels: [claim]
allowed_target_labels: [figure]allowed_source_labels e allowed_target_labels limitano quali ancore un tipo di collegamento può unire, ed è così che una linea guida diventa qualcosa che l'interfaccia impone invece di qualcosa che chi annota deve ricordare. Un collegamento refers_to configurato come sopra può partire solo da un claim e terminare solo su un figure, quindi un collegamento tracciato da una figura verso un'affermazione viene rifiutato. Imposta directed: false per una relazione simmetrica come same_as.
Le ancore sono di due tipi ed entrambi si possono disattivare in modo indipendente. enable_text_anchors consente di evidenziare uno span di testo, mentre enable_region_anchors consente di disegnare un riquadro di regione, che è ciò di cui hanno bisogno una figura o una tabella. Un esempio completo e commentato è disponibile a monte in examples/advanced/pdf-link-scroll/.
Documenti scansionati e OCR
ocr è disattivato per impostazione predefinita e Potato lo legge solo in modalità link. Quando è impostato, le parole vengono estratte lato server e usate per costruire un livello di testo lato client, così una scansione priva di testo incorporato può comunque portare ancore di testo. L'opzione accetta false, true o auto, e Potato rifiuta qualsiasi altro valore.
instance_display:
fields:
- key: pdf
type: pdf
display_options:
annotation_mode: link
ocr: auto
ocr_dpi: 200
ocr_lang: engLe tre impostazioni differiscono per il momento in cui viene eseguita la passata. false usa soltanto il livello di testo incorporato, true esegue sempre l'OCR e auto ricorre all'OCR solo quando il livello di testo incorporato torna vuoto. Su un corpus misto conviene auto, perché l'OCR è lento e richiede Tesseract installato. ocr_dpi controlla la risoluzione alla quale ogni pagina viene rasterizzata prima che l'OCR la legga, e alzarla costa tempo su ogni pagina. ocr_lang accetta un codice di lingua Tesseract e vale eng per impostazione predefinita.
Opzioni di visualizzazione
| Opzione | Predefinito | Effetto |
|---|---|---|
view_mode | scroll | scroll, paginated o side-by-side |
max_height | 700 | Altezza del contenitore in pixel |
max_width | nessuna | Larghezza del contenitore |
text_layer | true | Abilita la selezione del testo |
show_page_controls | true | Controlli di navigazione tra le pagine |
initial_page | 1 | Pagina mostrata per prima |
zoom | auto | auto, page-fit, page-width o una percentuale |
annotation_mode | span | span, bounding_box o link |
bbox_min_size | 10 | Riquadro più piccolo accettato, in pixel |
bbox_colors | nessuno | Colori dei riquadri per etichetta |
show_bbox_labels | true | Disegna le etichette sui riquadri |
thumbnail_sidebar | true | Miniature delle pagine nella vista paginata |
enable_text_anchors | true | Span di testo utilizzabili come ancore di collegamento |
enable_region_anchors | true | Riquadri di regione utilizzabili come ancore di collegamento |
anchor_schema | pdf_anchors | Schema registrato sulle ancore |
link_schema | pdf_links | Schema registrato sui collegamenti |
ocr | false | false, true o auto |
ocr_dpi | 200 | Risoluzione di rendering per l'OCR |
ocr_lang | eng | Codice di lingua Tesseract |
File Word e Markdown
Un file DOCX o Markdown usa invece la visualizzazione document, che conserva la struttura di intestazioni e paragrafi del documento e accetta span_target. Legge annotation_mode con valore span o bounding_box, e show_outline costruisce un indice a partire dalle intestazioni nel corpo. Potato fa passare il markup renderizzato attraverso un elenco di elementi consentiti prima che raggiunga chi annota, quindi un campo del corpus che contiene un tag eseguibile viene rimosso anziché eseguito.
instance_display:
fields:
- key: report
type: document
label: "Report"
display_options:
show_outline: true
max_height: 600Approfondimenti
- Visualizzazione delle istanze elenca ogni tipo di visualizzazione e quali di essi accettano target di span.
- Annotazione di span tratta le opzioni di etichetta che accetta uno schema di span.
- Come annotare i documenti segue un compito di revisione documentale dall'inizio alla fine.
- Per i dettagli di implementazione, vedi la documentazione sorgente.