Открыть сервис

Нормализация текста

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

Задачи нормализации текста

Основные задачи, решаемые в процессе нормализации, включают:

Методы нормализации

Правила и словари

Наиболее простые методы используют заранее заданные правила (регулярные выражения) и словари. Например:

Словарные методы эффективны для нормализации устойчивых сокращений, аббревиатур и терминов, но не справляются с неизвестными словами или омографами (словами, пишущимися одинаково, но имеющими разное значение).

Стемминг

Стемминг — алгоритмическое отбрасывание аффиксов (суффиксов, окончаний) для получения основы слова. Наиболее известные алгоритмы:

Недостаток стемминга — возможная потеря грамматической информации, а также неоднозначность основы (например, «связь» и «связать» дадут разные основы при использовании некоторых алгоритмов).

Лемматизация

Лемматизация — приведение слова к его словарной (нормальной) форме с учётом морфологического анализа. В отличие от стемминга, лемматизация опирается на полноценные грамматические правила и словари (лемматизацию иногда называют «морфологическим анализом»). Для русского языка наиболее распространены:

Лемматизация точнее стемминга, но требует больше вычислительных ресурсов и времени.

Статистические и нейросетевые методы

Для исправления опечаток, нормализации нестандартной орфографии (например, интернет-сленга «норм», «спс») применяются:

Для нормализации раскладки клавиатуры используются простые таблицы соответствия символов русской и латинской раскладок.

Применение

Нормализация текста применяется практически во всех задачах NLP:

Критика и ограничения

  1. Потеря смысла. Слишком агрессивная нормализация (удаление всех знаков препинания, приведение к нижнему регистру) может уничтожить значимые нюансы: различие между вопросительным и восклицательным предложениями, ироничное выделение заглавными буквами.
  2. Контекстная зависимость. Лемматизация и стемминг не всегда учитывают контекст: слово «замок» (замок или строение) лемматизируется одинаково, хотя значения разные.
  3. Ошибки лемматизации. Для редких слов, заимствований, неологизмов лемматизаторы могут давать неверную начальную форму.
  4. Вычислительная сложность. При обработке больших корпусов (миллиарды слов) лемматизация каждого слова может быть затратной.
  5. Субъективность выбора нормы. Для одного и того же слова в разных вариантах (например, «Интернет» / «интернет») не всегда очевидно, какой вариант считать нормальным.

Примеры инструментов и библиотек

ИнструментТип нормализацииЯзыкиОсобенности
pymorphy2ЛемматизацияРусскийОткрытое ПО, словарь OpenCorpora
MystemЛемматизацияРусскийБыстрый, закрытый словарь Яндекса
NLTK (WordNet Lemmatizer)ЛемматизацияАнглийскийТребует подключения WordNet
spaCyЛемматизация + токенизацияМногоязычныйКонвейерный подход, предобученные модели
SnowballСтеммингМногоязычныйРеализация стеммеров для многих языков
hunspellПроверка орфографии + стеммингМногоязычныйИспользуется в OpenOffice, LibreOffice
re (Python)Правила (регулярные выражения)УниверсальныйПростые замены, без учёта языка
TextacyНормализация (обёртка над spaCy)МногоязычныйВключает множество утилит для предобработки

В зависимости от задачи и языка исследователи комбинируют различные методы, создавая конвейеры предобработки.

Источники

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →