RegEx з EntityRuler у spaCy
Регулярні вирази (RegEx) застосовують для вилучення інформації за правилами з використанням складних шаблонів пошуку рядків. За допомогою RegEx можна знаходити шаблони або замінювати відповідні збіги в рядку на інші шаблони. У цій вправі ви попрактикуєтеся використовувати EntityRuler у spaCy, щоб знайти адреси електронної пошти в заданому text.
Пакет spaCy уже імпортовано для вашої роботи. Ви можете використовувати \d, щоб знаходити рядкові шаблони, що відповідають метасимволу для будь-якої цифри від 0 до 9.
Шаблон spaCy може використовувати REGEX як атрибут. У такому разі шаблон матиме вигляд [{"TEXT": {"REGEX": "<a given pattern>"}}].
Ця вправа є частиною курсу
Обробка природної мови (NLP) зі spaCy
Інструкції до вправи
- Визначте шаблон для відповідності номерам телефонів форми
8888888888, який використовуватимеEntityRuler. - Завантажте порожню англійську модель
spaCyта додайте компонентEntityRulerдо конвеєра. - Додайте скомпільований шаблон до компонента
EntityRuler. - Запустіть модель і виведіть кортеж із текстом і типом сутностей для заданого
text.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
text = "Our phone number is 4251234567."
# Define a pattern to match phone numbers
patterns = [{"label": "PHONE_NUMBERS", "pattern": [{"TEXT": {"REGEX": "(____){____}"}}]}]
# Load a blank model and add an EntityRuler
nlp = spacy.____("en")
ruler = nlp.____("entity_ruler")
# Add the compiled patterns to the EntityRuler
ruler.____(patterns)
# Print the tuple of entities texts and types for the given text
doc = ____(____)
print([(ent.____, ent.____) for ent in doc.____])