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.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Text Corpora