ÎncepețiÎncepe gratuit

Potrivire cu sintaxă extinsă în spaCy

Extragerea informațiilor pe bază de reguli este esențială în orice pipeline NLP. Clasa Matcher permite ca tipare să fie mai expresive, acceptând anumiți operatori în interiorul acoladelor. Acești operatori sunt folosiți pentru comparații extinse și seamănă cu operatorii in, not in și operatorii de comparație din Python. În acest exercițiu, vei exersa funcționalitatea de potrivire din spaCy, Matcher, pentru a găsi potriviri ale unor termeni dintr-un text exemplu.

Clasa Matcher este deja importată din biblioteca spacy.matcher. Vei folosi un container Doc al unui text exemplu apelând doc. Un model spaCy preîncărcat este disponibil și la nlp.

Acest exercițiu face parte din cursul

Procesarea limbajului natural cu spaCy

Vezi cursul

Instrucțiuni pentru exercițiu

  • Definește un obiect matcher folosind Matcher și nlp.
  • Folosește operatorul IN pentru a defini un tipar care să potrivească tiny squares și tiny mouthful.
  • Folosește acest tipar pentru a găsi potriviri în doc.
  • Afișează indicii de început și de sfârșit ai tokenurilor, precum și intervalul de text al potrivirilor.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

nlp = spacy.load("en_core_web_sm")
doc = nlp(example_text)

# Define a matcher object
matcher = Matcher(nlp.____)
# Define a pattern to match tiny squares and tiny mouthful
pattern = [{"lower": ____}, {"lower": {____: ["squares", "mouthful"]}}]

# Add the pattern to matcher object and find matches
matcher.____("CustomMatcher", [____])
matches = ____(____)

# Print out start and end token indices and the matched text span per match
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Editează și rulează codul