Utente:Alex brollo/melodie

Da Wikisource.
Jump to navigation Jump to search
Strato txt djvu
Poiché pur veggio tormi . -
Da vn'acerba partita
Il mio ben , la mia vita ;
Ma che parl'io di ricrouar accenti
Conformi a miei tormenti ?
Ahi,che sì graue io lento il mio duol farti,
Che tempo è di morir, non di lagnarti .
M A D. XXII.
OCiel deh per pietà dammi tanti occhi
Quante hai tu chiare ftelle
Si che l'afprp dolor, che'l cor mi fuelle
Per la dura partita q
In pianto almcn trabocchi.
Ma doue ( ohimè) poich'io fon tutta ardore
Haurò in mio (campo lagrimofo humore >
O dolente mia vita
Com'ogni noftro ben ratto fé n'fugge .
Non m'ancide il dolor, e non mi ftrugge
L'incendio,e non mi porge il pianto aita.
M A D. XXIII.
NOn è gran Mago Amore,
Se da vn bel uolto candido,e vermiglio
Tragge di morte vn languido pallore J
Se da ridente ciglio
Mone talhor per gioco
Pena , ch'ancide vn core ?
Se da la neue il foco ,
Se da tranquillo mar fiere procelle
Defta,e la pioggia da ferenc Stelle ?
i ; Air*
html .text() su wikisource
52

     Poiche pur veggio tormi
     Da un’acerba partita
     Il mio ben, la mia vita;
     Ma che parl’io di ritrovar accenti
     Conformi à miei tormenti?
     Ahi, che sì grave io sento il mio duol farsi,
     Che tempo è di morir, non di lagnarsi.

MAD. XXII.

O Ciel deh per pietà dammi tanti occhi
Quante hai tù chiare stelle
     Si che l’aspro dolor, che ’l cor mi svelle
     Per la dura partita
     In pianto almen trabocchi.
     Ma dove (ohime) poich’io son tutta ardore
     Havrò in mio scampo lagrimoso humore?
     O dolente mia vita
     Com’ogni nostro ben ratto se n’ fugge.
     Non m’ancide il dolor, e non mi strugge
     L’incendio, e non mi porge il pianto aìta.

MAD. XXIII.

NOn è gran Mago Amore,
Se da un bel volto candido, e vermiglio
     Tragge di morte un languido pallore?
     Se da ridente ciglio
     Move talhor per gioco
     Pena, ch’ancide un core?
     Se da la neve il foco,
     Se da tranquillo mar fiere procelle
     Desta, e la pioggia da serene Stelle?

All-
Trasformate

6,3,6,5,1,1,2,9,7,2,3,3,1,2,3,4,1,2,3,7,2,8,7,8,1,4,8,1,7,2,5,2,5,2,3,4,6,3,5,1,2,6,3,2,8,1,1,1,2,5,5,3,3,5,5,5,5,6,3,2,6,6,2,3,7,6,5,3,2,6,3,2,4,7,1,2,6,5,10,2,4,1,6,8,3,5,6,5,2,3,6,9,6,1,1,7,3,4,8,6,3,5,2,7,1,3,8,2,6,1,3,2,7,12,3,2,5,2,6,5,1,1,2,6,3,1,4,4,6,2,2,2,3,5,9,9,6,2,5,2,8,7,1,2,2,7,6,4,6,3,5,4,1,9,2,4,1,2,2,2,4,2,4,1,2,2,10,3,5,8,7,2,7,2,6,6,1,1,1,4

2,6,3,6,5,2,9,7,2,3,4,2,3,5,2,3,7,2,8,7,8,1,4,9,4,3,2,5,2,5,2,3,4,6,3,5,1,2,6,3,2,9,4,5,1,4,3,3,5,5,5,5,6,3,2,6,6,2,3,7,6,3,2,3,2,6,3,2,4,7,2,6,5,10,2,4,7,8,3,5,6,5,2,3,6,9,7,1,7,3,4,8,6,3,5,2,2,6,3,8,2,6,1,3,2,7,11,1,3,2,5,2,6,5,4,6,3,1,4,4,6,2,2,2,3,5,8,1,9,6,2,5,2,8,8,2,2,7,6,4,6,3,5,5,9,2,5,2,2,2,4,2,5,2,2,10,3,5,8,6,1,2,7,2,6,7,4

Note python[modifica]

  • caricare difflib;
  • creare un'istanza di SequenceMatcher();
  • caricare le trasformate a e b con .set_seqs() dopo splittamento;
  • salvare .get_opcpdes()

Si ottiene la lista delle sequenze identiche (come indici nelle liste originali a e b) e la lista delle differenze espresse come insert o delete.

Il risultato per le due trasformate è: [('insert', 0, 0, 0, 1), ('equal', 0, 4, 1, 5), ('delete', 4, 6, 5, 5), ('equal', 6, 11, 5, 10), ('replace', 11, 13, 10, 11), ('equal', 13, 15, 11, 13), ('replace', 15, 17, 13, 14), ('equal', 17, 26, 14, 23), ('replace', 26, 29, 23, 26), ('equal', 29, 44, 26, 41), ('replace', 44, 45, 41, 44), ('equal', 45, 46, 44, 45), ('replace', 46, 51, 45, 46), ('equal', 51, 66, 46, 61), ('replace', 66, 67, 61, 63), ('equal', 67, 74, 63, 70), ('delete', 74, 75, 70, 70), ('equal', 75, 81, 70, 76), ('replace', 81, 83, 76, 77), ('equal', 83, 92, 77, 86), ('replace', 92, 94, 86, 87), ('equal', 94, 103, 87, 96), ('replace', 103, 105, 96, 98), ('equal', 105, 113, 98, 106), ('replace', 113, 114, 106, 108), ('equal', 114, 120, 108, 114), ('replace', 120, 123, 114, 115), ('equal', 123, 134, 115, 126), ('replace', 134, 135, 126, 128), ('equal', 135, 141, 128, 134), ('replace', 141, 143, 134, 135), ('equal', 143, 151, 135, 143), ('replace', 151, 153, 143, 144), ('equal', 153, 155, 144, 146), ('replace', 155, 157, 146, 147), ('equal', 157, 162, 147, 152), ('replace', 162, 164, 152, 153), ('equal', 164, 170, 153, 159), ('replace', 170, 171, 159, 161), ('equal', 171, 175, 161, 165), ('replace', 175, 179, 165, 166), ('equal', 179, 180, 166, 167)]

che equivale alla seguente rappresentazione:

1		-2
2	1	6
3	2	3
4	3	6
5	4	5
	5	1
	6	1
6	7	2
7	8	9
8	9	7
9	10	2
10	11	3
11		-4
	12	3
	13	1
12	14	2
13	15	3
14		-5
	16	4
	17	1
15	18	2
16	19	3
17	20	7
18	21	2
19	22	8
20	23	7
21	24	8
22	25	1
23		-4
24		-9
25	26	4
26		-3
	27	8
	28	1
	29	7
27	30	2
28	31	5
29	32	2
30	33	5
31	34	2
32	35	3
33	36	4
34	37	6
35	38	3
36	39	5
37	40	1
38	41	2
39	42	6
40	43	3
41	44	2
42		-9
43		-4
44		-5
	45	8
45	46	1
46		-4
	47	1
	48	1
	49	2
	50	5
	51	5
47	52	3
48	53	3
49	54	5
50	55	5
51	56	5
52	57	5
53	58	6
54	59	3
55	60	2
56	61	6
57	62	6
58	63	2
59	64	3
60	65	7
61	66	6
62		-3
63		-2
	67	5
64	68	3
65	69	2
66	70	6
67	71	3
68	72	2
69	73	4
70	74	7
	75	1
71	76	2
72	77	6
73	78	5
74	79	10
75	80	2
76	81	4
77		-7
	82	1
	83	6
78	84	8
79	85	3
80	86	5
81	87	6
82	88	5
83	89	2
84	90	3
85	91	6
86	92	9
87		-7
	93	6
	94	1
88	95	1
89	96	7
90	97	3
91	98	4
92	99	8
93	100	6
94	101	3
95	102	5
96		-2
97	103	2
98		-6
	104	7
	105	1
99	106	3
100	107	8
101	108	2
102	109	6
103	110	1
104	111	3
105	112	2
106	113	7
107		-11
108		-1
	114	12
109	115	3
110	116	2
111	117	5
112	118	2
113	119	6
114	120	5
115		-4
	121	1
	122	1
	123	2
116	124	6
117	125	3
118	126	1
119	127	4
120	128	4
121	129	6
122	130	2
123	131	2
124	132	2
125	133	3
126	134	5
127		-8
128		-1
	135	9
129	136	9
130	137	6
131	138	2
132	139	5
133	140	2
134		-8
135	141	8
	142	7
	143	1
136	144	2
137	145	2
138	146	7
139	147	6
140	148	4
141	149	6
142	150	3
143		-5
144	151	5
	152	4
	153	1
145	154	9
146	155	2
147		-5
	156	4
	157	1
148	158	2
149	159	2
150	160	2
151	161	4
152	162	2
153		-5
	163	4
	164	1
154	165	2
155	166	2
156	167	10
157	168	3
158	169	5
159	170	8
160		-6
161		-1
	171	7
162	172	2
163	173	7
164	174	2
165	175	6
166		-7
	176	6
	177	1
	178	1
	179	1
167	180	4
168	181

Primo vagito: diff.py[modifica]

  1. input: nome del file djvu, numero della pagina; il file djvu deve essere scaricato nella directory locale
  2. estrazione del file dsed un formato utf-8 della pagina (lo strato testo deve avere detail word, come i djvu di IA)
  3. estrazione di tre liste: i blocchi word, le parole contenute nel blocchi word (tradotte in unicode), le lunghezze delle parole
  4. scaricamento dell'html della pagina Pagina
  5. estrazione del .text() della div pagetext (sequenza patole separate da spazi)
  6. estrazione della lista delle parole e delle loro lunghezze
  7. creazione di un oggetto difflib.SequenceMatcher delle due liste delle lunghezze (da approfondire le due opzioni autojunk True e False, con la proma opzione alcuni match sono fallati)
  8. estrazione degli opcodes
  9. selezione degli opcodes 'equal'
  10. appaiamento delle sequenze di parole puntate dagli opcodes 'equal'
  11. rapida verifica che le sequenze siano effettivamente almeno vagamente simili con oggetto.ratio()
    1. problema sulle sequenze di parole 'equal' quando le sequenze siano di una o due parole: talora appaiamenti errati casuali (appaiamenti da scartare)
    2. problema di appaiamenti corretti ma con ratio estremamente basso o 0 (es 1' vs. l’) (appaiamenti da identificare e applicare): settare funzioni junk per i casi più comuni
todo
  1. sostituire le parole errate con quelle corrette nella lista parole OCR
  2. trasformarle in utf-8 e sostituirle dentro gli elementi word
  3. sostituire gli elementi word errati con quelli corretti del file dsed
  4. ricaricare nel file djvu il file dsed
fine

In questo modo si allinea il 60-80% delle parole anche in testi seicenteschi

next step
  1. analisi degli opcodes diversi da 'equal'