SEMPLICI STRATEGIE PER L'ESTRAZIONE DI TERMINI COMPLESSI Questo e' solo un piccolo esempio per darvi un'idea di cosa si puo' fare e come, una volta che si disponga di un corpus taggato. Ho un corpus d'argomento psichiatrico (in particolare, sulle pseudo-seizures) in inglese, creato con il metodo delle ricerche automatiche su Google. Lo ho taggato (dopo aver tolto le righe che iniziano con ``CURRENT URL'') con il tree-tagger-english. Noto che nell'output ci sono delle righe con meno di tre campi (contengono il pattern <.*>), e le rimuovo: $ gawk 'NF==3' pscorpus.tgd > cleaned.pscorpus.tgd Adesso, ogni riga contiene forma flessa + tag + lemma. Per esempio: Main JJ main Menu NN menu Patient NP Patient and CC and Visitor NN visitor Information NN information Creo ``bigrammi'' (che in realta' contengono 6 campi): $ tail +2 cleaned.pscorpus.tgd | paste cleaned.pscorpus.tgd - |\ gawk 'NF==6' > cleaned.pscorpus.tgd.bigrams Per esempio: Main JJ main Menu NN menu Menu NN menu Patient NP Patient Patient NP Patient and CC and and CC and Visitor NN visitor Visitor NN visitor Information NN information Adesso, cerco le coppie di forma AGGETTIVO+NOME piu' frequenti (la tag della prima parola sara' nel campo 2 e la tag della seconda parola sara' nel campo 5): $ gawk '$2=="JJ" && $5=="NN"{print $1,$4}' cleaned.pscorpus.tgd.bigrams |\ filter_multi_word_expressions.pl -k candidate_uniterms - | sort |\ uniq -c | sort -nrk1 > adj_n_terms_by_fq Lo script filter_multi_word_expressions.pl rimuove tutte le righe in cui nessun campo contiene una delle parole nella lista passata con l'opzione -k. In questo caso, ho specificato con -k la lista di unigrammi tipici del mio corpus trovati con il metodo del paragone di corpus specialistico e generale. In questo modo, le coppie AGGETTIVO+NOME devono contenere almeno una parola dalla lista degli unigrammi tipici. In effetti, i risultati che ottengo in questo modo sembrano promettenti. Ecco le prime venti coppie nel file adj_n_terms_by_fq: 394 temporal lobe 388 posttraumatic stress 351 mental health 332 sexual abuse 242 Multiple Personality 179 post-traumatic stress 174 borderline personality 172 bipolar disorder 168 Dissociative Identity 153 dissociative identity 149 Traumatic Stress 146 traumatic event 146 Bipolar Disorder 133 dissociative disorder 96 mental illness 96 Borderline Personality 93 physical abuse 92 Buy info 87 Posttraumatic Stress 86 mental disorder Ci sono varie altre cose che avrei potuto provare: per esempio, a convertire le coppie in minuscolo prima di raccoglierne le frequenze. Oppure, avrei potuto basarmi sui lemmi invece che sulle forme flesse (questo ha senso soprattutto per i verbi). Inoltre, invece di raccogliere frequenze, avrei potuto usare UCS per analizzare la lista di coppie con varie association measures: $ gawk '$2=="JJ" && $5=="NN"{print $1,$4}' cleaned.pscorpus.tgd.bigrams |\ filter_multi_word_expressions.pl -k candidate_uniterms - | sed 's/ /\t/g' |\ ucs-make-tables adj_n.ds Avrei addirittura potuto prima raccogliere trigrammi, e poi mantenere soltanto le coppie AGGETTIVO+NOME non seguite da un altro nome (nel qual caso il termine complesso probabilmente e' di tipo AGGETTIVO+NOME+NOME). Il secondo pattern che voglio studiare e' NOME+of+NOME. Prima devo raccogliere i ``trigrammi'': $ tail +3 cleaned.pscorpus.tgd > cleaned.pscorpus.tgd.3 $ paste cleaned.pscorpus.tgd.bigrams cleaned.pscorpus.tgd.3 |\ gawk 'NF==9' > cleaned.pscorpus.tgd.trigrams La ricerca che compio e' analoga a quella di sopra (per of, cerco nel campo del lemma della seconda parola). $ gawk '$2=="NN" && $6=="of" && $8=="NN"{print $1,$4,$7}' \ cleaned.pscorpus.tgd.trigrams | filter_multi_word_expressions.pl -k\ candidate_uniterms - | sort | uniq -c | sort -nrk1 > n_of_n_terms_by_fq Di nuovo, i risultati sembrano incoraggianti: 65 Study of Dissociation 61 type of seizure 46 treatment of epilepsy 43 Annals of Neurology 42 diagnosis of epilepsy 18 treatment of absence 17 history of abuse 16 treatment of depression 16 history of epilepsy 16 drug of abuse 15 management of epilepsy 15 age of onset 14 ADDRESS OF AUTHOR 13 use of hypnosis 13 side of seizure 12 monitoring of plasma 12 diagnosis of conversion 11 use of lamotrigine 11 treatment of trauma 11 goal of treatment Di nuovo, con alcune variazioni (per esempio, cercando i trigrammi NOME+of+NOME in una cornice tipo: the ... is) potrei forse ottenere risultati migliori.