НачатьНачать бесплатно

RegEx с EntityRuler в spaCy

Регулярные выражения (RegEx) применяются для извлечения информации на основе правил с использованием сложных шаблонов сопоставления строк. С помощью RegEx можно находить нужные шаблоны в строке или заменять совпадения другими шаблонами. В этом упражнении вы попрактикуетесь в использовании EntityRuler из spaCy для поиска адресов электронной почты в заданном тексте text.

Пакет spaCy уже импортирован и готов к использованию. Для сопоставления строк, соответствующих метасимволу любой цифры от 0 до 9, используйте \d.

Шаблон spaCy может использовать атрибут REGEX. В таком случае шаблон будет иметь вид [{"TEXT": {"REGEX": "<заданный шаблон>"}}].

Это упражнение является частью курса

Обработка естественного языка с помощью 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.____])
Редактировать и запускать код