Scaricare la presentazione
La presentazione è in caricamento. Aspetta per favore
PubblicatoVanessa Lanza Modificato 9 anni fa
1
TEORIE E TECNICHE DEL RICONOSCIMENTO Python: Dizionari
2
Pratica con Python … www.codeacademy.com
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. 10-11
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
Presentazioni simili
© 2024 SlidePlayer.it Inc.
All rights reserved.