CommencezCommencez gratuitement

Reconnaissance d'entités nommées (NER) avec NLTK

Passons maintenant à la reconnaissance d'entités nommées ! Un article d'actualité extrait du Web a été préchargé dans votre espace de travail. Votre tâche consiste à utiliser nltk pour repérer les entités nommées dans cet article.

De quoi pourrait traiter l'article, compte tenu des noms que vous avez trouvés?

En plus de nltk, sent_tokenize et word_tokenize de nltk.tokenize ont été préimportés.

Cette activité fait partie du cours

Introduction au traitement du langage naturel en Python

Voir le cours

Instructions de l’exercice

  • Segmentez article en phrases.
  • À l'aide d'une compréhension de liste, segmentez chaque phrase de sentences en mots.
  • Dans une compréhension de liste, étiquetez chaque phrase tokenisée par catégorie grammaticale avec nltk.pos_tag().
  • Regroupez chaque phrase étiquetée en groupes d'entités nommées avec nltk.ne_chunk_sents(). En plus de pos_sentences, indiquez l'argument mot-clé supplémentaire binary=True.
  • Parcourez chaque phrase et chaque groupe, puis vérifiez s'il s'agit d'un groupe d'entité nommée en testant s'il possède l'attribut label et si chunk.label() est égal à "NE". Le cas échéant, affichez ce groupe.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

# 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)
Modifier et exécuter le code