Articles → SPACY → Spacy Pattern Matcher

Spacy Pattern Matcher






Purpose







Example


import spacy
from spacy.matcher import Matcher

nlp = spacy.load("en_core_web_sm")
matcher = Matcher(nlp.vocab)

# Pattern:
# Hard-coded word "CPU" followed by a number (one token)
pattern = [
    {"LOWER": "cpu"},          # hard-coded string
    {"IS_DIGIT": True}         # specifier (a number)
]

matcher.add("CPU_WITH_NUMBER", [pattern])

doc = nlp("The server has CPU 4 and CPU 16 cores.")

matches = matcher(doc)
for match_id, start, end in matches:
    print("Matched:", doc[start:end].text)



Output


Picture showing the output of spacy pattern matcher



Using Regular Expression




import spacy
from spacy.matcher import Matcher

nlp = spacy.load("en_core_web_sm")
matcher = Matcher(nlp.vocab)

# Pattern using REGEX:
# Match the hard-coded string CPU (case-insensitive)
# Followed by a number (regex for digits)

pattern = [
    {"TEXT": {"REGEX": "(?i)cpu"}},      # hard-coded string using regex (case-insensitive)
    {"TEXT": {"REGEX": "^[0-9]+$"}}      # number using regex
]

matcher.add("CPU_WITH_NUMBER", [pattern])

doc = nlp("The server has CPU 4 and CPU 16 cores.")

matches = matcher(doc)
for match_id, start, end in matches:
    print("Matched:", doc[start:end].text)





Posted By  -  Karan Gupta
 
Posted On  -  Sunday, November 30, 2025

Query/Feedback


Your Email Id
 
Subject
 
Query/FeedbackCharacters remaining 250