Discussioni aiuto:Match and Split
Prime osservazioni (spostate dalla pagina Aiuto)
modificaNote di Xavier121
modifica- Fine primo esperimento: spettacolare... non ci posso credere... è una forza :)))))))))) --Xavier121 11:21, 6 ott 2010 (CEST)
Note di Alex
modifica- Magnifico su Storia della letteratura italiana: non procedo per lasciare qualcosa a chi vuol provare.
- Difficile il caso di Osservazioni sulla morale cattolica: capirtoli 1 e 2 ok, si inceppa al capitolo 3. Il problema sono le note che continuano da una pagina alla successiva.
- Le note "semplici" sono gestite perfettamente. Anche i capitoli che iniziano a metà pagina sembrano gestiti bene.
- Importante che il codice match stia su una riga a se stante (tipo titolo).
- Testata su Adelchi la strategia di match and split su testo globale (capitoli riuniti in Adelchi/TestoCompleto). L'impressione è che sia conveniente il M&S sui singoli capitoli, tranne in casi molto particolari.
- Nelle opere non proofread pare opportuna la conversione di eventuali codici di inizio sezione (tipo == ==, === === ecc) con tag di formato carattere (tipo <big> o altri), per evitare la necessità di gestire gli indici automatici
- Opportuna l'apertura di una pagina dedicata per il governo dei lavori di trascrizione inversa mediante M&S (elenco opere di cui va ricercata e caricata una versione immagine; elenc delle opere pronte per il M&S)
- Pronto per il M&S I promessi sposi vs. Indice:I promessi sposi (1840).djvu, caricato or ora prima di utilizzarlo, attendere che questo link: File:I promessi sposi (1840).djvu si "fluifichi"). --Alex brollo (disc.) 10:07, 7 ott 2010 (CEST)
- Pronte per il M&S molte opere di Manzoni in Indice:Opere varie (Manzoni).djvu; nell'indice, provvisoriamente, è stato introdotto in sommario l'elenco delle opere presenti in Ns0 dell'autore (l'elenco va rivisto conservando quelle che sono comprese nel grosso file djvu).
- Nota: istruire Alebot a cambiare il codice ---- <references /> in {{Sezione note}}
M&S: contro-osservazioni teoriche
modificaMi sembra quasi di aver capito.
Ma siccome sono bastian contrario, vediamo di rattoppare un pochino, per il caso in cui i capitoli siano molti e brevi. Cosa succede se:
- Alebot prepara una versione del testo "in paginona unica", concatenando il testo dei capitoli ripuliti da tutte le scorie (template intestazione, categorie, ecc);
- M&S viene lanciato da questa paginona; trasferirà tutte le pagine; poi creerà un inutile tag pages globale, chissenefrega;
- un utente astuto ripassa le Pagine (tanto, qualche ritocchino servirà), appiccica dove servono i templates Ns0 e lancia builder di Alebot.... che finisce il lavoro, come ha fatto recentemente su Rime nuove, che (guardalo) sembra fatto "a mano" ma non lo è.
Pensi che possa funziare? --Alex brollo (disc.) 00:28, 6 ott 2010 (CEST)
- :-) OK, pensi che possa funziare. Ovviamente è una questione di efficenza: l'attuale M&S è fenomenale per le pagine "lunghe", potrebbe essere un pochino noioso per le pagine "corte", tutto sta a trovare il punto in cui il fastidio di elaborare ancora sia inferiore al fastidio di ripetere il matching n. volte. A occhio: poesie->paginona, prose->M&S liscio. Indice:Opere varie (Manzoni).djvu ha tutte le varianti, es. Adelchi è in buon candidato per fare da cavia per il "paginone". Fra l'altro, il "paginone" è la via maestra per costruire un book pdf... ma prima ho un paio di cosette da fare. --Alex brollo (disc.) 19:44, 6 ott 2010 (CEST)
La procedura inversa M&S in un'opera inesistente
modificaNonostante la procedura M&S sia creata per la trascrizione inversa, è possibile, e forse vantaggioso, utilizzare la procedura in modo "creativo" anche per i casi in cui una versione testuale già pronta non esiste ancora.
Le premesse per questa possibilità sono che esista, o sia scaricabile in qualche modo, un testo "in blocco" (ad esempio può essere utilizzato il file .....djvu.txt disponibile su IA), e che, ovviamente, sia anche disponibile un file djvu con layer di testo.
Il sistema si basa su queste due osservazioni:
- le procedura Match e Split sono del tutto indipendenti l'una dall'altra;
- la procedura Match segmenta il testo in pagine, inserendo un particolare codice nel punto di inizio di ogni pagina;
- eseguito il match, si ottiene semplicemente un testo con intercalati titoli di sezione di secondo livello, che contengono il link alla pagina. In questa fase (prima di lanciare lo Split) il testo può essere liberamente modificato, facendo attenzione a non toccare i "titoli di sezione speciali".
- La procedura Split fa due cose:
- copia il testo, pagina per pagina, nelle pagine linkate dal codice;
- nel testo da cui sono state copiate le pagine sostituisce la testo il codice di transclusione puntato sulle stesse pagine.
Quindi la procedura "inversa" consiste in:
- caricare il testo in blocco in una pagina Ns0 provvisoria
- far partire Match
- dopo che il Match è concluso, "aggiustare" quanto più possibile il testo (molto comodo estrarlo e procedere su un buon programma di elaborazione testi); il vantaggio è che piccoli scannos ricorrenti possono essere corretti in blocco con un solo edit, e inoltre che può essere aggiunto codice in testa alle pagine, subito sotto il codice Match, con la certezza che non confonderà il programma e che sarà ricopiato esattamente tal quale nella pagina.
Un primo test preliminare è stato fatto qui:Don_Chisciotte_della_Mancia/TestoSecondaParte, elaborando in blocco circa 250 pagine su 650, ma non si è trattato di un test "raffinato", in quanto non è stata eseguita la "pre-elaborazione post-match". La procedura potrebbe, se ben attuata, consentire anche l'introduzione dei tl|Ns0 e quindi permettere, in una seconda fase, la costruzione automatica delle pagine Ns0 dei vari capitoli; è molto probabile che risulti anche piuttosto semplice l'inserimento quasi automatico dei tl|RigaIntestazione (che dovrebbero essere messi in testa alle singole pagine, e che potrebbero essere spostati all'interno dell'header noinclude da Alebot).
- Risultato dell'esperimento: fallito per macchinosità. Da riprovare, ma dopo aver estratto il testo, e averlo caricato capitolo per capitolo in capitoli definitivi. Dubbio, comunque, che ne valga la pena; tanto vale caricare direttamente il testo pagina per pagina con i vecchi aggeggi o con le routine djvutext di pywikipedia. --Alex brollo (disc.) 09:53, 29 ott 2010 (CEST)
Esperienze: Myricae
modificaSu Myricae ho testato lo script autoMatch() e ho aggiunto una piccola "post-elaborazione pre-split". Si sono manifestati alcuni istruttivi problemi.
AutoMatch() è uno script python accessibile solo esternamente (al momento hanno l'accesso Aubrey e Filosottile, ma l'ho lanciato solo io) che, data un'opera di cui fare il match and split, purchè:
- esista un file djvu.xml (di Internet Archive) copiato nel pc dove opera lo script;
- esista un file indice ottenuto dallo stesso file djvu di Internet Archive (con layer di testo)
Lo script estrae la lista dei testi delle pagine dal file djvu.xml; estrae l'elenco dei capitoli dell'opera in Ns0; capitolo per capitolo, legge il testo, elimina i template di testa, estrae il "primo pezzo" del testo e scorre l'intera lista delle pagine da djvu.xml ricercando il migliore "match". Trovato il migliore match, se il valore di similitudine è soddisfacente predispone il tag Match e lo aggiunge in testa alla pagina Capitolo nel punto giusto. Il procedimento è molto veloce, limitato solo dal tempo di aggiornamento delle pagine via bot (circa 5-10 sec. a pagina). La percentuale di successo nel matching è elevata (oltre il 95%) e il numero di pagine correttamente escluse è praticamente il 100%.
Lanciato su Myricae, apparentemente tutto è andato bene ma poi si è rilevato un problema: la grandezza del "primo pezzo" della pagina capitolo era eccessiva; nel caso in cui il testo fosse spezzato su più pagine nel nsPagina, quando nella prima pagina c'era solo un piccolo frammento del testo (pochi versi), è avvenuto che il match fosse migliore sulla pagina successiva; vi sono vari casi in cui lo script ha "sbagliato pagina di 1".
Fatto il match generale, a mano il match è stato lanciato e quindi la pagina Ns0 è stata "spezzata nei segmenti". In questa fase si apre un'opportunità: aggiungere, subito dopo al primo link pagina, "qualcosa" che si vuole sia trasportato nel nsPagina, ma che non è presente nel testo originale (template Ns0, titolo della poesia formattato: centrato, ecc). Un secondo script si è ripassato le pagine pronte per lo split (riconoscibili per la presenza di link alle pagine ma assenza del tag Match) ed ha aggiunto quello che era opportuno aggiungere basandosi sui dati di Intestazione. Dopodichè è stato lanciato lo split.
Problemi:
- nel caso di match erroneo, anche lo split è risultato erroneo;
- nel caso di pagine suddivise in sezioni, la trascrizione delle sezioni talora è stata difettosa; il secondo split ha "rullato" il precedente (che comunque non è perduto: può essere recuperato dalla cronologia della pagina). Questo, in prima ipotesi, è stato causato dallo "split in serie", ossia dallo split lanciato in sequenza senza attendere che lo split precedente si completasse. Errore da non ripetere!
Visti questi problemi, ho apposto su Indice:Myricae.djvu un WIP (io ho creato il danno, e a me tocca risistemare), e ho imparato che:
- la lunghezza del "blocco di inizio testo" su cui fare l'autoMatch è critica;
- è meglio lanciare uno split alla volta, attendendo che il processo si completi (non sono stati rilevati problemi, invece, lanciando in serie il Match, che risulta meno "delicato") --Alex brollo (disc.) 09:49, 29 ott 2010 (CEST)
aggiornare testo?
modificaCopio da dietro... "La prima volta controllate che nelle preferenze sia spuntato "Usa interattivamente il bot ThomasBot".
Nelle mie "Preferenze/accessori" trovo: " Match and Split mediante ThomasBot (per i comandi vedi Aiuto:Match and Split) [editor esperti]" fa lo stesso?Silvio Gallio (disc.) 19:25, 1 giu 2011 (CEST)
Grazie. Avevo cambiato il messaggio perché "usa interattivamente" vuol dire tutto e niente... Candalùa (disc.) 19:29, 1 giu 2011 (CEST)
Tonto
modificaÈ universalmente noto che io sono particolarmente tonto. Per cui pregherei qualcuno di capace, di mettere mano alle spiegazioni sull'uso dello split senza il match qui dietro. Sono alle prese con il problema descritto, testo presente in NS0 ma senza layer e volevo provare a splittare ma, causa la mia tontaggine, proprio non riesco a entrare nella metodologia. Poiché mi considero un betatester di quelli buoni (ovvero: se ci arrivo io allora...) ritengo che altri possano avere lo stesso problema. In particolare molto oscuro mi è il punto 4 che parla di visualizzatore (quale? Quello del djvu/pdf? Ma si può scrivere usando Djview? Cooome? Quale altro?), Parla di "applicare il primo codice split", poi parla di "codice speciale". Insomma per favore qualcuno lo metta in modo comprensibile (a me). Così magari posso trasmettere questa peraltri/o elementare procedura in una paginetta-guidina adatta a noi desperados. Se puede? :) --Silvio Gallio (disc.) 12:34, 15 giu 2011 (CEST)
Peregrinaggio di tre giovani figliuoli del re di Serendippo
modificaHo testato per la prima volta il bot su Peregrinaggio di tre giovani figliuoli del re di Serendippo e il risultato è magnifico. Mi sorgono solo un dubbio e un'osservazione Alex e cioè:
- Ora tutte le pagine in nsPagina sono al 25 % ma essendo nella pratica importazione del testo precedente trascritto quando non c'era una versione cartacea, non si possono portare automaticamente almeno al 50-75% in modo che manchi solo il ritocco umano finale?
Osservazione:
- Per non so quale mistero il testo senza versione cartacea a fronte era incompleto (solo fino a pagina 49 su 178 e imprimatur solo prima pagina (manacano le pagine djvu da 4 a 7)). Quindi ora tocca trascrivere a manina le altre. Segnalo che nonostante la scrittura cinquecentesca e un OCR praticamente incomprensibile il Bot è stato capace di capire dove fermarsi. Ora ci penso io nei prossimi giorni/settimane a finire il lavoro. --Nastoshka (disc.) 16:23, 15 feb 2015 (CET)
- punto 1. Molto spesso, il testo che si matcha-splitta proviene da un'altra edizione, oppure da un sito (come Gutemberg,o LiberLiber) che adotta propri stili standard di ortografia-formattazione; di conseguenza, possono esserci miriadi di differenze grandi o piccole. A me l'idea di due passaggi umani di rilettura non dispiace.
- punto2. Bisognerebbe chiedere a Alexandros69; forse è uno di quegli utenti che amano trascrivere offline e quindi quello è il testo che era riuscito a produrre. --Alex brollo (disc.) 16:32, 15 feb 2015 (CET)