Qualche mese fa, uno degli strumenti di ricerca più importanti per la linguistica italiana ha avuto un potenziamento spettacolare. Lo strumento è il gruppo di corpus che per brevità chiamerò CORIS nel suo assieme, ma che in realtà corrisponde a diversi prodotti:
Non sto ora a spiegare in dettaglio l’importanza di queste raccolte di materiali: diciamo solo che sono una delle più importanti fonti di informazioni sull’italiano scritto moderno e contemporaneo. Una ricerca al loro interno permette per esempio di vedere se una determinata costruzione grammaticale è usata o non usata, in quali percentuali è usata, e infinite altre cose.
Fino a qualche mese fa l’accesso al materiale richiedeva una registrazione (gratuita). Adesso nome utente e password non sono più richiesti, e già questo fatto rende il prodotto infinitamente più accessibile, sia agli studenti sia ai ricercatori - l’accesso è concesso esclusivamente per scopi di ricerca scientifica.
Seconda novità, i testi del CORIS sono stati lemmatizzati. Il che significa, per esempio, che tutte le forme del verbo essere adesso possono essere ricercate in un colpo solo, senza dover cercare separatamente sono, sei, e così via.
Terza novità: ai preesistenti CORIS e CODIS è stato aggiunto un corpus diacronico, il DiaCORIS, che fornisce campioni a partire dal 1861.
Descrivere in pieno le caratteristiche del CORIS richiederebbe molto spazio. Lavorando però, prima della partenza, con studenti e laureandi italiani, ho notato che un ostacolo immediato all’uso dei materiali è dato dalla documentazione. Il linguaggio di ricerca usato sul sito è infatti presentato solo in inglese (il che non dovrebbe essere un problema…) e in forma molto sintetica. Inoltre, il sistema di ricerca è in parte variato rispetto a quello usato negli anni scorsi. Infine, il linguaggio di ricerca usato è CQP, e il sito rinvia correttamente al relativo tutorial per una documentazione completa, ma mi sembra che realizzi poi alcune funzioni in modo diverso dallo standard. Per esempio, CQP prevede che le stringhe da ricercare possano essere inserite sia tra apici doppi, sia tra apici singoli, ma nel caso del CORIS mi pare che funzionino solo gli apici doppi.
Io ho fatto un po’ di prove, e mi sembra utile mettere in linea qui sotto una breve guida in italiano sia al linguaggio di interrogazione sia al modo di presentazione dei risultati. Lascio fuori per il momento le parti relative alla ricerca lemmatizzata, che però, partendo da questa base e dalle istruzioni presentate sul sito, dovrebbero essere quasi intuitive.
Linguaggio di interrogazione
Punto di partenza: la parola. Nel corpus si può eseguire solo la ricerca per parole intere, o meglio, per stringhe contenute all’interno di apici doppi (mentre non vanno bene le virgolette generate da molti programmi di scrittura… quindi occhio al copia e incolla!) e prive di spazi. Di conseguenza, ricercare che non produce risultati: occorre scrivere "che".
Nota importante: questo sistema di interrogazione funziona solo per parole intere, e non permette la ricerca per sottostringhe. In sostanza, cioè, "che" non restituisce chele. E, no, l’asterisco non funziona… anche se io, inserendolo, ottengo risultati un po’ strani e non documentati: per esempio, se scrivo "ch*" vengono ritrovate non le parole che cominciano per ch- ma le parole composte unicamente dalla lettera c, come in questo esempio:
ma non <c>' era da preoccuparsi.
Non è possibile nemmeno inserire due o più parole all’interno della stessa coppia di virgolette: "che le" non restituisce nulla. Le parole devono essere inserite all’interno di diverse coppie di virgolette e accostate l’una all’altra, in questo modo:
"che" "le"
A differenza della versione precedente del linguaggio, non occorre quindi inserire operatori di concatenazione (tipo un “+”) tra le due parole: basta scriverle una dopo l’altra. Le parole però vengono trovate solo se compaiono nelle sequenza indicata (quindi "mia" "casa" restituisce “mia casa” ma non “casa mia”).
In una ricerca si possono indicare più alternative usando le parentesi tonde e la barra verticale. Per esempio, questa ricerca:
"il" ("mio" | "suo") "amico"
… ritrova sia “il mio amico” sia “il suo amico”.
… ritrova sia “il mio amico” sia “il suo amico”.
Sembra invece scomparsa la possibilità di usare l’asterisco come sostituto di una parola intera, presente nella precedente versione. A dire il vero, però, scrivendo
"il" * "nome"
… si ottengono sia occorrenze di nome semplice, sia occorrenze di “il nome” (ma non di “il” semplice); non si trova invece “il suo nome” o simili. Quindi sembra che l’asterisco qui operi con la stessa funzione della barra verticale.
Risultati simili a quelli che si avevano con l’asterisco si ottengono però con l’ultima funzione descritta nelle istruzioni. Usando comandi di questo tipo:
"word1" []{0,AFT} "word2"
… le istruzioni dicono che il sistema “Retrieve all the occurrences of word2 in the context following the word word2”. In effetti, questo non è molto chiaro… Diciamo che i due valori messi tra parentesi graffe e separati da virgola indicano quante parole devono essere presenti, al minimo e al massimo, tra la parola inserita come “word1” e quella inserita come “word2”. Quindi:
- "il" []{0,0} "nome" fornisce come risultati solo le sequenze “il nome"
- "il" []{0,1} "nome" fornisce come risultati sia “il nome” sia “il suo nome”, “il vostro nome”, eccetera
- "il" []{1,1} "nome" fornisce come risultati solo quelli del tipo “il suo nome” (ma non “il nome”)
- "il" []{0,2} "nome" fornisce come risultati solo quelli del tipo “il suo vero nome” (ma non “il nome” o “il suo nome”)
… e così via, combinando i due numeri a piacimento. Non mi sembra ci sia nemmeno un limite superiore, nel senso che io ho provato a fare la ricerca indicando anche come intervallo {20,20} e ho ottenuto comunque risultati – anche se, certo, non risultati linguisticamente significativi!
Altra variazione: adesso la ricerca di default è case sensitive, ma per renderla case insensitive basta aggiungere %c alla parola ricercata, subito dopo le virgolette e senza spazi in mezzo.
Infine, le istruzioni attuali non includono un’altra informazione importante: i segni di punteggiatura e i simboli vengono trattati come parole. Quindi, per cercare “ma, in” occorre scrivere "ma" "," "in", mettendo anche la virgola tra doppi apici.
Risultati
I dati vengono restituiti sotto forma di concordanze KWIC, fino a un massimo di 1000 (o, in alternativa, un massimo di 30, default, o 100, o 300). Nel caso che le concordanze nel corpus siano più del massimo impostato, se ne vede solo un campione. Sembra scomparsa la possibilità di scegliere il modo per realizzare il campione, che nella precedente versione del corpus poteva essere determinata dall’utente scegliendo tra due criteri: “1 every n-h” o “Random”. Non è indicato quale dei due criteri venga utilizzato adesso (immagino comunque il primo).
Allo stesso modo, è scomparsa la possibilità di indicare l’ampiezza del contesto: adesso vengono forniti solo i 30 caratteri precedenti e i 30 caratteri seguenti. Sia questa opzione sia quella precedente sono comunque ancora attive nel CODIS.
Per ogni risultato viene fornita l’indicazione del sottocorpus di provenienza (ma non del testo di provenienza.
Il menu a tendina “Unsorted” dà la possibilità di non presentare in ordine alfabetico le concordanze (default) o di ordinarle in base alle parole a destra e a sinistra della forma cercata (fino a un massimo di 4 parole). Anche in questo caso i segni di punteggiatura vengono trattati come parole a sé stanti.
Le collocazioni possono essere ottenute o non ottenute (default). Se si richiedono le collocazioni, non è piu possibile scegliere se averle “before reduction” o “after reduction” (estraendo i collocati dai contesti dei nodi prima o dopo della riduzione delle occorrenze, calcolandoli cioè su TOT contesti oppure su K). Il sistema non precisa quale delle due impostazioni sia applicata adesso.
Per quanto riguarda il metodo di calcolo delle collocazioni, sapevo (su indicazione di Fabio Tamburini) che la mutual information veniva ricavata secondo la formula:
MI = 100 * log2 f(node,collocate)*DimCorpus / (f(node)*f(collocate))
Il T-score veniva invece calcolato secondo la formula:
Tscore = 100 * (f(node,colloc) - f(node)*f(colloc)/DimCorpus) / sqrt(f(node,colloc))
Le formule erano tratte da M. Stubbs (1995), “Collocations and semantic profiles”, Functions of Language, 2, 1, pp. 23-55. Immagino che anche con l’aggiornamento del sito siano rimaste invariate.
Grazie, molto utile.
RispondiEliminaUna curiosità da non addetta ai lavori: cosa ne pensi del recente aggiornamento di Google Ngram Viewer con un corpus italiano?
Ciao, Licia!
RispondiEliminaGrazie per il complimento... spero in effetti che le istruzioni possano aiutare qualcuno (oltre ai miei studenti).
Su Google Ngram Viewer, non sapevo che avessero aggiunto un corpus di italiano: grazie per la segnalazione! Tuttavia, sullo strumento in sé ho qualche riserva... i dati all'origine continuano a non essere molto puliti, e quindi trovo difficile considerarlo molto più di un giocattolo. Tu che cosa ne pensi?
Grazie Mirko.
RispondiEliminaTrovo Ngram Viewer utile per delle veloci analisi diacroniche che aiutino a evidenziare delle tendenze, da approfondire poi con altri strumenti per chi ha esigenze più scientifiche. Recentemente mi è servito per fare un confronto tra choosy e picky. in inglese, un esempio del tipo di uso che penso possa essere utile per chi studia o insegna una lingua straniera a livello avanzato. Per chi come me si occupa di terminologia in settori in continuo aggiornamento, la mancanza di fonti anche veramente contemporanee rende i corpora di Ngram Viewer meno significativi, però l’analisi delle tendenze passate può dare indicazioni utili, ad esempio, per cercare di capire quale termine abbia più probabilità di affermarsi in futuro nel caso di un nuovo concetto identificato al momento da due o più termini diversi.
Per l’italiano ho solo giocherellato un po’ ma i risultati mi hanno lasciata un po’ perplessa, però gli esempi esempi che ho usato erano tutti abbastanza artificiali, pensati a tavolino, e non nascevano da nessuna curiosità “reale”.
Grazie professore per la Sua segnalazione: era un po' che non tornavo sul CORIS/CODIS, ma dopo aver visto il suo post mi sono messo a fare qualche esperimento.
RispondiEliminaNovità utilissima quella della lemmatizzazione del corpus, la cui mancanza a mio avviso era uno degli aspetti che ne scoraggiavano di più l'utilizzo per eventuali ricerche.
Anch'io ho notato il diverso uso dell'asterisco: ora sembra venga usato come una Kleene Star, quindi come un moltiplicatore di stringhe(specifica che la stringa precedente può occorrere 0 o infinite volte) e non più come un elemento che eventualmente può anche sostituirle.
Un miglioramento che secondo me bisognerebbe apportare all'interfaccia d'interrogazione: per alcune parti del discorso i tag scelti non sono molto intuitivi, e nel caso in cui l'utente voglia sfruttarle per fare delle ricerche e non si ricordi il tag apposito, deve 1) cliccare sull'opzione "Query Language Help"; 2) fare un ulteriore clic per visualizzare la "Pos-Tag list"; una volta visualizzato il tag, dovrà poi tornare sulla pagina principale e ridigitare la query. Sarebbe bene, a mio avviso, collegare più direttamente queste informazioni all'interfaccia principale (magari dando la possibilità di aprire una finestrella a parte, contenente la lista dei tags).
La ringrazio di nuovo per la segnalazione, a risentirci a presto!
Emmanuele
Ciao, Emanuele!
RispondiEliminaLieto che il post sia stato uno spunto per provare le novità del sistema.
Sicuramente l'interfaccia può essere migliorata - e l'intervento sulla lista dei tag mi sembra, in effetti, il più urgente (almeno dal mio punto di vista). Anzi, trovo strano il fatto che prodotti così potenti siano a volte penalizzati da difficoltà di interfaccia che si possono probabilmente eliminare in due minuti. Comunque, per l'uso normale nella ricerca universitaria questo dovrebbe essere un problema solo fino a un certo punto... Il CORIS è uno strumento incredibilmente utile!