Aiuto:Strumenti per la rilettura/postOCR
Lo strumento postOCR, richiamabile da tastiera con la combinazione Alt+7
, ingloba diverse operazioni di correzione del testo ed ha un duplice scopo: rimuovere gran parte dei difetti tipicamente presenti in un testo ottenuto da software OCR - denominati scannos - e inserire automaticamente del codice di formattazione. La versione attuale dello script preserva le parti già formattate - tabelle, link, template, ... - e ciò consente di eseguirlo più volte senza causare modifiche indesiderate alla struttura della pagina; ad esempio, grazie a postOCR è possibile velocizzare la procedura di inserimento degli apostrofi tipografici 1 ponendo in fase iniziale degli apostrofi dattilografici - più facilmente inseribili tramite tastiera - e lanciando poi un'istanza dello strumento.
La quantità di operazioni effettuate da postOCR fa di questo strumento un'importante risorsa durante lo svolgimento dell'attività che costituisce il "cuore pulsante" di Wikisource: la correzione del testo e l'inserimento di template ricorrenti in nsPagina. E lo è nonostante alcune delle sue funzioni siano eseguite automaticamente durante il caricamento del testo fornito dal software OCR in una nuova pagina, poiché esso incorpora alcune procedure che possono essere riutilizzate durante la fase di modifica - e che, se conosciute, consentono di svolgere il lavoro più efficacemente.
Approfondimento: come funziona?
modificaPrima di iniziare ad usare postOCR e per comprenderne appieno l'utilità, occorre avere le idee ben chiare riguardo le operazioni - ripetitive e laboriose - necessarie per trasformare il testo prodotto da un software OCR, anche di elevata qualità, in un lavoro che soddisfi ai requisiti di correttezza e buona formattazione di Wikisource.
Un elenco (incompleto) delle azioni da svolgere per correggere il testo è il seguente:
- Rimuovere porzioni di testo non facenti parte del corpo della pagina, come intestazione di pagina, piè di pagina e residui di pagine precedenti o successive.
- Verificare che quanto riportato, punteggiatura compresa corrisponda fedelmente all'originale a fronte.
- Correggere gli errori di scansione generici;
- Correggere gli errori di scansione specifici per l'opera su cui si sta lavorando;
- Ricomporre le parole spezzare a fine riga, trascurando inizialmente gli "a capo".
- Sistemare le spaziature in corrispondenza dei segni di interpunzione.
- Convertire gli apostrofi dattilografici in apostrofi tipografici (ove previsto).
- Marcare le aree in versi con i tag <poem>...</poem>.
- Nei testi in prosa, esternamente alle aree in versi:
- Identificare i paragrafi aggiungendo una riga vuota tra la fine di un paragrafo e l'inizio del successivo;
- Ricomporre ogni paragrafo rimuovendo gli "a capo" presenti tra i suoi periodi.
All'interno del namespace Pagina vanno poi eseguite le seguenti operazioni:
- Aggiungere in testa alla pagina, nella sezione header, l'intestazione. Ciò dev'essere fatto utilizzando il template {{RigaIntestazione}}, opportunamente compilato: in genere, si devono inserire il numero di pagina ed un riferimento all'opera o al capitolo.
- Sistemare le parole spezzate a inizio o fine pagina, usando il template {{Pt}} ("parola tronca" 2).
- Verificare se sono presenti citazioni ad autori o opere ed eventualmente aggiungere i riferimenti mediante i template {{AutoreCitato}} e {{TestoCitato}}.
- Sistemare le note a piè di pagina usando i tag <ref>...</ref>
- Aggiungere, se presente, il piè di pagina nella sezione footer, utilizzando {{PieDiPagina}}.
Eseguendo postOCR, vengono automatizzate una buona parte delle azioni contenute nella prima lista e l'inserimento dell'intestazione di pagina. La procedura può essere poi completata - dopo aver marcato le aree in versi! - con l'utilizzo degli strumenti aggiusta paragrafi e unisci linee. Per la correzione di errori "opera-specifici", postOCR agisce in cooperazione con trova e sostituisci; questa procedura è tuttavia complessa, data la necessità di caricare in memoria e salvare in una pagina le liste di sostituzioni "opera-specifiche" che sono state "ricordate", e verrà trattata a parte.
L'automazione dell'inserimento dell'intestazione di pagina si basa sull'analisi - lettura e caricamento in memoria - del testo completo presente due facciate prima rispetto a quella corrente, alla ricerca della presenza del template {{RigaIntestazione}}. Le intestazioni di pagina sono infatti simili rispettivamente per il recto ed il verso di un foglio del libro 3, tranne che per il numero di pagina; da libro a libro, l'intestazione di pagina può differire in base al capitolo. Ciò che fa postOCR è leggere la riga di intestazione ottenuta, identificare il numero di pagina, adeguarlo per la pagina attualmente in fase di modifica, e inserire in header il risultato ottenuto; nel caso di un cambio radicale di intestazione da una pagina all'altra, è necessaria una correzione manuale. Lo script non inserisce nessuna riga di intestazione se si verifica una condizione tra:
- L'analisi non restituisce alcuna riga di intestazione - quindi, nella facciata ispezionata non si trovava alcun template {{RigaIntestazione}}.
- Nella pagina che si sta modificando è già presente {{RigaIntestazione}}.
Inoltre, prima di inserire un nuovo template {{RigaIntestazione}}, postOCR verifica - in caso non vi sia ancora alcuna riga di intestazione - la corrispondenza della prima riga del corpo pagina con la riga di intestazione calcolata: se la somiglianza è sufficientemente alta, esso rimuove automaticamente tale riga.
- ↑ La convenzione sul trattamento degli apostrofi in sede di trascrizione prevederebbe un utilizzo prevalente dell'apostrofo dattilografico, per la maggior facilità di inserimento. Utilizzando postOCR, si può parzialmente rimediare a quest'impedimento.
- ↑ In realtà Pt è acronimo di "Pagina-Testo", perché il contenuto del primo parametro si visualizza in Pagina, il contenuto del secondo in Testo; ma a fini mnemonici "parola tronca" va benissimo :-)
- ↑ recto e verso di una carta o foglio indicano la facciata destra e sinistra seguente o viceversa, a seconda del tipo di scrittura di una lingua.