ComeçarComece de graça

NER com NLTK

Agora você vai se divertir com reconhecimento de entidades nomeadas! Um artigo de notícias raspado já foi carregado no seu ambiente. Sua tarefa é usar o nltk para encontrar as entidades nomeadas nesse artigo.

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

Além do nltk, sent_tokenize e word_tokenize de nltk.tokenize já foram importados previamente.

Este exercício faz parte do curso

Introdução ao Processamento de Linguagem Natural em Python

Ver curso

Instruções do exercício

  • Tokenize article em frases.
  • Tokenize cada frase em sentences em palavras usando uma list comprehension.
  • Em uma list comprehension, marque cada frase tokenizada com classes gramaticais usando nltk.pos_tag().
  • Separe cada frase etiquetada em blocos de entidades nomeadas usando nltk.ne_chunk_sents(). Junto com pos_sentences, especifique também o argumento nomeado binary=True.
  • Faça um loop por cada frase e por cada bloco, e verifique se é um bloco de entidade nomeada testando se ele tem o atributo label e se chunk.label() é igual a "NE". Se for, imprima esse bloco.

Exercício interativo prático

Experimente este exercício completando 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)
Editar e executar o código