====== Prime operazioni con il testo ======
===== Il grafico delle frequenze con NLTK =====
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?
===== Problemi di codifica =====
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()