NER con NLTK
¡Ahora toca divertirse con el reconocimiento de entidades con nombre! Un artículo de noticias extraído de la web ya está precargado en tu espacio de trabajo. Tu tarea es usar nltk para encontrar las entidades con nombre en este artículo.
¿De qué podría tratar el artículo, a la vista de los nombres que encuentres?
Además de nltk, sent_tokenize y word_tokenize de nltk.tokenize ya se han importado previamente.
Este ejercicio forma parte del curso
Introducción al Natural Language Processing en Python
Instrucciones del ejercicio
- Tokeniza
articleen oraciones. - Tokeniza cada oración en
sentencesen palabras usando una list comprehension. - Dentro de una list comprehension, etiqueta cada oración tokenizada con sus categorías gramaticales usando
nltk.pos_tag(). - Divide cada oración etiquetada en chunks de entidades con nombre usando
nltk.ne_chunk_sents(). Además depos_sentences, especifica el argumento con nombre adicionalbinary=True. - Recorre cada oración y cada chunk, y comprueba si es un chunk de entidad con nombre verificando si tiene el atributo
label, y sichunk.label()es igual a"NE". En ese caso, imprime ese chunk.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# 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)