В предыдущем отчете был предложен краткий алгоритм анализа тональности текстовых данных, который заключался в следующем:
- Cбор коллекции документов;
- Представление каждого документа в виде вектора признаков;
- Тональная разметка документов;
- Выбор алгоритма классификации и метода для обучения классификатора;
- Использование модели для вычисления тональности документов из новой коллекции, которая не содержит разметки.
В данной работе подробнее остановимся на пунктах 2, 3 и 4 из списка выше.
Обработка текстовых данных
В контексте задачи анализа эмоциональной окраски текста, основными особенностями сообщений в Твиттер являются:
- Малый размер сообщения – 140 символов;
- Наличие сленга, сокращений и грамматических ошибок;
- Наличие специальных символов;
- Использование ссылок на других пользователей и на внешние ресурсы.
Поэтому необходимо убрать из начальных данных любые данные, которые сделали бы обученную модель плохим обобщителем.
Предварительная обработка текста включает в себя множество вещей, таких как удаление смайликов, правильное форматирование текста, чтобы удалить лишние пробелы или любую другую информацию в тексте, которая, как предполагается, не добавит информацию в модель.
Предобработка текста включает в себя приведение всех слов к единому регистру, удаление знаков пунктуации, удаление стоп-слов, токенизацию, нормализацию слов и при необходимости иные операции.
При приведении всех слов к единому регистру, как правило, все прописные символы преобразуются в их строчные формы, поскольку предполагается, что прописные или строчные формы слов не имеют различий. Во всех текстах присутствуют знаки пунктуации, выполняющие чаще всего синтаксическую функцию, поэтому при анализе эмоций в тексте нет необходимости сохранять их. Также при обработке текста удаляются стоп-слова — слова, не содержащие смысловой нагрузки, например предлоги, союзы, частицы и т. п.
Парадигмы слов в русском языке имеют большое количество словоформ, передающих одинаковый смысл. Форма слова не всегда несет в себе полезную информацию, поэтому при анализе текста рекомендуется производить нормализацию всех слов, т. е. представление слова в его начальной форме. Нормализация может осуществляться двумя способами: лемматизацией и стеммингом.
Лемматизация — преобразование слова к его начальной форме (лемме). Лемматизация основана на морфологическом словаре. Если слово не присутствует в словаре, то строится гипотеза о способах изменения слова и получения для него леммы.
Стемминг — получение основы слова, при этом у слов отбрасываются окончания, суффиксы, приставки. Тем самым все слова в тексте приводятся к единой форме.
Каждый из этапов предобработки текста позволяет снизить размерность признакового пространства. В зависимости от исходного текста предобработка может включать в себя только несколько операций, а каждая операция может дорабатываться вручную с учетом всех исключений.
На данном этапе работы тренировочные данные преобразованы в гораздо более легкий текст, который намного проще использовать для извлечения признаков.
После удаления стоп-слов необходимо разбить все предложения в наборе данных, чтобы получить отдельные слова, которые в основном представляет собой список слов в предложении, содержащиеся в недавно обработанном твите. Теперь можно преобразовать нормализованный текст в вектор, который можно подавать в соответствующий алгоритм машинного обучения.
Таким образом для повышения качества работы классификационного алгоритма и уменьшения размерности словарей терминов реализовываются следующие этапы предварительной обработки:
- Приведение текста к нижнему регистру;
- Процедура стемминга и лемматизация;
- Удаление стоп-слов;
- Удаление всех символов, которые не являются буквенными; удаление повторяющихся символов;
- Удаление слов, которые встречаются реже всего;
Методы нейронных сетей для решения задачи анализа тональности
Сверточные нейронные сети - CNN
Сверточные нейронные сети, или CNN, составляют основу множества современных систем компьютерного зрения. Классификация изображений, обнаружение объектов, семантическая сегментация - все эти задачи успешно решаются CNN.
В терминах поставленной задачи можно рассматривать текст как одномерное изображение, так что можно использовать одномерные сверточные нейронные сети для фиксации ассоциаций между соседними словами.
Рекуррентные нейронные сети - LSTM
Сети с долговременной краткосрочной памятью - обычно называемые просто LSTM – это особый вид рекуррентных нейронных сетей (RNN), способный изучать долгосрочные зависимости. Они очень хорошо работают с широким кругом задач и в настоящее время широко используются в задачах анализа текстов.
LSTM специально разработаны, чтобы избежать проблемы долгосрочной зависимости. Все рекуррентные нейронные сети имеют вид цепочки повторяющихся модулей нейронной сети. В стандартных RNN этот повторяющийся модуль будет иметь очень простую структуру, такую как присутствует всего один слой функции tanh.
Комбинирование сверточных и рекуррентных нейронных сетей
Сверточные + Рекурретные
Комбинация модели CNN-LSTM (рисунок 1) состоит из начальной свертки слой, который будет получать вектор слов в качестве входных данных. Его вывод будет затем объединен до меньшего размера, который затем передается в слой LSTM. Предсказание этой моделью состоит в том, что сверточный слой будет извлекать локальные особенности и уровень LSTM сможет использовать порядок указанных функций для дальнейшего изучения слов.
Рекуррентные + Сверточные
Модель CNN-LSTM (рисунок 2) состоит из начального уровня LSTM, который будет получать вложения слов для каждого токена в твите в качестве входных данных. Основная особенность в том, что выходные токены LSTM будут хранить информацию не только о начальном токене, но также любые предыдущие токены.
Другими словами, уровень LSTM генерирует новую "кодировку" для исходного набора. Затем на уровень CNN подается в сверточный слой, который, как ожидается, извлечет локальные особенности текста. В конце, выходные данные сверточного слоя будут объединены в меньшее измерение и, в конечном итоге, выводится бинарная оценка текста.