ComenzarEmpieza gratis

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

Ver curso

Instrucciones del ejercicio

  • Tokeniza article en oraciones.
  • Tokeniza cada oración en sentences en 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 de pos_sentences, especifica el argumento con nombre adicional binary=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 si chunk.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)
Editar y ejecutar código