The pattern works with matcher. But not as an entity? Here is my code:
import spacy
from spacy.pipeline import EntityRuler
nlp = spacy.load("en_core_web_sm")
patterns = [
{
"label": "PHONE_NUMBER",
"pattern": [
{"ORTH": "("},
{"SHAPE": "ddd"},
{"ORTH": ")"},
{"IS_SPACE": True, "OP": "?"},
{"SHAPE": "ddd"},
{"ORTH": "-"},
{"SHAPE": "dddd"},
],
}
]
entity_ruler = EntityRuler(nlp, patterns=patterns, overwrite_ents=True)
nlp.add_pipe("entity_ruler", before="ner")
doc = nlp("You can reach me at (111) 111-1111.")
for ent in doc.ents:
print(ent.text, ent.label_)
This returns:
111 CARDINAL
111 CARDINAL
Advice/help needed and appreciated. Thank you.