К научным трудам

Источник: Тезисы докладов Международной научной школы «Zero Waste» для молодых ученых, аспирантов и студентов. — 2024. — С. 48-52.


УДК 004.032.26

ПРИМЕНЕНИЕ НЕЙРОННЫХ СЕТЕЙ ДЛЯ ОБРАБОТКИ НЕСТРУКТУРИРОВАННОЙ ИНФОРМАЦИИ

В.С. Кондаков

Южно-Российский государственный политехнический университет (НПИ) имени М.И. Платова, г. Новочеркасск

Аннотация. Нейронные сети, в особенности сверточные нейронные сети (CNN), показали свою эффективность в выявлении скрытых закономерностей и зависимостей в текстовых данных. CNN, изначально разработанные для обработки изображений, успешно применяются для анализа текстов, классификации, анализа тональности и выделения именованных сущностей благодаря своей способности выявлять локальные паттерны посредством применения фильтров. Рекуррентные нейронные сети (RNN) особенно полезны для обработки последовательных данных, таких как текст. Они могут моделировать временные зависимости и контекст, что делает их подходящими для задач языкового моделирования, машинного перевода и анализа тональности.

Ключевые слова: нейронные сети, обработка информации, неструктурированный текст

Введение

В современном мире объем информации растет с каждым годом в геометрической прогрессии. Нейронные сети представляют собой мощный инструмент для обработки и анализа неструктурированной информации, такой как текст, изображения, аудио и видео. Они позволяют извлекать скрытые закономерности и связи, что значительно улучшает качество и скорость анализа данных.

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

Сверточные нейронные сети, изначально разработанные для обработки изображений, оказались эффективными и для обработки текстовой информации благодаря своей способности выявлять локальные паттерны и зависимости. Это достигается посредством применения фильтров, которые сканируют текстовые данные, выделяя важные фрагменты информации. Такие подходы позволяют нейросетям успешно справляться с задачами классификации текста, анализа тональности, выделения именованных сущностей и многими другими [1].

Особое внимание в современных исследованиях уделяется разработке моделей, способных эффективно обрабатывать большие объемы текстовых данных, учитывая их контекстуальные особенности. Использование предобученных эмбеддингов, таких как Word2Vec и GloVe, а также более сложных моделей, таких как BERT и GPT, значительно улучшает качество анализа и интерпретации текстов [2].

Типы нейронных сетей для обработки текста:

  1. Сверточные нейронные сети (CNN) – используются для извлечения локальных признаков из текстов, таких как n-граммы. CNN применяют фильтры для обработки словосочетаний, что позволяет выделять важные паттерны. Используются для классификации текста и анализа тональности.
  2. Рекуррентные нейронные сети (RNN) – обрабатывают последовательные данные, учитывая предыдущие состояния. Позволяют моделировать зависимости в последовательностях.
  3. Трансформеры (Transformers) – используют механизм внимания (attention) для моделирования зависимостей в последовательностях, что позволяет эффективно обрабатывать большие объемы текста. Примерами трансформеров являются BERT и GPT. Применяются для решения задач понимания текста и генерации текста [3].

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

Рекуррентные нейронные сети особенно эффективны для обработки последовательных данных, таких как текст. В отличие от обычных нейронных сетей, RNN имеют циклические связи, которые позволяют сохранять информацию о предыдущих элементах последовательности, что делает их подходящими для задач, связанных с временными рядами и последовательностями [4].

Основные характеристики RNN:

  1. Последовательная обработка: RNN обрабатывают последовательности данных поэтапно, сохраняя информацию о предыдущих шагах в скрытых состояниях.
  2. Временные зависимости: RNN могут учитывать временные зависимости и контекст в данных, что важно для понимания текста.
  3. Обратное распространение через время (BPTT): Алгоритм обучения, используемый для настройки весов RNN, учитывает временные зависимости.

Применение RNN для обработки текста:

  1. Языковое моделирование и предсказание текста – RNN используются для предсказания следующего слова в предложении или следующего символа в последовательности.
  2. Машинный перевод – RNN могут преобразовывать текст с одного языка на другой, используя архитектуры энкодер-декодер.
  3. Анализ тональности – RNN применяются для определения эмоциональной окраски текста (положительная, нейтральная, отрицательная). Например, анализ отзывов пользователей на продукцию или услуги.
  4. Распознавание речи – RNN могут преобразовывать аудиозаписи речи в текст. Голосовые помощники, такие как Siri и Alexa.

Процесс анализа тональности текста в общем виде включает в себя следующие шаги [5]:

  1. Токенизация текста и преобразование в эмбеддинги: текстовые данные представляются в виде последовательностей числовых индексов, которые затем преобразуются в векторы фиксированной размерности (эмбеддинги).
  2. Обновление скрытого состояния: RNN обновляет скрытое состояние на каждом шаге времени, используя входной вектор и предыдущие состояния.
  3. Предсказание выхода: выход RNN представляет вероятности для каждого класса (положительный, отрицательный, нейтральный) на каждом шаге времени.

Формальное представление задачи анализа тональности текста с использованием RNN можно описать в виде следующих шагов:

1. Обозначения и подготовка:

2. Токенизация и эмбеддинг

Пусть у нас есть предложение "I watch this movie!". Сначала слова преобразуются в индексы и затем в эмбеддинги:

Преобразование слов в индексы: 𝑥𝑡 = tokenize(𝑤𝑡)

Функция tokenize используется для преобразования текста в последовательность токенов (слов, символов или подслов) и состоит из нескольких этапов:

  1. Очистка текста – удаление специальных символов, пунктуации и пробелов, приведение текста к нижнему регистру.
  2. Разделение на токены – разбиение текста на отдельные слова или символы.
  3. Обработка токенов – удаление стоп-слов и лемматизация/стемминг.
  4. Преобразование токенов в индексы – присвоение каждому токену уникального числа на основе словаря.

В данном случае получится:

  1. Приведение к нижнему регистру: "i watch this movie!".
  2. Удаление пунктуации: "i watch this movie".
  3. Разделение на токены: "i", "watch", "this", "movie".
  4. Обработка токенов: удаление стоп-слов (не требуется в данном примере) и лемматизация/стемминг (не требуется).
  5. Преобразование токенов в индексы: Словарь: {"i": 1, "love": 2, "machine": 3, "learning": 4}, результат: [1, 2, 3, 4].

3. Преобразование индексов в эмбеддинги

Эмбеддинг слой можно описать следующей формулой:

E = Embedding(xt), где E – эмбеддинг вектор для токена xt в момент времени t; xt – входной токен в момент времени t.

Изначально все слова из словаря отображаются на случайные векторы фиксированной размерности. Эти векторы затем оптимизируются в процессе обучения модели. Каждый токен (слово) из текста преобразуется в числовой индекс на основе словаря. Затем каждый индекс отображается на соответствующий эмбеддинг вектор из матрицы эмбеддингов.

Пусть у нас есть словарь, содержащий 4 слова: "I", "watch", "this", "movie". Размер эмбеддинговых векторов равен 3.

Словарь:

Матрица эмбеддингов:

E = [
  [0.1, 0.2, 0.3],
  [0.4, 0.5, 0.6],
  [0.7, 0.8, 0.9],
  [1.0, 1.1, 1.2]
]

Вектор эмбеддинга для "watch" будет строкой 1 из матрицы E.

4. Обновление скрытого состояния

Для каждого слова в последовательности обновляется скрытое состояние:

ht = tanh(Wx xt + Wh ht-1 + bh)

5. Вычисление выходного вектора и применение softmax

Для каждого шага времени t вычисляется выходной вектор:

yt = Wy ht + by

Применяется функция softmax для получения вероятностей классов:

ŷt = softmax(yt)

Например, ŷ4 = [0.1, 0.8, 0.1] – модель предсказывает положительную тональность на основе последнего слова "movie".

Использование выходного вектора и функции softmax позволяет преобразовать значения, вычисленные RNN, в вероятности для предсказания классов. Эти вероятности помогают определить наиболее вероятный класс на основе текущего входного состояния сети.

Заключение

Таким образом применение нейронных сетей для обработки неструктурированных текстовых данных открывает новые возможности для автоматизации и улучшения качества анализа текстов. Эти технологии продолжают развиваться, предлагая все более точные и эффективные решения для задач обработки естественного языка. В будущем можно ожидать дальнейшего улучшения моделей и алгоритмов, что приведет к еще более широкому внедрению нейронных сетей в различных сферах деятельности.

Список источников

  1. Григорьев А. Машинное обучение. Портфолио реальных проектов. Издательский дом «Питер», 2023. С. 106–108.
  2. Анализ тональности в русскоязычных текстах, часть 1: введение / Хабр (habr.com) [Электронный ресурс] https://habr.com/ru/companies/vk/articles/516214/ (дата обращения: 28.02.24).
  3. Орельен Ж. Прикладное машинное обучение с помощью Scikit-Learn и Tensor Flow // Диалектика, 2020. C. 130–134.
  4. Николенко С., Кадурин А., Архангельская Е. Глубокое обучение. Погружение в мир нейронных сетей. Изд. Питер, 2020. С. 106–104.
  5. Йоав Гольдберг. Нейросетевые методы в обработке естественного языка. Изд. Москва, 2019. С. 186–190.