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
Instructions de l’exercice
- Segmentez
articleen phrases. - À l'aide d'une compréhension de liste, segmentez chaque phrase de
sentencesen 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 depos_sentences, indiquez l'argument mot-clé supplémentairebinary=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
labelet sichunk.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)