ÎncepețiÎncepe gratuit

PhraseMatcher în spaCy

Când procesezi text nestructurat, ai adesea liste și dicționare lungi pe care vrei să le scanezi și să le potrivești în texte date. Tiparele pentru Matcher sunt create manual, iar fiecare token trebuie codificat individual. Dacă ai o listă lungă de fraze, Matcher nu mai este cea mai bună opțiune. În acest caz, clasa PhraseMatcher ne ajută să potrivim dicționare extinse. În acest exercițiu, vei exersa extragerea tiparelor cu forme corespunzătoare mai multor termeni folosind clasa PhraseMatcher.

Modelul en_core_web_sm este deja încărcat și disponibil ca nlp. Clasa PhraseMatcher este importată. Un șir de caractere text și o listă de terms sunt disponibile pentru utilizare.

Acest exercițiu face parte din cursul

Procesarea limbajului natural cu spaCy

Vezi cursul

Instrucțiuni pentru exercițiu

  • Inițializează o instanță a clasei PhraseMatcher cu un argument attr pentru a potrivi forma termenilor din terms.
  • Creează patterns pentru a le adăuga obiectului PhraseMatcher.
  • Găsește potrivirile pentru tiparele date și afișează indicii de început și de sfârșit ai tokenilor, precum și secțiunea corespunzătoare din text.

Exercițiu interactiv practic

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

text = "There are only a few acceptable IP addresse: (1) 127.100.0.1, (2) 123.4.1.0."
terms = ["110.0.0.0", "101.243.0.0"]

# Initialize a PhraseMatcher class to match to shapes of given terms
matcher = ____(nlp.____, attr = ____)

# Create patterns to add to the PhraseMatcher object
patterns = [nlp.make_doc(____) for term in terms]
matcher.____("IPAddresses", patterns)

# Find matches to the given patterns and print start and end characters and matches texts
doc = ____
matches = ____
for match_id, start, end in matches:
    print("Start token: ", ____, " | End token: ", ____, "| Matched text: ", doc[____:____].text)
Editează și rulează codul