Come accedere al Brown Corpus tramite NLTK
Come accedere al corpus su Python
Per accedere al brown Corpus entro nella console di Python.
Richiamo le librerie NLTK ( Natural Language Tool Kit ) tramite il comando import nltk.
import nltk
Poi accedo al corpus brown.
from nltk.corpus import brown
A questo punto posso interrogare il text corpora.
Come vedere le categorie
Per vedere le categorie usate nel corpus digito:
len(brown(categories())
L'istruzione restituisce in output
15
Quindi, il corpus Brown è suddiviso in 15 categorie.
Per saperlo digito sulla riga di comando
print(brown.categories())
Il comando visualizza in output l'array con le denominazioni delle 15 categorie:
['adventure', 'belles_lettres', 'editorial', 'fiction', 'government', 'hobbies', 'humor', 'learned', 'lore', 'mystery', 'news', 'religion', 'reviews', 'romance', 'science_fiction']
Come visualizzare le frasi del corpus
Per vedere una frase del corpus
brown.sents(categories='adventure')
Il comando restituisce in output l'array con le parole della frase.
[['Dan', 'Morgan', 'told', 'himself', 'he', 'would', 'forget', 'Ann', 'Turner', '.'], ['He', 'was', 'well', 'rid', 'of', 'her', '.'], ...]
Per vedere la frase con i POS tag digito
brown.tagged_sents(categories='adventure')
A ogni parola è associato il POS tag che specifica la sua funzione sintattica nella frase.
[[('Dan', 'NP'), ('Morgan', 'NP'), ('told', 'VBD'), ('himself', 'PPL'), ('he', 'PPS'), ('would', 'MD'), ('forget', 'VB'), ('Ann', 'NP'), ('Turner', 'NP'), ('.', '.')], [('He', 'PPS'), ('was', 'BEDZ'), ('well', 'RB'), ('rid', 'JJ'), ('of', 'IN'), ('her', 'PPO'), ('.', '.')], ...]
Come caricare il corpus in un array
Per assegnare il corpus a un array digito:
frasi = brown.sents(categories='adventure')
Poi aggiungo i token
frasi = [' '.join(sentence_token) for sentence_token in frasi]
Per visualizzare la prima frase digito:
print(sentences[0])
L'istruzione restituisce in ouput:
Dan Morgan told himself he would forget Ann Turner .
Per visualizzare le prime tre frasi digito:
print(sentences[0:3])
L'istruzione restituisce l'array con le prime tre frasi del corpus.
['Dan Morgan told himself he would forget Ann Turner .', 'He was well rid of her .', "He certainly didn't want a wife who was fickle as Ann ."]
Come fare una selezione
Per fare una selezione per token digito:
parole = brown.tagged_words(categories='adventure')
Poi seleziono soltanto le parole con tag NP o NN
nomi = [(word, tag) for word, tag in parole if any(noun_tag in tag for noun_tag in ['NP', 'NN'])]
A questo punto voglio vedere quelli della prima frase
print(nomi[0])
In output restituisce
('Dan', 'NP')
Per vedere i nomi delle prime tre frasi digito
print(nomi[0:3])
Il comando restituisce in output
[('Dan', 'NP'), ('Morgan', 'NP'), ('Ann', 'NP')]
Come visualizzare il lessico di frequenza
Per analizzare il lessico di frequenza digito:
lessico_frequenza = nltk.FreqDist([word for word, tag in nomi])
Poi visualizzo i primi dieci più frequenti:
print(lessico_frequenza.most_common(5))
In output visualizza l'array con i dieci nomi più frequenti:
[('man', 165), ('time', 127), ('eyes', 90), ('men', 81), ('face', 72)]
E così via.