# UCS quick start # UCS: Utilities for Cooccurrence Statistics # scritte da Stefan Evert # http://www.collocations.de # ucs-make-tables, il programma che costruisce le tavole usate da ucs, # richiede come input una lista di bigrammi (con la prima e la seconda # parola separate da tab), che possiamo procurarci con cqp e un po' di # post-editing # per esempio: set Context 0; show -cpos; set LeftKwicDelim ''; set RightKwicDelim ''; [pos="NOM"][pos="ADJ"]; cat Last > "temp.bigrams"; # oppure [pos="NOM"][]; cat Last > "temp.bigrams"; # oppure (perche' questo e' notevolmente piu' lento?) [][]; cat Last > "temp.bigrams"; # post-editing fuori cqp sed 's/ /\t/g' temp.bigrams | grep -v ^# | lc > bigrams.txt # oppure [pos="NOM"] "di" [pos="NOM"]; cat Last > "temp.trigrams"; # post-editing fuori cqp (in questo caso, bisogna togliere "di" per # ottenere bigrammi) gawk '{print $1 "\t" $3}' temp.trigrams | grep -v ^# | lc > bigrams.txt # cosi', abbiamo dei dati pronti da far leggere a ucs... # ucsdoc e' il ''man'' di ucs ucsdoc ucsintro ucsdoc nome_del_comando # ucs-make-tables prende come input un file di bigrammi e produce come # output un file nel formato richiesto da ucs cat bigrams.txt | ucs-make-tables -v ucs_data.ds # NB: input va passato via pipe, nome di file che segue ucs-make-tables # e' nome di output file # NB2: ucs-make-tables e' piuttosto lento, soprattutto con input di # grosse dimensioni # NB3: vari programmi di ucs prendono un'opzione -v (per verbose) che # manda all'output dei messaggi su cio' che il programma sta facendo # (per alleviare il tedio dell'attesa) # diamo un'occhiata ai risultati: ucs-print -i ucs_data.ds # ucs-print -i e' il ''more'' di ucs (spesso, sorprendentemente # lento!) # formato di tavole create da ucs-make-tables: id l1 l2 f f1 f2 N -- ---------- --------------- -- ----- ---- ------ 1 all' estremo 1 1344 14 861094 2 parve misteriosamente 1 176 18 861094 3 rabbia gli 3 135 6328 861094 4 le ballavano 1 8847 8 861094 5 sicuro daniello 1 177 2 861094 ... # aggiungi misure d'associazione: ucs-add -v am.MI am.log.likelihood TO ucs_data.ds INTO ucs_data.am.ds # NB: TO indica input file, INTO indica output # per vedere che misure d'associazione sono disponibili: ucsdoc UCS::AM # metti in ordine di MI: ucs-sort -v ucs_data.am.ds BY am.MI | ucs-print -i # manipola dati: ucs-select -v '%' FROM ucs_data.am.ds WHERE '%f%>4' | ucs-sort -v BY am.MI | ucs-print -i # il % all'inizio vuol dire: seleziona tutte le colonne, mentre nella # condizione (la parte che segue WHERE) %x% indica la colonna x ucs-select -v '%' FROM ucs_data.am.ds WHERE '%f1%<100 && %f2%<100 && length(%l1%)>2 && length(%l2%)>2' | ucs-sort -v BY am.log.likelihood | ucs-print -i # per saperne di piu' su ucs-select: ucsdoc ucs-select ucsdoc ucsexp # Salva output in un file facile da leggere e manipolare con altri # programmi: ucs-select -v 'l1' 'l2' 'f' 'f1' 'f2' 'am.MI' FROM ucs_data.am.ds | ucs-print -o ucs_data.txt