IniziaInizia gratis

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

Visualizza il corso

Istruzioni dell'esercizio

  • Suddividi article in frasi.
  • Tokenizza in parole ciascuna frase in sentences usando 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 a pos_sentences, specifica anche l’argomento keyword binary=True.
  • Esegui un ciclo su ogni frase e su ogni chunk e verifica se è un chunk di entità nominata controllando se ha l’attributo label e se chunk.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)
Modifica ed esegui il codice