Практические примеры регулярных выражений в обработке естественного языка (NLP)

Регулярные выражения (regex) — это мощные инструменты обработки естественного языка (NLP) для сопоставления с образцом и манипулирования текстом. В этой статье мы рассмотрим несколько практических методов использования регулярных выражений в НЛП, сопровождаемых примерами кода. Независимо от того, являетесь ли вы новичком или опытным практикующим НЛП, эти методы помогут вам эффективно извлекать ценную информацию из текстовых данных.

  1. Токенизация.
    Токенизация – это процесс разделения текста на отдельные единицы или токены. Регулярные выражения могут помочь определить шаблоны токенизации на основе пробелов, знаков препинания или определенных шаблонов слов. Вот пример на Python:
import re
text = "Hello world! This is an example sentence."
tokens = re.findall(r"\b\w+\b", text)
print(tokens)  # Output: ['Hello', 'world', 'This', 'is', 'an', 'example', 'sentence']
  1. Извлечение объектов.
    Регулярные выражения могут помочь в извлечении определенных объектов из текста, таких как даты, адреса электронной почты или номера телефонов. Вот пример на Python для извлечения адресов электронной почты:
import re
text = "Contact us at info@example.com or support@example.com."
emails = re.findall(r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b", text)
print(emails)  # Output: ['info@example.com', 'support@example.com']
  1. Нормализация текста.
    Регулярные выражения могут помочь в нормализации текста путем преобразования символов верхнего регистра в нижний регистр, расширения сокращений или удаления диакритических знаков. Вот пример на Python преобразования текста в нижний регистр:
import re
text = "This is an EXAMPLE sentence."
normalized_text = re.sub(r"\b\w+\b", lambda x: x.group().lower(), text)
print(normalized_text)  # Output: "this is an example sentence"