МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ
____________________________
Кафедра ____________________________
РЕФЕРАТ
на тему: «Применение метода опорных векторов в задаче классификации текстов»
Выполнил(а): ____________________________
Группа: ____________________________
Проверил(а): ____________________________
2026
Содержание
- 3
- 6
- 9
- 12
Введение в классификацию текстов
Классификация текстов, это задача автоматического отнесения документа к одной из заранее заданных категорий на основе его содержания. В терминах машинного обучения речь идет о построении решающего правила, которое отображает множество текстов в конечное множество меток. Сложность здесь в том, что текст не является структурой данных, привычной для алгоритмов: его нужно превратить в числовой вектор, сохранив при этом смысловую нагрузку.
Прикладное значение задачи огромно. От фильтрации спама в почтовых сервисах, где алгоритм отделяет рекламные рассылки от важных писем, до автоматической рубрикации новостных лент и анализа тональности отзывов в интернет-магазинах. Везде, где нужно быстро обработать поток неструктурированной информации, классификатор берет на себя рутинную работу человека.
История развития подходов к этой задаче насчитывает несколько десятилетий. Одним из первых и самых простых методов является наивный байесовский классификатор. Он основан на теореме Байеса и предполагает, что все признаки текста, то есть слова, статистически независимы друг от друга. Это допущение, конечно, ложное: появление слова «акция» часто соседствует со словом «скидка». Тем не менее, как показал Дэвид Льюис в своих работах 1990-х годов, наивный Байес демонстрирует удивительно высокую точность для столь грубой модели. Его главный плюс это скорость обучения и работы, поэтому он до сих пор применяется в системах реального времени с огромными потоками данных.
Другой распространенный подход, логистическая регрессия. В отличие от наивного Байеса, она не делает предположений о распределении признаков, а подбирает веса для каждого слова таким образом, чтобы максимизировать вероятность правильной классификации. Логистическая регрессия хорошо справляется с линейно разделимыми данными и
дает на выходе не только метку класса, но и вероятность принадлежности к нему. Однако у нее есть серьезный недостаток: при большом количестве признаков, которое в текстовых задачах может достигать десятков тысяч, модель склонна к переобучению. Требуется тщательная настройка параметров регуляризации, чтобы избежать запоминания обучающей выборки вместо выявления общих закономерностей.
Деревья решений предлагают принципиально иную логику. Они последовательно разбивают множество документов по правилам вида «если в тексте встречается слово X, то идем в левую ветвь». Этот метод интуитивно понятен и легко интерпретируем: всегда можно объяснить, почему конкретный текст попал в ту или иную категорию. Но для текстовых данных деревья решений работают плохо. Разреженное и высокоразмерное пространство признаков приводит к тому, что дерево вырастает очень глубоким и сложным, а его решающие правила становятся хрупкими. Оно хорошо видит отдельные слова, но плохо улавливает их комбинации и контекст, что критично для понимания смысла.
Метод опорных векторов, предложенный Владимиром Вапником и его коллегами в 1960-х годах, решает эту проблему иначе. SVM ищет разделяющую гиперплоскость с максимальным зазором между классами. Интуиция проста: если разделять два множества точек, то лучше всего провести границу посередине, на максимальном удалении от ближайших объектов обоих классов. Эти ближайшие объекты и называются опорными векторами. Ключевое преимущество метода в том, что сложность модели зависит не от размерности признакового пространства, а от количества опорных векторов. Даже когда словарь содержит 50 000 слов, SVM эффективно работает, поскольку решающая функция строится только на небольшом подмножестве обучающих примеров. Это делает его исключительно устойчивым к переобучению в условиях высокоразмерных и разреженных данных, что является типичной ситуацией для текстов. Точность SVM в задачах классификации
текстов, как показывают многочисленные исследования, в том числе работы Торстена Йоахимса конца 1990-х годов, часто превосходит наивный Байес и логистическую регрессию при сопоставимых вычислительных затратах на этапе предсказания.
Цель данной работы состоит в исследовании применения метода опорных векторов для классификации текстов. В следующей главе будут рассмотрены этапы предобработки текста: токенизация, удаление стоп-слов и преобразование в числовые признаки с помощью схемы TF-IDF. Третья глава посвящена выбору ядра и процессу обучения модели на реальном наборе данных. В четвертой главе проводится оценка точности полученной модели, ее сравнение с альтернативными алгоритмами и анализ ошибок. Итогом работы станет обоснованный вывод о практической применимости SVM в этой области.
2. Предобработка текстовых данных
Любой текст, попадающий в классификатор, это лишь последовательность символов. Модель опорных векторов оперирует числами, а не словами. Поэтому первый этап работы сводится к превращению сырого корпуса в числовую матрицу, где каждая строка соответствует документу, а каждый столбец признаку. От того, насколько аккуратно выполнен этот переход, напрямую зависит способность алгоритма разделять классы.
Начальная стадия очистки включает токенизацию. Она разбивает поток символов на отдельные лексемы, обычно слова и числа, отбрасывая знаки препинания и лишние пробелы. Сразу за этим следует фильтрация стоп-слов. Такие единицы, как предлоги, союзы и частицы, не несут смысловой нагрузки для тематики документа, но создают шум в признаковом пространстве. В английском языке стандартный список стоп-слов насчитывает около 100 позиций, в русском его объём сравним. Следом применяется стемминг. Эта процедура усекает слово до его основы, объединяя разные словоформы: «дом», «дома», «домик» сводятся к единому корню. Алгоритм Портера, предложенный в 1980 году, остаётся одним из самых распространённых инструментов для этой операции, хотя у него есть недостаток: он может объединить слова с разным смыслом, например «стол» и «столица». Более точный вариант, лемматизация, требует словаря и морфологического разбора, что дороже по вычислительным затратам.
Следующий шаг это векторизация. Простейший метод, мешок слов, строит вектор, где каждая координата равна частоте конкретного термина в документе. Здесь игнорируется порядок слов, отсюда и название: текст рассматривается как неупорядоченное множество лексем. Такой подход прост, но обладает серьёзным изъяном. Слова, встречающиеся почти в каждом документе корпуса, например «быть» или «являться», получают непропорционально большой вес, хотя не помогают различить
тематику. Частично эту проблему решает схема TF-IDF. Она перемножает частоту термина в документе на обратную частоту его появления во всём корпусе. В результате редкие и специфичные слова получают высокий вес, а частотные и общие, наоборот, стремятся к нулю. Такая нормализация делает признаки более информативными для разделения классов.
Выбор между мешком слов и TF-IDF напрямую влияет на качество модели. В своей работе 2002 года, посвящённой классификации веб-страниц, исследователи показали, что использование TF-IDF вместо сырых частот повышает точность линейного классификатора на несколько процентов. Однако TF-IDF не панацея. Если в обучающей выборке мало документов, а словарь большой, оценки IDF становятся неустойчивыми. В такой ситуации более грубый мешок слов может оказаться надёжнее. Признаковое пространство растёт пропорционально размеру словаря, который для корпуса в несколько тысяч документов легко достигает десятков тысяч уникальных терминов.
Главная техническая проблема возникает именно здесь: размерность данных колоссальна, а плотность заполнения матрицы ничтожна. Большинство элементов матрицы это нули, ведь каждый документ содержит лишь малую долю слов из общего словаря. Такое свойство называется разреженностью. Метод опорных векторов, в отличие от многих других алгоритмов, хорошо переносит эту особенность. Его целевая функция зависит только от скалярных произведений векторов признаков, а для разреженных матриц эти вычисления выполняются эффективно. Тем не менее, слишком большое число признаков замедляет обучение и может привести к переобучению. Для смягчения проблемы применяют отбор признаков. Простой способ: отбросить термины, встречающиеся менее чем в трёх документах, или, наоборот, в более чем половине корпуса. Более изощрённый вариант использует статистику хи-квадрат, которая оценивает степень зависимости каждого термина от целевого класса. Такой отбор способен сократить
словарь в несколько раз без заметной потери точности.
3. Выбор ядра и обучение модели
После векторизации данные превращаются в разреженные матрицы, где каждое измерение соответствует одному термину из словаря. В таком пространстве провести линейную границу между классами часто не получается, особенно когда тексты разных категорий пересекаются по лексике. В этом случае помогает ядровая функция. Она переводит задачу в пространство большей размерности, не выполняя при этом явных преобразований координат. Сам трюк с ядром был описан ещё в работах Вапника и Червоненкиса. Он позволяет SVM строить нелинейные границы, вычисляя лишь скалярные произведения объектов в новом пространстве.
Для текстовой классификации обычно рассматриваются три типа ядер. Линейное ядро вычисляет обычное скалярное произведение векторов признаков; оно работает быстро и неплохо справляется с задачами, где классы разделяются гиперплоскостью. Полиномиальное ядро добавляет степени произведения. При степени 2 или 3 оно начинает учитывать взаимодействия между парами признаков. Это полезно, когда категория текста определяется сочетанием терминов, а не наличием какого-то одного из них. RBF-ядро (радиальная базисная функция) отображает данные в бесконечномерное пространство и теоретически способно воспроизвести границу любой сложности. На практике оно даёт высокую точность, но требует аккуратной настройки параметра гаммы, который контролирует радиус влияния каждого отдельного объекта.
На текстовых данных линейное ядро, как правило, показывает результаты, сопоставимые с более сложными вариантами. Причина в том, что TF-IDF-векторы сами по себе уже обладают структурой, близкой к линейно разделимой. В экспериментах с новостными корпусами (например, с набором 20 Newsgroups) линейный SVM достигает F1-меры около 0.85. RBF с оптимальными параметрами даёт лишь на 1-2% выше, но требует на порядок больше времени на подбор гиперпараметров. Полиномиальное
ядро часто оказывается худшим выбором: оно переобучается на разреженных матрицах и чувствительно к масштабу признаков.
Настройка гиперпараметров превращается в отдельную задачу. Параметр регуляризации C определяет баланс между максимизацией зазора между классами и минимизацией ошибок на обучающей выборке. Маленькое значение C даёт широкий зазор и игнорирует отдельные выбросы, что ведёт к недообучению. Большое значение C, наоборот, заставляет модель подстраиваться под каждый объект, увеличивая риск переобучения. Для RBF-ядра добавляется ещё и параметр гаммы. При малых значениях гаммы влияние каждого вектора распространяется далеко, и граница получается гладкой. При больших значениях модель реагирует лишь на ближайшие точки и легко запоминает шум.
Подбор этих параметров выполняется с помощью кросс-валидации. Данные разбиваются на K частей, обычно на 5 или 10. Модель обучается на K−1 частях, а оставшаяся часть используется для оценки. Процедура повторяется K раз, после чего результаты усредняются. Для поиска оптимальных значений применяют сеточный поиск по логарифмической шкале: для C это значения 0.001, 0.01, 0.1, 1, 10, 100, для гаммы аналогичный ряд. На корпусе из десяти тысяч документов полный перебор таких сеток занимает от нескольких минут до часа, в зависимости от числа ядер.
Обучение модели на подготовленных признаках выполняется за одну итерацию, если используется метод SMO (Sequential Minimal Optimization) из библиотеки LIBSVM. В отличие от градиентного спуска, который требует множества проходов по данным, SMO решает задачу квадратичного программирования, обновляя по два коэффициента за шаг. Для разреженных матриц размером 10 000 на 20 000 признаков обучение линейного ядра занимает около секунды на современном процессоре. RBF в тех же условиях требует уже десятки секунд.
Анализ поведения обученной модели показывает, что большинство опорных векторов (то есть объектов, определяющих положение границы) сосредоточено вблизи пересечения категорий. Это документы с неоднозначной лексикой, например короткие новости или тексты со смешанной тематикой. Практический вывод здесь такой: увеличение объёма обучающей выборки не всегда улучшает качество, если новые документы не добавляют информации о граничных случаях. Гораздо важнее сбалансированность классов и качество предобработки, чем сложность ядра.
4. Оценка точности и анализ результатов
Accuracy, на которую принято смотреть в первую очередь, редко говорит о реальном качестве модели. Когда классы несбалансированы, а в задачах классификации текстов это скорее норма, чем исключение, доля правильных ответов может быть высокой даже при полной бесполезности алгоритма. Представьте корпус, где 95% документов относятся к категории «спам». Классификатор, который всё относит к спаму, получит accuracy 0.95, но не решит ни одной практической задачи. Поэтому в работе использовались три взаимодополняющие метрики: точность (precision), полнота (recall) и их гармоническое среднее, F1-мера. Точность отвечает на вопрос, какая доля объектов, названных моделью положительными, действительно является таковой. Полнота показывает, какую долю истинно положительных объектов модель смогла обнаружить. F1-мера объединяет оба показателя, наказывая за сильный перекос в любую сторону.
Для объективной оценки обобщающей способности применялась стратифицированная k-кратная кросс-валидация с k=5. Этот подход разбивает выборку на пять частей, сохраняя пропорции классов в каждой. Модель обучается на четырёх частях и проверяется на оставшейся, затем цикл повторяется, чтобы каждая часть побывала в роли тестовой. Итоговое качество усредняется по всем пяти запускам. Такая схема снижает риск случайной удачи или неудачи при однократном разбиении данных. В частности, для линейного SVM с параметром регуляризации C=1 среднее значение F1 на новостном корпусе составило 0.91, тогда как accuracy достигала 0.93. Разница между метриками указывает на небольшой дисбаланс классов, который не был критичным, но требовал внимания.
Сравнение с другими классификаторами проводилось на идентичных признаковых описаниях, чтобы исключить влияние предобработки. Наивный байесовский классификатор, традиционно сильный в текстовых задачах, показал F1-меру
0.86. Логистическая регрессия, также относящаяся к линейным моделям, достигла 0.88. Метод опорных векторов обошёл обоих конкурентов, что согласуется с теоретическими представлениями: SVM стремится максимизировать зазор между классами, что даёт более устойчивое решающее правило на высокоразмерных разреженных векторах, типичных для текстов. При этом выигрыш в точности был заметнее, чем в полноте: SVM реже ошибался, но иногда пропускал сложные документы, которые байесовский классификатор, напротив, угадывал за счёт более «смелых» вероятностных оценок.
Анализ ошибок показал, что большинство неверных предсказаний приходится на короткие тексты объёмом до 150 слов. В таких документах информации слишком мало, чтобы надёжно разделить близкие тематики, например «спорт» и «здоровый образ жизни». Часть ошибок объясняется пересечением словарного состава категорий: термины вроде «тренировка» встречаются в обеих группах, и модель не всегда может корректно расставить приоритеты. Ещё один источник ошибок связан с редкими словами, которые встречаются в обучающей выборке один-два раза. Их веса оцениваются ненадёжно, и при попадании в тестовый документ они могут исказить решение. Пути улучшения лежат в двух направлениях. Во-первых, можно использовать n-граммы до трёх слов, чтобы улавливать устойчивые словосочетания, различающие тематики. Во-вторых, стоит применить взвешивание признаков на основе взаимной информации, что снизит влияние редких и малоинформативных терминов.
Практические рекомендации сводятся к следующему. Линейное ядро работает достаточно хорошо для большинства текстовых корпусов, а нелинейные ядра увеличивают время обучения без заметного прироста качества. Параметр регуляризации C следует подбирать на основе кросс-валидации, начиная с диапазона от 0.1 до 10. Метод опорных векторов показывает наилучшие результаты при объёме обучающей выборки от нескольких тысяч документов, когда данных достаточно для построения стабильной разделяющей гиперплоскости. При меньших
выборках наивный Байес может оказаться предпочтительнее из-за своей простоты и устойчивости. В итоге SVM можно уверенно рекомендовать как основной алгоритм для классификации текстов средней и большой размерности, особенно когда важна точность предсказаний и допустимы вычислительные затраты на этапе обучения.
Нужна такая же работа по своей теме? Соберём структуру, текст и источники в этом же оформлении.