Uppsala universitet
Institutionen för lingvistik
Dokumenthantering, vt 2002
Leif-Jöran Olsson
Syftet med denna laboration är att få en första praktisk erfarenhet av lagring och komprimering.
Tänk dock på att anteckna frågor och annat som dyker upp inför genomgången. Jobba gärna två och två.
- Testa huffmankodning med /local/kurs/dh02/huffman.perl.
- Använd följande lexikon från första stycket i /local/texts/jabberwocky (eller prova med ett eget).
13 e 8 t 7 i 6 s 6 r 6 o 6 l 6 h 6 a 5 m 5 g 5 b 4 n 4 d 3 y 3 w 2 v 2 A 2 , 1 u 1 T 1 D 1 1 ' 1 . 1 :- Vad får symbolerna för koder?
- Räkna ut teoretisk och faktisk informationsinnehåll för ovan angivna symboler. Förenklat: I = -lg(fsym/Ntot)/lg(2)
- Beräkna medelinformationsinnehållet, det vill säga entropin, H = -Summa(fsym/Ntot * lg(fsym/Ntot)/lg(2)).
- Vad blir kompressionsgraden för stycket?
- Titta på Perl-skriptet /local/kurs/dh02/webb.perl och tillhörande html-formulärsida/local/kurs/dh02/webb.html:
- Kopierar Perl-skriptet till en egen katalog (som ni skapar om ni inte har en redan) /local/etc/httpd/cgi-bin/{dittanvändarnamn}. Gör en egen kopia av /local/kurs/dh02/webb.html. Ändra i den så att ACTION refererar till din version av webb.perl.
- Vad får du för resultat?
- Utöka skriptet i uppgift två, så att det skriver ut den text som skrivs in istället för den fasta texten. :)
- Jämför komprimeringsprogrammen:
- gzip ( man gzip )
- bzip2 ( man bzip2 )
- compress ( man compress )
- arith_coder ( man /local/kurs/dh02/arith_coder.1 )
Använd texterna /corpora/SUC/suc1b/kr0?.suc1b.gz. Packa upp filerna med hjälp av kommandot: zcat /corpora/SUC/suc1b/kr0?.suc1b.gz >/tmp/komprimeringstestfil och använd komprimeringstestfil för testerna.
Använd de tre olika modellerna för arith_coder. Använd största och minsta blockstorleken med bzip2 ( -1 respektive -9). Använd fastest respektive best med gzip.
Tips: om du ger flaggan -vvvvv till bzip2, så får man väldigt mycket information.
- Sammanställ komprimeringsresultaten i en tabell.
Redovisning lämnas i form av skriftlig rapport till Leif-Jöran Olsson (i postfacket eller via e-post i postscriptformat eller vanlig text) senast klockan 10 den 17 april.
Rapporten ska innehålla/behandla det som tas upp i uppgiftsbeskrivningen ovan.
Rapporten kommer att ges betyget godkänd, väl godkänd eller underkänd enligt följande:
- För godkänt krävs rimliga svar på uppgift ett till tre.
- För väl godkänt krävs därutöver rimliga svar på uppgiften fyra och att man för ett resonemang i anslutning till uppgifterna. (Alltså inte bara ja- och nej-svar eller inklistring.)
Lycka till! Och kom ihåg - datorer gör oftare som du säger än som du vill!