NER com NLTK

Agora você vai se divertir com o reconhecimento de entidades nomeadas! Um artigo de notícias extraído foi pré-carregado em seu espaço de trabalho. Sua tarefa é usar o site nltk para encontrar as entidades nomeadas neste artigo.

Sobre o que o artigo poderia ser, considerando os nomes que você encontrou?

Juntamente com nltk, sent_tokenize e word_tokenize de nltk.tokenize foram pré-importados.

Este exercício faz parte do curso

Introdução ao processamento de linguagem natural em Python

Ver Curso

Instruções de exercício

  • Tokenize article em frases.
  • Tokenize cada frase em sentences em palavras usando uma lista de compreensão.
  • Dentro de uma lista de compreensão, marque cada sentença tokenizada em partes do discurso usando nltk.pos_tag().
  • Divida cada frase marcada em pedaços de entidades nomeadas usando nltk.ne_chunk_sents(). Junto com pos_sentences, especifique o argumento de palavra-chave adicional binary=True.
  • Faça um loop em cada frase e em cada bloco e teste se ele é um bloco de entidade nomeada, verificando se tem o atributo label e se chunk.label() é igual a "NE". Em caso afirmativo, imprima essa parte.

Exercício interativo prático

Experimente este exercício preenchendo este código de exemplo.

# 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)