Entités et extensions
Dans cet exercice, vous allez combiner des attributs d’extension personnalisés avec les prédictions du modèle et créer un accesseur d’attribut qui renvoie une URL de recherche Wikipedia si le span est une personne, une organisation ou un lieu.
La classe Span est déjà importée et l’objet nlp a été créé pour vous.
Cet exercice fait partie du cours
NLP avancé avec spaCy
Instructions
- Complétez le getter
get_wikipedia_urlpour qu’il ne renvoie l’URL que si l’étiquette du span figure dans la liste des étiquettes. - Définissez l’extension
Span'wikipedia_url'en utilisant le getterget_wikipedia_url. - Itérez sur les entités dans le
docet affichez leur URL Wikipedia.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
def get_wikipedia_url(span):
# Get a Wikipedia URL if the span has one of the labels
if ____ in ('PERSON', 'ORG', 'GPE', 'LOCATION'):
entity_text = span.text.replace(' ', '_')
return "https://en.wikipedia.org/w/index.php?search=" + entity_text
# Set the Span extension wikipedia_url using get getter get_wikipedia_url
____.____(____, ____=____)
doc = nlp("In over fifty years from his very first recordings right through to his last album, David Bowie was at the vanguard of contemporary culture.")
for ent in doc.ents:
# Print the text and Wikipedia URL of the entity
print(____, ____)