NER con NLTK
¡Ahora vas a divertirte con el reconocimiento de entidades con nombre! Se ha precargado en tu espacio de trabajo un artículo de noticias raspado. Tu tarea consiste en utilizar nltk
para encontrar las entidades nombradas en este artículo.
¿De qué podría tratar el artículo, dados los nombres que has encontrado?
Junto con nltk
, se han preimportado sent_tokenize
y word_tokenize
de nltk.tokenize
.
Este ejercicio forma parte del curso
Introducción al procesamiento de lenguaje natural en Python
Instrucciones de ejercicio
- Tokeniza
article
en frases. - Convierte cada frase de
sentences
en palabras utilizando una lista de comprensión. - Dentro de una comprensión de lista, etiqueta cada frase tokenizada en partes de la oración utilizando
nltk.pos_tag()
. - Trocea cada frase etiquetada en trozos de entidad con nombre utilizando
nltk.ne_chunk_sents()
. Junto conpos_sentences
, especifica el argumento de palabra clave adicionalbinary=True
. - Haz un bucle sobre cada frase y cada fragmento, y comprueba si es un fragmento de entidad con nombre comprobando si tiene el atributo
label
, y sichunk.label()
es igual a"NE"
. Si es así, imprime ese trozo.
Ejercicio interactivo práctico
Pruebe este ejercicio completando este 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)