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
Instruções do exercício
- Tokenize
articleem frases. - Tokenize cada frase em
sentencesem 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 compos_sentences, especifique o argumento de palavra-chave adicionalbinary=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
labele sechunk.label()é igual a"NE". Em caso afirmativo, imprima essa parte.
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)