ПочатиПочніть безкоштовно

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.____])
Редагувати та запускати код