Strutture dati: Doc, Span e Token

NLP avanzato con spaCy

Ines Montani

spaCy core developer

L'oggetto Doc

# Create an nlp object
from spacy.lang.en import English
nlp = English()

# Import the Doc class from spacy.tokens import Doc
# The words and spaces to create the doc from words = ['Hello', 'world', '!'] spaces = [True, False, False]
# Create a doc manually doc = Doc(nlp.vocab, words=words, spaces=spaces)
NLP avanzato con spaCy

L'oggetto Span (1)

Illustrazione di uno Span dentro un Doc con indici dei token

NLP avanzato con spaCy

L'oggetto Span (2)

# Import the Doc and Span classes
from spacy.tokens import Doc, Span

# The words and spaces to create the doc from
words = ['Hello', 'world', '!']
spaces = [True, False, False]

# Create a doc manually
doc = Doc(nlp.vocab, words=words, spaces=spaces)

# Create a span manually span = Span(doc, 0, 2)
# Create a span with a label span_with_label = Span(doc, 0, 2, label="GREETING")
# Add span to the doc.ents doc.ents = [span_with_label]
NLP avanzato con spaCy

Buone pratiche

  • Doc e Span sono potenti e mantengono riferimenti e relazioni tra parole e frasi
    • Converti in stringhe il più tardi possibile
    • Usa gli attributi dei token se ci sono – ad esempio, token.i per l'indice
  • Non dimenticare di passare il vocab condiviso
NLP avanzato con spaCy

Passiamo alla pratica !

NLP avanzato con spaCy

Preparing Video For Download...