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 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 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
label
e sechunk.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)