Frekvenssilista

Saatuamme mielenkiintoisen hakutuloksen, haluamme ehkä tutkia tämän tuloksen jakaumaa. Jakaumalla tarkoitamme tietoa siitä, kuinka monta kappaletta kutakin löydettyä sanatyyppiä (tms.) tekstissä esiintyy. Jakaumaa voidaan tutkia tekemällä osumista lista, jossa on jokainen löydetty tyyppi yhden kerran, ja kuhunkin tyyppiin litettynä tieto siitä, kuinka monta tämän tyypin esiintymää aineistossa on. Tällaista listaa kutsutaan frekvenssilistaksi. Frekvenssilistaa rakennettaessa ensin järjestetään sort-ohjelmalla koko aineisto aakkosjärjestykseen. Kaikki samanlaisten tyyppien esiintymät tulevat tällöin peräkkäin. Tästä aineistosta tehdään uniq-ohjelmalla ja sen c-optiolla lista, jossa kukin tyypi on vain kerran, ja sitä edeltää sen lukumäärätieto numerona. Tämän listan voikin sitten järjestää sort-ohjelmalla numerojärjestykseen isoin numero ensin. Tähän käytämme optioita n (numeerinen järjestys) ja r (vastakkainen järjestys).

Jos haluamme tekstin kaikkien sanojen frekvenssilistan, muunnamme tr-ohjelmalla syötettä siten, että kukin sana tulee omalle rivilleen. Seuraava komentojono tekee tiedoston copyright.txt sanojen frekvenssilistan, ja tuo sen katsottavaksi.

tr ' ' '\012' <  copyright.txt | sort | uniq -c | sort -nr | less
Mikäli haluamme poistaa listasta ne sanat, joita on vain yksi kappale, voimme käyttää egrep-ohjelmaa. Annamme sille v-option, jolloin se karsii pois ne rivit, joihin hakulauseke sopii. Hakulausekkeeksi annamme säännöllisen lausekkeen, joka sopii sellaisiin riveihin, joissa rivin alkua seuraa välilyöntejä, ykkönen ja sarkainmerkki.
$ tr ' ' '\012' <  copyright.txt | sort | uniq -c | egrep -v '^ *1	' | sort -nr | less
Jos haluamme tehdä aineiston karsintaa ennen frekvenssilistan tekoa, voimme lisätä egrep- tai fgrep-komennon ennen ensimmäistä sort-komentoa. Seuraava komentojono tekee aineiston kahden ja kolmen merkin mittaisten sanojen frekvenssilistan.
$ tr ' ' '\012' <  copyright.txt | egrep '^...?$' | sort | uniq -c | sort -nr | less

[ LuentoKomentolistaAineistotTehtävätLisätietoja ]
Mikko Lounela
Last modified: Wed Nov 6 21:13:59 EET 2002