[HOMEWORK] Homework 4 di recupero (scadenza 5 gg prima dell'esame) [UPDATED ZIP 8/12]

andrea.sterbini (172680 points)
511 927 1776
asked Dec 5, 2020 in Avvisi by andrea.sterbini (172,680 points)
edited Dec 8, 2020 by andrea.sterbini

ATTENZIONE:

  • eventuali correzioni verranno inserite qui
    • Abbiamo fissato il timeout a 2 secondi per ciascun test (times warp factor sulla VM)
    • Per un mio errore di packaging ho messo nello zip la penultima versione del problema e dei test.
      Ho aggiornato lo zip con i files corretti, RISCARICATELO (versione del 8/12).
  • NOTA: per eseguire i test SENZA i controlli ed il timeout modificate test_01.py settando la variabile DEBUG=True

Istruzioni

Per svolgere l'homework:

  • Installate le librerie necessarie (COMPRESO stopit)
  • Scaricate il file HW4rec.zip e scompattatelo in una directory
    • Lo zip contiene
      • l'esercizio da svolgere, descritto all'inizio del file program01.ita.py (in italiano) oppure program01.eng.py (in inglese)
        • l'esercizio consiste nel realizzare, se necessario definendo funzioni ausiliarie, la funzione descritta all'inizio del file, completandone il codice
      • altre librerie e file necessari ad eseguire i test sulla vostra macchina
  • Posizionatevi nella directory creata unzippando l'archivio e rinominate il file program01.ita con il nome program01.py
  • Editate il file program01.py implementando le funzioni necessarie a risolvere l'esercizio.
  • ATTENZIONE: il programma NON DEVE eseguire nessun input() o print(), infatti riceve tutte le informazioni di cui ha bisogno tramite i parametri della funzione che dovete completare e torna il risultato con return.
  • ATTENZIONE: SONO VIETATE le variabili globali.
  • ATTENZIONE: SONO VIETATE tutte le altre librerie a parte quelle già importate nel testo.
  • ATTENZIONE: i vostri programmi NON DEVONO sfruttare eventuali periodicità o caratteristiche strutturali degli input, ma devono essere applicabili a qualsiasi input valido.
  • ATTENZIONE: NON LASCIATE ISTRUZIONI DI TEST NEL PROGRAMMA, A MENO CHE NON SIANO DOPO UNA RIGA
    • if __name__ == '__main__':
      • vostre istruzioni di test che in questo modo non vengono eseguite durante l'import del file
  • Per eseguire i test
    • aprite una finestra "Anaconda Prompt" e posizionatevi nella directory ottenuta scompattando lo zip
    • eseguite il comando (test senza timeout)
      • pytest test_01.py -v -rA
    • oppure (con una stampa dei tempi impiegati per eseguire ciascun test)
      • pytest test_01.py -v -rA --durations 0
    • oppure (CON stampa dei tempi spesi dal programma nelle 20 funzioni complessivamente più lente)
      • pytest test_01.py -v -rA --profile
    • Per far fermare i test al primo errore aggiungete l'opzione -x
    • Per chi usa Spyder:
      • è possibile eseguire i test direttamente da dentro Spyder installando il plugin spyder-unittest (ma senza timeout o parametri aggiuntivi)
      • è possibile ottenere i tempi spesi in ciascuna funzione direttamente da dentro Spyder installando il plugin spyder-line-profiler

NOTA: per aprire i file di testo in formato utf8 NON usate Notepad che non riconosce gli accapi Unix ('\n') ma usate Spyder o Notepad++

Scadenze

  • Gli homework di recupero scadono 5 giorni prima dell'esame che volete svolgere

Consegna entro le 23:59 di 5 gg prima dell'esame

Dovrete consegnare solo il file program01.py

La pagina di consegna è https://q2a.di.uniroma1.it/homeworks/delivery?homework=10

Potete consegnare più volte, vale l'ultima.

5 Answers

m
m.lanzolla (700 points)
1 8 12
answered Dec 6, 2020 by m.lanzolla (700 points)

Salve Professore,

è giusto che nel lexicon-GR-EN.csv alcune parole sono ripetute?

esempio:

ἥβη;hebe

ἥβη;youthful prime;youth

Ma soprattutto questo, che ad un rigo è [unavailable] ed al un altro ha significato heavenly

δῖος;[unavailable]

δῖος;heavenly

Grazie

G
Giordano_Dionisi (3100 points)
12 38 58
commented Dec 6, 2020 by Giordano_Dionisi (3,100 points)
Calcola anche io ci ho fatto caso ma non dovrebbe essere un problema minimamente, insomma è solo una semplice ripetizione e te aumenti il valore delle parole trovate praticamente
andrea.sterbini (172680 points)
511 927 1776
commented Dec 7, 2020 by andrea.sterbini (172,680 points)
Sento Di Ciccio e controlliamo
G
Giordano_Dionisi (3100 points)
12 38 58
commented Dec 7, 2020 by Giordano_Dionisi (3,100 points)
Perfetto perfetto prof, ci tenga aggiornati allora !!
commented Dec 7, 2020 by Claudio.DiCiccio (2,770 points)
Salve!

Grazie mille per il controllo! No, questo non dovrebbe affatto accadere infatti. Controlliamo subito cosa è accaduto nel trasferimento dei file sul server. In teoria, lei dovrebbe vedere questo:

ἥβη;hebe;youthful prime;youth
[…]
δῖα;[unavailable]
δῖος;heavenly

Vi teniamo aggiornati.

Saluti,
CDC
answered Dec 7, 2020 by Claudio.DiCiccio (2,770 points)

Carissim*,

Investigando sul problema che il collega ha segnalato (kudos per m.lanzolla!), abbiamo osservato che il server si è sincronizzato con un branch vecchio del nostro repository Git interno. In particolare, test_01.pylexicon-EN-IT.csv e lexicon-GR-EN.csv appartengono ad un commit risalente a più di una settimana fa – quindi, ad una versione unstable precedente al rilascio dello homework. Il testo dell’esercizio resta praticamente lo stesso ma i file aggiornati saranno caricati nel pomeriggio. Ci prendiamo un paio di ore extra per sbarazzarci di questo spiacevole bug nella sincronizzazione. Vi ringraziamo in anticipo per la comprensione.

Cordiali saluti,
CDC

r
roberto.alma (480 points)
0 2 5
commented Dec 7, 2020 by roberto.alma (480 points)
Ho una domanda:

ho trovato alcune parole che hanno delle traduzioni ripetute, come, ad esempio:
['γῆρας', 'old age', 'old age']

c'è una ragione particolare ? (nella versione precedente questo non si verificava, dobbiamo tenerne conto?)

Grazie
commented Dec 8, 2020 by Claudio.DiCiccio (2,770 points)
Salve,

Ottima osservazione! Effettivamente, la presenza di riproposizioni ridondanti di traduzioni di una parola non cambia alcunché ai fini del risultato. Tuttavia, stiamo per sostituire il file onde evitare che la loro presenza porti ad incomprensioni.

Saluti,
CDC
r
roberto.alma (480 points)
0 2 5
answered Dec 7, 2020 by roberto.alma (480 points)

Altra domanda. Sto facendo i test, ma noto qualcosa che non mi torna.

Primo esempio: nelle istruzioni si dice: "Per concludere: se due o più sequenze come quelle descritte prima compaiono in
  un paragrafo, dovrebbero tutte comparire anche nel risultato. Tuttavia, non
  sono di interesse le sottosequenza interne. Nell’esempio in alto, infatti, la
  tupla
    (("θεά, θύγατερ διός", 2), ("dea figlia di zeus", 3))
  non è inclusa nella soluzione."

Nel test n. 2, tuttavia, nelle soluzioni attese c'è (('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3)), (('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3)) e credo che la prima sia una sottosezione della seconda.

Nel test n. 6, invece, ho notato che non è inclusa tra le soluzioni la parola καὶ presente in odyssey.txt che invece mi risulta tradotta in proemio.txt. Si tratta di un refuso o dobbiamo eslcudere le sequenze composte da una sola parola che siano inferiori a n caratteri?

Grazie

andrea.sterbini (172680 points)
511 927 1776
commented Dec 7, 2020 by andrea.sterbini (172,680 points)
Chiedo a Di Ciccio
commented Dec 8, 2020 by Claudio.DiCiccio (2,770 points)

Buongiorno,

Ottimo che lo abbia notato. Osservi che il test n. 2, però, ha una particolarità. Il nome del file in italiano è proemio-glitches.txt perché, aprendo quel file, può vedere che ci sono parole e parti di frasi ripetute a mo’ di glitch. Nel paragrafo 3, ad esempio:

imperterrita irrefrenabile poiché poiché
memore di ciò, da qualunque principio,
memore di di di ciò di ciò, da qualunque principio,
ad ogni costo, dea figlia di zeus,
narrane cagione e spirito.

Nel test 6, non è un refuso: noti che i dizionari non sono i medesimi degli altri test (sono lexicon-GR-EN_.csvlexicon-EN-IT_.csv al posto di lexicon-GR-EN.csvlexicon-EN-IT.csv, rispettivamente). Alcune parole presenti in una coppia di dizionari non sono presenti nell’altra.

Spero che questo aiuti.

Saluti,
CDC

andrea.sterbini (172680 points)
511 927 1776
commented Dec 8, 2020 by andrea.sterbini (172,680 points)
Ho aggiornato lo zip
f
flaviano (280 points)
0 1 3
commented Jul 21, 2021 by flaviano (280 points)
Buongiorno professore,

come chiesto poco sopra nel test n. 2 il risultato atteso è :

{(('ἔννεπε, μοῦσα', 1), ('dissi io, o musa', 1)), (('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3)), (('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3))}

ma la seconda coppia è una sottosequenza della terza.

Deduco che con "non sono di interesse le sottosequenza interne" si riferisca proprio al testo in input, non alle sequenze in output.
commented Jul 26, 2021 by Claudio.DiCiccio (2,770 points)

Buonasera,

Detto che purtroppo c’è un refuso nel testo (dovrebbe essere: ‘sottosequenze’), penso che la sua deduzione sia giustissima, se ho inteso bene cosa suggerisce. Preferisco però precisare che non direi che si tratta della differenza tra il testo in input e quello in output, ma del fatto che parliamo di coppie di sequenze diverse. Nel caso fosse già chiaro, va benissimo. Altrimenti, uso proprio questo esempio: Quando leggiamo tra i risultati attesi

(('τῶν ἁμόθεν', 2), ('di ciò, da qualunque principio', 3))
e
(('τῶν ἁμόθεν γε, θεά θύγατερ, διός', 2), ('di ciò, da qualunque principio, ad ogni costo, dea figlia di zeus', 3))
dobbiamo considerare che ‘τῶν ἁμόθεν’ e ‘τῶν ἁμόθεν γε, θεά θύγατερ, διός’ sono in relazione con sequenze diverse nel testo in italiano. Per questo compaiono entrambi.

,εγ νεθόμἁ νῶτ
θεά θύγατερ,
.νῖμἡ ὶακ ὲπἰε ,ςόιδ

e

,εγ νεθόμἁ νῶτ
θεά θύγατερ,
.νῖμἡ ὶακ ὲπἰε ,ςόιδ

corrispondono a

imperterrita irrefrenabile poiché poiché
memore di ciò, da qualunque principio,
memore di di di ciò di ciò, da qualunque principio,
ad ogni costo, dea figlia di zeus,
narrane cagione e spirito.

Al contrario,

(("θεά, θύγατερ διός", 2), ("dea figlia di zeus", 3))
o
(('τῶν', 2), ('di ciò', 3))

non andrebbero bene, perché sarebbero tuple riferite a sottosequenze di sequenze più lunghe, da inserire già nella soluzione.

Saluti,
CDC

f
flaviano (280 points)
0 1 3
commented Jul 26, 2021 by flaviano (280 points)
La ringrazio della risposta professore, ora è tutto chiaro.

A presto, buona serata.

Francesco De Santis

P.S.: Visto che ci sono le segnalo che da domenica non vengono rivalutati gli Homework aggiornati.
andrea.sterbini (172680 points)
511 927 1776
commented Jul 27, 2021 by andrea.sterbini (172,680 points)
Prova a riconsegnare, ho avuto un paio di problemi con la migrazione di Q2A/twiki sulla nuova infrastruttura vmware
f
flaviano (280 points)
0 1 3
commented Jul 27, 2021 by flaviano (280 points)
D'accordo, la ringrazio professore.
andrea.sterbini (172680 points)
511 927 1776
commented Jul 27, 2021 by andrea.sterbini (172,680 points)
C'è un disallineamento dell'orologio di q2a, il test viene fatto ma il file ha data successiva per cui mostra "Uploaded" invece che "Tested"
Ho sistemato l'orologio, i prossimi upload dovrebbero mostrare il messaggio giusto
g
giacomo_venturini (6680 points)
2 5 39
answered Dec 8, 2020 by giacomo_venturini (6,680 points)
Nei risultati del compito stanno venendo conteggiati i bonus, visto che per l'HW2rec non succede, penso che ci sia un errore in questo caso.
andrea.sterbini (172680 points)
511 927 1776
commented Dec 8, 2020 by andrea.sterbini (172,680 points)
Grazie                                    .
N
Nazareno_Furchì (300 points)
1 2 3
answered Dec 29, 2020 by Nazareno_Furchì (300 points)
E' possibile importare il modulo re?
andrea.sterbini (172680 points)
511 927 1776
commented Dec 29, 2020 by andrea.sterbini (172,680 points)
No, nessuna libreria