La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari.

Presentazioni simili


Presentazione sul tema: "TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari."— Transcript della presentazione:

1 TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari

2 Pratica con Python …

3 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

4 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.)

5 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’

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

7 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!

8 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

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

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

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

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

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

14 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, …

15 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)

16 DUPLICAZIONE

17 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


Scaricare ppt "TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari."

Presentazioni simili


Annunci Google