Strumenti Utente

Strumenti Sito


distribuzione_delle_frequenze

Differenze

Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.

Link a questa pagina di confronto

Entrambe le parti precedenti la revisione Revisione precedente
Prossima revisione
Revisione precedente
distribuzione_delle_frequenze [2021/06/02 18:23]
admin
distribuzione_delle_frequenze [2024/07/07 18:48] (versione attuale)
admin
Linea 1: Linea 1:
 ====== Distribuzione delle frequenze ====== ====== Distribuzione delle frequenze ======
 Esemplificazione su una singola frase. Si noti, innanzitutto, la funzione set(), che crea un insieme privo di elementi ripetuti. La lunghezza della frase 'splittata' equivale al numero di parole-token (occorrenze), mentre la lunghezza dell'insieme ottenuto attraverso la funzione set() equivale al numero di parole-type (forme). Si noti, inoltre, la sintassi della riga 10 detta 'comprensione di lista' (ingl. 'list comprehension', cf. [[http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions|documentazione]]). Esemplificazione su una singola frase. Si noti, innanzitutto, la funzione set(), che crea un insieme privo di elementi ripetuti. La lunghezza della frase 'splittata' equivale al numero di parole-token (occorrenze), mentre la lunghezza dell'insieme ottenuto attraverso la funzione set() equivale al numero di parole-type (forme). Si noti, inoltre, la sintassi della riga 10 detta 'comprensione di lista' (ingl. 'list comprehension', cf. [[http://docs.python.org/2/tutorial/datastructures.html#list-comprehensions|documentazione]]).
-<code python>+<code python frequenze_frase.py>
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
 frase='quando un uomo con la pistola incontra un uomo con il fucile quello con la pistola è un uomo morto' frase='quando un uomo con la pistola incontra un uomo con il fucile quello con la pistola è un uomo morto'
Linea 28: Linea 28:
 ---- ----
 Applicazione al testo 'Pinocchio': Applicazione al testo 'Pinocchio':
-<code python>+<code python frequenze_pinocchio.py>
 import re import re
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
-with open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1'as f: testo = f.read()+f = open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1') 
 +testo = f.read()
 testo=testo[1704:] testo=testo[1704:]
 +
 +# istruzioni per l'affinamento della tokenizzazione
 testo=re.sub("'","' ", testo) testo=re.sub("'","' ", testo)
 testo=re.sub("([^\.]+)([\.,;:\!-]+)","\g<1> \g<2>", testo) testo=re.sub("([^\.]+)([\.,;:\!-]+)","\g<1> \g<2>", testo)
 testo=testo.lower() testo=testo.lower()
 +# fine istruzioni per l'affinamento della tokenizzazione
 +
 testo=testo.split() testo=testo.split()
 fd=[testo.count(i) for i in set(testo)] fd=[testo.count(i) for i in set(testo)]
Linea 44: Linea 49:
 ---- ----
 Il codici seguente usano una lista di tuple, denominata "occ_forma", di struttura (numero_occorrenze, forma) per ordinare contemporaneamente, secondo l'ordine decrescente di frequenza, tanto i valori di frequenza quanto le forme secondo la frequenza. In questo modo è possibile creare una lista di forme ordinata per frequenza, denominata 'forme', da usare per le etichette dell'asse orizzontale del grafico (mediante la funzione plt.xticks). Il codici seguente usano una lista di tuple, denominata "occ_forma", di struttura (numero_occorrenze, forma) per ordinare contemporaneamente, secondo l'ordine decrescente di frequenza, tanto i valori di frequenza quanto le forme secondo la frequenza. In questo modo è possibile creare una lista di forme ordinata per frequenza, denominata 'forme', da usare per le etichette dell'asse orizzontale del grafico (mediante la funzione plt.xticks).
-<code python 1>+<code python frequenze_etichettate_frase.py>
 frase='quando un uomo con la pistola incontra un uomo con il fucile quello con la pistola è un uomo morto' frase='quando un uomo con la pistola incontra un uomo con il fucile quello con la pistola è un uomo morto'
 frase=frase.split() frase=frase.split()
Linea 59: Linea 64:
  
  
-<code python 1>+<code python frequenze_etichettate_pinocchio.py> 
 +import re
 import matplotlib.pyplot as plt import matplotlib.pyplot as plt
-with open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1'as f: testo = f.read()+f = open('testi/collodi_pinocchio.txt', mode='r', encoding='iso-8859-1') 
 +testo = f.read() 
 +testo=testo[1704:
 +# istruzioni per l'affinamento della tokenizzazione
 testo=re.sub("'","' ", testo) testo=re.sub("'","' ", testo)
 +testo=re.sub('[\.,;:\-?!]{1}','',testo)#elimina gli interpunti
 testo=testo.lower() testo=testo.lower()
-altre istruzioni per l'affinamento della tokenizzazione +fine istruzioni per l'affinamento della tokenizzazione
-# ...+
  
 testo=testo.split() testo=testo.split()
Linea 77: Linea 86:
 plt.show() plt.show()
 </code> </code>
 +
 +{{::frequenze_etichettate.png?800|}}
distribuzione_delle_frequenze.1622658183.txt.gz · Ultima modifica: 2021/06/02 18:23 da admin