TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari.

Slides:



Advertisements
Presentazioni simili
CGI in Python & WebWare Marco Barisione. 2 CGI CGI = Common Gateway Interface È un modello di comunicazione fra browser e server I programmi CGI sono.
Advertisements

Algoritmi e Strutture Dati
1 Automazione dellalgoritmo ricorsivo di permutazione eseguita da Mariano Melchiorri.
Commenti C#.
Liste di Interi Esercitazione. Liste Concatenate Tipo di dato utile per memorizzare sequenze di elementi di dimensioni variabile Definizione tipicamente.
Informatica Generale Marzia Buscemi
LIP: 1 Marzo 2005 Classe Object e Vettori. Partiamo da Lesercizio dellultima esercitazione realizzato tramite array Vedremo come si puo fare in modo piu.
Introduzione al linguaggio C
Fondamenti di Informatica
Hash Tables Indirizzamento diretto Tabelle Hash Risoluzioni di collisioni Indirizzamento aperto.
Dallalgoritmo minimax allalgoritmo alfa-beta. MINIMAX int minimax(stato, livello) { if((livello == max_livello) || condizione_uscita(stato)) { CAMMINO.
INFORMATICA Strutture iterative
Tail recursion: esempio
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati.
CORSO DI PROGRAMMAZIONE II
Basi di Dati II Sara Romano
Il calcolo del fattoriale
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Introduzione1 Algoritmi e strutture dati - Definizioni Struttura dati: organizzazione sistematica dei dati e del loro accesso Algoritmo: procedura suddivisa.
Corso di Informatica Applicata Lezione 6
LdL - LP1 - ver. 6 - lez aa Linguaggi di programmazione I La ricorsione Prof. Luigi Di Lascio Lezione 10.
Progettazione dei sistemi interattivi (A.A. 2004/05) - Lezione 3 1 La relazione di ereditarietà Punto di vista insiemistico: la relazione di ereditarietà
1 Implementazione di Linguaggi 2 Implementazione di Linguaggi 2 Federico Bernardi Type checking 2° parte Type checking 2° parte - Equivalenza di type expressions.
Esercizi su code Date due code in ingresso a valori interi in ordine crescente, scrivere una funzione che restituisca una terza coda che contenga i valori.
Procedure e funzioni nei linguaggi di alto livello Lab Programmazione - turno /2006.
CAPITOLO 4 LINGUAGGIO JAVA: COSTRUTTI DI BASE. ALFABETO Java adotta la codifica standard Unicode della società Unicode, Inc. (ftp://ftp.unicode.org) definito.
Strutture di controllo nel C
Esercizi FUNZIONI Passaggio di parametri per valore, variabili e tipi locali e globali, prototipo.
La Programmazione Ricorsiva
DBMS ( Database Management System)
CODIFICA Da flow-chart a C++.
Strutture dati per insiemi disgiunti
Programmazione di Calcolatori
Passo 3: calcolo del costo minimo
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione XXII I tipi di dato astratto Programmazione di Calcolatori: i tipi di dato astratto 1.
Programmazione di Calcolatori
Capitolo 3 Strutture dati elementari Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Fopndamenti di programmazione. 2 La classe String Una stringa è una sequenza di caratteri La classe String è utilizzata per memorizzare caratteri La classe.
Tail recursion: esempio
Esercizi La distanza di hamming tra due interi x e y si definisce come il numero di posizioni nella rappresentazione binaria di x e y aventi bit differenti.
LINGUISTICA GENERALE E COMPUTAZIONALE, PARTE 2
LINGUISTICA GENERALE E COMPUTAZIONALE, PARTE 2
Fondamenti di Programmazione
Nota (rif. alla lezione precedente): Vector vs ArrayList Le classi generiche Vector e ArrayList sono sostanzialmente equivalenti, ma: I metodi.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
Sistemi e Tecnologie Informatiche Ricorsione Umberto Ferraro Petrillo.
JavaScript Generalità Cos'è JavaScript?
Esercitazioni su liste
1 Un esempio con iteratore: le liste ordinate di interi.
Fondamenti di informatica Oggetti e Java Luca Cabibbo Luca Cabibbo – Fondamenti di informatica: Oggetti e Java Copyright © 2004 – The McGraw-Hill Companies.
Impostare i caratteri. Le prime versioni del linguaggio HTML così come le prime versioni dei browser consentivano unicamente la scelta tra due tipi di.
Implementazione di dizionari Problema del dizionario dinamico Scegliere una struttura dati in cui memorizzare dei record con un campo key e alcuni altri.
TEORIE E TECNICHE DEL RICONOSCIMENTO
Esercitazione su Vector. Permette di definire collezioni di dati generiche, che sono in grado di memorizzare elementi di ogni sottotipo di Object Definito.
Strutture di controllo Esercizi!. Utilizzare i metodi: I modi per poter richiamare un metodo, di una classe (ad esempio SavitchIn) sono due. 1) E’ sempre.
Informatica 4 Funzioni. FUNZIONE: definizione MATEMATICA Relazione (o applicazione) binaria tra due insiemi A e B che associa a ogni elemento di A un.
4/25/2015E. Giovannetti -- OI09.1 Olimpiadi di Informatica 2010 Giornate preparatorie Dipartimento di Informatica Università di Torino marzo –
Sommario Oggetti immutabili e non Tipi Primitivi: String, Arrays.
Capitolo 7 Tavole hash Algoritmi e Strutture Dati Camil Demetrescu, Irene Finocchi, Giuseppe F. Italiano.
1 Informatica Generale Marzia Buscemi Ricevimento: Giovedì ore , Dipartimento di Informatica, stanza 306-PS o per posta.
Programmazione dinamica Algoritmi golosi Analisi ammortizzata
Problemi risolvibili con la programmazione dinamica Abbiamo usato la programmazione dinamica per risolvere due problemi. Cerchiamo ora di capire quali.
TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Debugging, 2: Understanding Python better.
11 aprile 2006Master in economia e politica sanitaria - Simulazione per la sanità 1 _proviamo a programmare _______________________________________ Proviamo.
Corso di Laurea Ingegneria Informatica Fondamenti di Informatica
Eprogram informatica V anno. Introduzione a PHP Introduzione La diffusione di PHP ha avuto un notevole incremento dalla fine degli anni Novanta a oggi,
10. Programmazione Ricorsiva Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo La ricorsione 15 Approccio ricorsivo, esercizi sulla.
comprensione e modifica di codice
Transcript della presentazione:

TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari

Pratica con Python …

USO DI DIZIONARI IN NLTK: FREQUENCY DISTRIBUTIONS Text: indicizzato usando INTERI text1[100] Frequency distributions: indicizzate usando PAROLE fdist[‘monstruous’] Frequency distributions sono implementate in Python come oggetti di tipo DICTIONARY, un terzo tipo di dati fondamentale nel trattamento dei testi – Equivalente di hash maps / associative arrays in altri linguaggi di programmazione NLTK book, 5.3, pp

DIZIONARI: ACCESSO AD ELEMENTI eng2sp['one'] = 'uno' (NB Il termine ‘dizionari’ e’ dovuto al fatto che queste strutture dati sono ideali per implementare dei dizionari, p.e., Inglese / Spagnolo.)

DIZIONARI: CREAZIONE ED AGGIUNTA DI ELEMENTI Creazione dizionario – Vuoto eng2sp = dict() pos = {} – Con elementi eng2sp = {'one': 'uno', 'two': 'dos', 'three': 'tres'} Aggiunta di oggetti eng2sp[‘one’] = ‘uno’

Visualizzazione dei contenuti >>> print eng2sp {'one': 'uno', 'three': 'tres', 'two': 'dos'} >>> len(eng2sp) 3 >>> print eng2sp['four'] KeyError: 'four' >>> 'one' in eng2sp True

COME IMPLEMENTARE HISTOGRAMS (E FREQDIST) Immaginate di voler implementare una funzione che calcola la frequenza dei caratteri in una parola (o delle parole in un testo) Opzioni: 1.Usare 26 variabili diverse come contatori 2.Usare una lista con 26 posizioni 3.Usare un dizionario 1. e 2. impensabili per una freqdist!

HISTOGRAMS USANDO DIZIONARI def histogram(s): d = dict() for c in s: if c not in d: d[c] = 1 else: d[c] += 1 return d

Esempio di uso >>> h = histogram('brontosaurus’) >>> print h {'a': 1, 'b': 1, 'o': 2, 'n': 1, 's': 2, 'r': 2, 'u': 2, 't': 1}

LESSICO USANDO DIZIONARI NLTK, cap. 5.1, p. 12 (Web version)

DEFAULT DICTIONARIES NLTK, cap. 5.1, p. 14 (Web version)

CHIAVI E VALORI COMPLESSI NLTK, cap. 5.1, p. 17 (Web version)

MEMOIZATION Un altro uso molto comune dei dizionari e’ per aumentare l’efficienza di programmi evitando di ricalcolare valori due volte

ESEMPIO: FIBONACCI NUMERI DI FIBONACCI: fibonacci(0) = 0 fibonacci(1) = 1 fibonacci(n) = fibonacci(n − 1) + fibonacci(n − 2); Sequenza: 0, 1, 1, 2, 3, 5, 8, 13, …

FIBONACCI IN PYTHON, VERSIONE RICORSIVA: def fibonacci (n): if n == 0: return 0 elif n==1: return 1 else: return fibonacci(n-1) + fibonacci(n-2)

DUPLICAZIONE

FIBONACCI + MEMO known = {0:0, 1:1} def fibonacci(n): if n in known: return known[n] res = fibonacci(n-1) + fibonacci(n-2) known[n] = res return res