NER avec NLTK
Vous allez maintenant pouvoir vous amuser avec la reconnaissance des entités nommées ! Un article de presse a été préchargé dans votre espace de travail. Votre tâche consiste à utiliser nltk pour trouver les entités nommées dans cet article.
Quel pourrait être le sujet de 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.
Cet exercice fait partie du cours
Introduction au traitement du langage naturel en Python
Instructions
- Tokeniser
articleen phrases. - Réduisez chaque phrase du site
sentencesen mots à l'aide d'une liste de compréhension. - A l'intérieur d'une liste de compréhension, marquez chaque phrase tokenisée en parties du discours à l'aide de
nltk.pos_tag(). - Décomposer chaque phrase étiquetée en morceaux d'entités nommées à l'aide de
nltk.ne_chunk_sents(). Avecpos_sentences, spécifiez le mot-clé supplémentairebinary=True. - Passez en revue chaque phrase et chaque bloc et vérifiez s'il s'agit d'un bloc d'entité nommée en testant s'il possède l'attribut
label, et sichunk.label()est égal à"NE". Si c'est le cas, imprimez ce morceau.
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)