Kom igångKom igång gratis

RegEx med EntityRuler i spaCy

Reguljära uttryck, eller RegEx, används för regelbaserad informationsextraktion med komplexa strängmatchningsmönster. RegEx kan användas för att hitta mönster eller ersätta matchande mönster i en sträng med andra mönster. I den här övningen tränar du på att använda EntityRuler i spaCy för att hitta e-postadresser i en given text.

Paketet spaCy är redan importerat. Du kan använda \d för att matcha strängmönster som representerar ett metategn som matchar valfri siffra från 0 till 9.

Ett spaCy-mönster kan använda REGEX som attribut. I så fall har mönstret formen [{"TEXT": {"REGEX": "<ett givet mönster>"}}].

Den här övningen är en del av kursen

Naturlig språkbehandling med spaCy

Visa kurs

Övningsinstruktioner

  • Definiera ett mönster för att matcha telefonnummer på formen 8888888888 som ska användas av EntityRuler.
  • Läs in en tom engelsk spaCy-modell och lägg till en EntityRuler-komponent i pipelinen.
  • Lägg till det kompilerade mönstret i EntityRuler-komponenten.
  • Kör modellen och skriv ut tupeln med text och entitetstyp för den givna texten.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

text = "Our phone number is 4251234567."

# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]

# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")

# Add the compiled patterns to the EntityRuler
ruler.____(patterns)

# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])
Redigera och kör kod