1. Основы лингвистики и математические методы предварительной обработки текстовых данных
Основы лингвистики и математические методы предварительной обработки текстовых данных
Почему компьютер, способный вычислять траектории межпланетных станций с точностью до миллиметра, годами пасовал перед простой фразой «Косил косой косой косой»? Проблема не в недостатке вычислительной мощности, а в фундаментальном различии между формальными языками математики и естественным языком (Natural Language). В математике символ всегда равен в рамках одного контекста, но в лингвистике слово «косой» может быть существительным (инструмент), прилагательным (кривой) или существительным-субъектом (заяц). Чтобы превратить этот хаос смыслов в векторы, понятные нейронным сетям, нам необходимо пройти путь от лингвистической теории до жестких математических преобразований.
Лингвистическая иерархия и уровни анализа
Обработка текста начинается не с кода, а с понимания того, как структурирована человеческая речь. Текст — это не просто последовательность символов, а иерархическая система. Ошибка многих начинающих специалистов по Data Science заключается в игнорировании этой иерархии, что ведет к потере семантических связей уже на этапе предобработки.
Математическая обработка текста — это попытка максимально эффективно аппроксимировать эти уровни, переводя их в дискретные или непрерывные числовые представления.
Токенизация: от символов к единицам смысла
Первый шаг любого NLP-пайплайна — токенизация. Это процесс разбиения непрерывного потока символов на значимые единицы (токены). Казалось бы, достаточно разделить текст по пробелам, но на практике этот подход разбивается о реальность.
Проблемы наивной токенизации
Рассмотрим предложение: «Санкт-Петербург — город федерального значения в РФ, т.е. субъект федерации».Современные методы: Subword Tokenization
В современных архитектурах (BERT, GPT) классическая токенизация по словам уступила место subword-алгоритмам, таким как Byte Pair Encoding (BPE) или WordPiece.Математическая логика BPE строится на итеративном объединении наиболее частотных пар символов. Пусть у нас есть корпус: low: 5, lower: 2, newest: 6, widest: 3.
l o w, l o w e r и т.д.e и s часто встречаются в newest и widest. Объединяем их в новый токен es.es и t объединяем в est.Этот метод решает проблему Out-of-Vocabulary (OOV). Если модель встретит незнакомое слово «lowes», она соберет его из известных кусков low + es, сохранив часть смысла.
Нормализация: стемминг против лемматизации
После того как текст разбит на токены, их нужно привести к единообразию. В лингвистике это называется нормализацией. Основная цель — сократить размерность признакового пространства. Если в тексте встречаются слова «бежать», «бегу», «бежал», для многих задач (например, классификации темы) нам выгодно считать их одним признаком.
Стемминг (Stemming)
Это грубое «отрезание» окончаний и суффиксов на основе набора правил (алгоритм Портера).Лемматизация (Lemmatization)
Это морфологический анализ, который приводит слово к его словарной форме (лемме).Математически лемматизация сложнее, так как она часто требует контекста для снятия омонимии. Рассмотрим слово «стекло». Это существительное («прозрачное стекло») или глагол в прошедшем времени («вода стекло с крыши»)? Качественные лемматизаторы (например, PyMorphy2 или Mystem для русского языка) используют вероятностные модели для выбора правильной леммы на основе соседних слов.
Очистка данных и стоп-слова
Не все токены одинаково полезны. В теории информации существует понятие энтропии: наиболее часто встречающиеся элементы несут меньше всего уникальной информации.
Стоп-слова — это предлоги, союзы, частицы («и», «в», «на», «что»). В классических методах (TF-IDF, Word2Vec) их принято удалять, так как они создают «шум». Однако в задачах глубокого обучения (Transformers) стоп-слова часто оставляют, так как они важны для понимания синтаксических связей. Удаление частицы «не» полностью инвертирует смысл предложения, что фатально для анализа тональности (Sentiment Analysis).
Формальные модели представления текстов
Когда текст очищен и нормализован, наступает этап перехода в векторное пространство. Самая простая модель — Bag of Words (BoW). Мы строим вектор длиной (размер словаря), где каждая координата — это количество вхождений слова в документ.
Однако у BoW есть два критических недостатка:
Алгоритм TF-IDF
Для решения первой проблемы используется статистическая мера TF-IDF (Term Frequency — Inverse Document Frequency). Она позволяет оценить важность слова в контексте конкретного документа относительно всего корпуса.Формула расчета состоит из двух частей:
Логарифм здесь критически важен: он «сглаживает» влияние очень редких слов, не давая им получить бесконечно высокий вес. Итоговый вес .
Нюанс: Если слово встречается в каждом документе (как стоп-слово), его будет равен , и оно автоматически исключится из анализа. Это элегантный математический способ фильтрации шума без ручного составления списков стоп-слов.
Проклятие размерности и n-граммы
Одной из главных проблем классического NLP является потеря порядка слов. В модели BoW предложения «Мама мыла раму» и «Раму мыла мама» идентичны. Чтобы частично сохранить локальный контекст, используются n-граммы — последовательности из соседних токенов.
[Мама], [мыла], [раму][Мама мыла], [мыла раму][Мама мыла раму]Использование n-грамм экспоненциально увеличивает размер словаря. Если у нас слов, то теоретическое количество биграмм — . На практике большинство комбинаций никогда не встретятся, но матрица признаков всё равно становится разреженной (sparse), что требует специальных методов хранения и вычислений.
Математические методы уменьшения размерности
Чтобы эффективно работать с разреженными матрицами типа TF-IDF, применяются методы линейной алгебры. Один из классических подходов — LSA (Latent Semantic Analysis) или Латентно-семантический анализ.
В основе LSA лежит Сингулярное разложение (SVD). Мы раскладываем исходную матрицу «термины-документы» на три матрицы:
Где:
Оставляя только самых больших сингулярных чисел в матрице , мы проецируем высокоразмерное пространство слов в низкоразмерное «семантическое пространство». Это позволяет находить синонимы: слова «автомобиль» и «машина» могут не встречаться в одном документе, но в пространстве LSA их векторы будут близки, так как они часто соседствуют с одними и теми же словами («дорога», «двигатель», «скорость»).
Регулярные выражения как инструмент прецизионной обработки
Несмотря на мощь нейросетей, регулярные выражения (RegEx) остаются «скальпелем» в руках инженера NLP. Существуют задачи, где статистические методы избыточны или неточны:
Математически RegEx базируется на теории конечных автоматов. Это гарантирует детерминированное время выполнения, что крайне важно при обработке терабайтов сырых данных (Data Crawling).
Краевые случаи и проблемы предобработки
Работа с «диким» текстом из интернета подбрасывает задачи, которые не описываются в учебниках по лингвистике.
Расстояние Левенштейна и нечеткое сравнение
Когда мы говорим о предобработке, часто возникает задача сопоставления слов с ошибками. Математически это решается через редакционное расстояние (Edit Distance).
Расстояние Левенштейна между двумя строками и — это минимальное количество операций (вставка, удаление, замена символа), необходимых для превращения в . Алгоритм вычисляется с помощью динамического программирования. Пусть — расстояние между префиксами строк длиной и . Тогда:
Где , если символы совпадают, и , если нет.
Этот метод используется в поисковых подсказках («Возможно, вы имели в виду...») и при дедупликации текстовых данных, когда нужно найти почти идентичные документы, различающиеся парой знаков.
Взгляд в будущее: от правил к эмбеддингам
Мы рассмотрели фундамент: как разрезать текст на куски, как их нормализовать и как взвесить их значимость. Классические методы (TF-IDF, LSA) опираются на явную статистику. Они отлично работают на малых и средних корпусах, где важна интерпретируемость. Однако они страдают от «разреженности» и не учитывают тонкие нюансы контекста.
Современный подход, к которому мы перейдем в следующих лекциях, заключается в переходе от дискретных токенов к плотным векторным представлениям (Embeddings). Вместо того чтобы вручную прописывать правила лемматизации или удалять стоп-слова, мы заставим нейронную сеть саму выучить эти закономерности, анализируя гигантские объемы текстов. Но даже самая сложная архитектура Transformer на входе получает результат работы токенизатора, а качество её обучения напрямую зависит от того, насколько грамотно была проведена очистка и нормализация данных на старте.
Предобработка — это не «скучная рутина», а процесс фильтрации сигнала из шума. Ошибка на этом этапе, будь то неправильно выбранный метод токенизации или агрессивное удаление важных пунктуационных знаков, создаст «стеклянный потолок», который не позволит прыгнуть выше определенной точности даже самой мощной модели.