Aprire il programma IDLE-Portable.exe contenuto nella cartella 'Portable Python 2.7.x.x'. Provare le istruzioni seguenti:
import nltk frase='se un uomo con la pistola incontrasse un uomo con il fucile quello con la pistola sarebbe un uomo morto' print frase frase=frase.split() print frase fd=nltk.FreqDist(frase) fd.plot()
Resettate la shell (menu in alto 'Shell', selezionare 'Restart Shell' - Ctrl+F6) e provate le istruzioni seguenti, che utilizzano il file contenente il romanzo 'Pinocchio':
import codecs import ntlk file=codecs.open('Testi/collodi_pinocchio.txt', encoding='iso-8859-1', mode='r') testo=file.read() testo=testo.split() fd=nltk.FreqDist(testo) fd.plot(50)
Dovrebbe comparire un grafico con la distribuzione dei valori di frequenza delle 50 parole più frequenti. Quali imperfezioni presenta la lista di parole contenuta in questo grafico?
In Python un file può essere aperto anche con la semplice funzione open() [anziché codecs.open()]. Provate a eseguire le istruzioni seguenti:
import codecs import ntlk file=open('Testi/collodi_pinocchio.txt', mode='r') testo=file.read() testo=testo.split() fd=nltk.FreqDist(testo) fd.plot(50)
A cosa si deve il problema incontrato dall'interprete? (vd. i paragrafi sulla codifica del testo in Lenci et al.)
Per evitare problemi di questo tipo, se analizziamo con python una frase che contiene caratteri non ASCII dobbiamo far precedere la stringa da una u minuscola (segnalatore di stringa unicode):
import nltk frase=u'quando un uomo con la pistola incontra un uomo con il fucile quello con la pistola è un uomo morto' print frase frase=frase.split() print frase fd=nltk.FreqDist(frase) fd.plot()