NER avec NLTK
Vous allez maintenant vous amuser avec la reconnaissance d’entités nommées ! Un article d’actualité extrait du Web a été préchargé dans votre espace de travail. Votre objectif est d’utiliser nltk pour trouver les entités nommées dans cet article.
De quoi l’article pourrait-il parler, au vu des noms que vous avez trouvés ?
Avec nltk, sent_tokenize et word_tokenize de nltk.tokenize ont déjà été importés.
Cet exercice fait partie du cours
Introduction au Natural Language Processing (NLP) en Python
Instructions
- Segmentez
articleen phrases. - Tokenisez chaque phrase de
sentencesen mots à l’aide d’une compréhension de liste. - Dans une compréhension de liste, étiquetez chaque phrase tokenisée en parties du discours avec
nltk.pos_tag(). - Regroupez chaque phrase étiquetée en blocs d’entités nommées avec
nltk.ne_chunk_sents(). En plus depos_sentences, indiquez l’argument nommé supplémentairebinary=True. - Parcourez chaque phrase et chaque bloc, et testez s’il s’agit d’un bloc d’entité nommée en vérifiant s’il possède l’attribut
label, et sichunk.label()est égal à"NE". Le cas échéant, affichez ce bloc.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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)