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
Instrucțiuni pentru exercițiu
- Definește un obiect matcher folosind
Matcherșinlp. - Folosește operatorul
INpentru a defini un tipar care să potriveascătiny squaresșitiny 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)