Linguistica Computazionale

Documenti analoghi
Programmazione in Python per la bioinformatica

Linguistica Computazionale

Linguistica dei Corpora (2) Lezione 3: Manipolare testi (non solo con cqp)

Laboratorio di Python

Linguistica Computazionale: esercitazioni

Laboratorio di Python

Esercizi in Python. Docente: Domenico Daniele Bloisi

Laboratorio di Python

Laboratorio di Python

Tutorato di Fondamenti di Informatica TUTOR: DAVIDE GHIANI, GIULIA ORRU

Organizzazione Fisica dei Dati (Parte II)

Laboratorio di Informatica

Esercizi in Laboratorio

Laboratorio di Python

Esercizi su strutture dati

MODELLI QUANTITATIVI. f x r = c

Input/Output di numeri

ESERCITAZIONE GIS QGIS

Questionario: Esercitazione 6.3

Manuale Donatore bloodmanagement.it

Probabilità e Statistica Prova del 29/07/2016 Traccia E TEORIA Università degli Studi di Verona Laurea in Informatica e Bioinformatica A.A.

Programmare in Python

Laboratorio di Python (con Linux)

Linguistica Computazionale

Strutture di accesso ai dati: B + -tree

Laboratorio di Python

Calcolare il massimo di una lista

Laboratorio di Python

ESERCITAZIONE GIS QGIS

A.A. 2018/2019. Esercitazione 5 [Per Casa] Modellazione e Risoluzione di Problemi mediante MATLAB FONDAMENTI DI INFORMATICA E PROGRAMMAZIONE

11. Il lessico dei testi

Fondamenti di informatica T-1 (A K) Esercitazione 2 Basi del linguaggio Java

Fondamenti di Informatica T-1

Esercizi svolti sui limiti

Esercitazione gennaio 2018

laboratorio di python

Strutture fisiche di accesso

Informatica/ Ing. Meccanica/ Edile/ Prof. Verdicchio/ 25/02/2016/ Foglio delle domande / VERSIONE 1

Transcript:

Linguistica Computazionale Esercitazione: indici statistici del testo e misure di associazione

Calcolare la lunghezza di un corpus C :

Calcolare la lunghezza di un corpus C : output sys.argv[0] sys.argv[1] print "Il file", file1, "è lungo", lunghezza1, "token"

Trovare il token con frequenza massima:

Trovare il token con frequenza massima: output sys.argv[0] sys.argv[1] print "Il token piu' frequente è:", tokenmax, "\tcon frequenza:", freqtokenmax

Trovare il token (lungo almeno 2 caratteri) con frequenza massima:

Trovare il token (lungo almeno 2 caratteri) con frequenza massima: output sys.argv[0] sys.argv[1] print "Il token piu' frequente è:", tokenmax, "\tcon frequenza:", freqtokenmax

Esercizi: indici statistici del testo Create un file di testo in inglese lungo almeno 500 token. Utilizzando le funzioni di NLTK e le funzioni di base del Python scrivete un programma che: stampi gli hapax (token che occorrono una sola volta) del file; stampi la distribuzione degli hapax: V1 / C ; stampi il vocabolario del file ordinato alfabeticamente e per ogni elemento del vocabolario ne stampi la frequenza e la frequenza relativa nel file; stampi il rapporto tipo-unità del testo (Type Token Ratio, TTR): Vc / C ;

Esercizi: indici statistici del testo Stampare l'andamento della crescita lessicale del file all'aumentare del testo (50 token per volta) per verificare la crescita non lineare del vocabolario Stampare l'andamento della distribuzione degli hapax all'aumentare del testo (50 token per volta). Stampare la variazione della dimensione delle classi di frequenza V5, V10 e V15 all'aumentare del testo (50 token per volta). Nb:questi utilizzando sempre lo stesso file di testo di partenza, senza creare file di testo intermedi.

Python e NLTK: bigrams Per ottenere tutti i bigrammi di un testo si utilizza la funzione bigrams(listaparole) di NLTK: bigrams() prende in input una lista e restituisce una lista di tuple. Ogni tupla rappresenta un bigramma degli elementi della lista di partenza. NB: Da NLTK 3.0 in poi bigrams() NON restituisce una lista ma un oggetto bigrams che può essere trasformato in una lista con la funzione list(). Quindi nel caso dell'esempio sopra: list(bigrams(testo))

Python: le Tuple Una tupla è simile ad una lista con una differenza: è un tipo non mutabile, cioè non è possibile aggiungere, modificare o togliere elementi ad una tupla. http://docs.python.org/tutorial/datastructures.html

Stampare i bigrammi diversi di un testo e trovare il bigramma con frequenza massima: (programma) Restituisco due valori Da NLTK3: list(bigrams(testotokenizzato1))

Stampare i bigrammi diversi di un testo e trovare il bigramma con frequenza massima: (output) Output: Oggetto Tupla...

Trovare il bigramma con Probabilità Condizionata massima: (programma) In Python se dividiamo due numeri interi otteniamo un intero, per ottenere un risultato con la virgola moltiplichiamo numeratore e demoninatore per 1.0 Da NLTK3: list(bigrams(testotokenizzato))

Trovare il bigramma con Probabilità Condizionata massima: (output) Con il comando: print "Il bigramma con Prob Condizionata massima nel file", file1, "è:", bigrammamax, "con Probabilita:", probcondizionatamax Stampata la struttura dati Bigramma (o Tupla) bigrammamax Per stampare solo il contenuto: print "Il bigramma con Prob Condizionata massima nel file", file1, "è: \ ", bigrammamax[0], bigrammamax[1], "\ con Probabilita:", probcondizionatamax

Funzioni Matematiche: il modulo math II modulo math contiene le funzioni matematiche non direttamente supportate da Python: http://docs.python.org/library/math.html

Esercizi: Create un file di testo in inglese lungo almeno 1000 token. Utilizzando le funzioni di NLTK e le funzioni di base del Python scrivete un programma che: stampi tutti i bigrammi (u, v) diversi presenti all'interno del file e per ogni bigramma ne stampi: la frequenza dei token u e v e la frequenza del bigramma (u,v) ; la probabilità condizionata P(v u); la probabilità congiunta P(u,v); stampi il bigramma con probabilità congiunta massima.

Esercizi: Utilizzando le funzioni di NLTK e le funzioni di base del Python scrivete un programma che per ognuno dei bigrammi del testo: stampi la forza associativa (in termini di Mutual Information, MI) tra le parole che caratterizzano il bigramma: log2(p(u,v)/(p(u)*p(v))) stampi il bigramma con forza associativa massima.