NER con NLTK
Ora ti divertirai con il riconoscimento di entità nominate! Un articolo di news ottenuto tramite scraping è già stato caricato nel tuo workspace. Il tuo compito è usare nltk per trovare le entità nominate in questo articolo.
Di cosa potrebbe parlare l’articolo, date le entità che hai trovato?
Oltre a nltk, sono già stati importati sent_tokenize e word_tokenize da nltk.tokenize.
Questo esercizio fa parte del corso
Introduzione al Natural Language Processing in Python
Istruzioni dell'esercizio
- Suddividi
articlein frasi. - Tokenizza in parole ciascuna frase in
sentencesusando una list comprehension. - All’interno di una list comprehension, assegna a ciascuna frase tokenizzata i tag delle parti del discorso usando
nltk.pos_tag(). - Suddividi ciascuna frase taggata in chunk di entità nominate usando
nltk.ne_chunk_sents(). Insieme apos_sentences, specifica anche l’argomento keywordbinary=True. - Esegui un ciclo su ogni frase e su ogni chunk e verifica se è un chunk di entità nominata controllando se ha l’attributo
labele sechunk.label()è uguale a"NE". In tal caso, stampa quel chunk.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
# Tokenize the article into sentences: sentences
sentences = ____
# Tokenize each sentence into words: token_sentences
token_sentences = [____ for sent in ____]
# Tag each tokenized sentence into parts of speech: pos_sentences
pos_sentences = [____ for sent in ____]
# Create the named entity chunks: chunked_sentences
chunked_sentences = ____
# Test for stems of the tree with 'NE' tags
for sent in chunked_sentences:
for chunk in sent:
if hasattr(chunk, "label") and ____ == "____":
print(chunk)