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.____])