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
article
en phrases. - Réduisez chaque phrase du site
sentences
en 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)