Scientific journal
Modern high technologies
ISSN 1812-7320
"Перечень" ВАК
ИФ РИНЦ = 0,940

SOFTWARE SOLUTION ON BUILDING CLASSIFIERS FOR ANALYSIS OF TEXTS IN NATURAL LANGUAGE

Smetanina O.N. 1 Sazonova E.Yu. 1 Sazonova E.Yu. 1 Suleymanov A.K. 1 Selivanov S.G. 1 Andrushko D.Yu. 1
1 Ufa State Aviation Technical University
The software solution on constructing classifiers for analyzing texts in natural language is proposed by authors of this article. State of the problem of constructing classifiers for the analysis of texts in natural language is presented. This analysis led to the conclusion about the need for a software implementation due to the complexity of adaptation of existing software solutions for the analysis of news texts tone in Bashkir. The statement of the problem of analyzing the sentiment of news texts in Bashkir is given. Hybrid approach is proposed to solve this problem. This approach includes methods based on dictionaries and methods based on machine learning. The following steps for the solution of texts tonality analysis of the problem in Bashkir: pre-processing of text (leading to lower case; removing characters that are not letters, removal of stop words), word embedding (presentation method of text in vector Bag-of-words and TF-IDF statistic), classification (positive, negative sentiment; support vector machines with stochastic gradient descent). Also input and output data of the system provides in this article, system functions and attributes, requirements for the software-analytical complex, namely, functional, non-functional, system, structural diagram of the software-analytical complex. Python programming language, a large number of libraries such as Scikit-Learn, NLTK, Gensim, spaCy, NetworkX and Yellowbrick that implement machine learning methods have been used to implement.
machine learning
classifiers
sentiment analysis
natural language texts
software-analytical complex
support vector machines
requirements formalization
Python

Большие объемы слабоструктурированных данных, возможность использования результатов анализа таких данных для принятия решений потребовали как разработки теоретических основ для проведения анализа, так и их программных реализаций. В частности, как отмечают авторы [1], такие решения основаны на современной инфраструктуре анализа текстов, как то: множество приемов, методов, инструментов для работы со строками; лексические ресурсы; компьютерная лингвистика; алгоритмы машинного обучения и пр. При использовании для анализа данных машинного обучения решения часто реализованы на языке Python, который имеет множество научных и вычислительных библиотек.

Smet1.wmf

Рис. 1. Известные системы в области анализа тональности в текстах на ЕЯ

Несмотря на то что на данный момент имеются теоретическая база анализа текстов [2–4], в частности модели и методы [5–7], особенности решаемых задач [8–10], специфика данных [11, 12], вопросы автоматизации [13, 14] и ряд программных решений [15–17], позволяющих обрабатывать и анализировать тексты на естественном языке (ЕЯ), совершенствование теоретических основ, специфика ЕЯ (например, башкирского, когда приходится ограничивать применение методов предобработки из-за особенностей словообразования) и решаемых задач требует разработки нового подхода и, как следствие, программной реализации.

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

Современное состояние проблемы построения классификаторов для анализа текстов на естественном языке

Развитие фундаментальных положений и информационных технологий в области анализа текста привело к тому, что на рынке появилось множество сервисов, позволяющих обрабатывать и анализировать тексты на ЕЯ. Среди широко известных программных решений для задач автоматического определения тональности текста следует выделить Sentiment140, Библиотека NLTK, Senti Strength [16], RCO FactExtractor [18], «Аналитический курьер» и «X-files» и др. (рис. 1). При проведении сравнительного анализа для каждого программного решения отмечены такие аспекты, как: разработчики; языки, на которых может быть представлен текст для анализа; аппарат, положенный в основу решения; чем представлен выход, а также ряд других особенностей. Кроме указанных программных решений, можно отметить такие инструментальные средства, как текстовый процессор КроЛАН (ООО «ЛАН-ПРОЕКТ»), Quiddi Semantics (ООО «ТомскСофт»), 3i NLP Platform (ООО «ДСС Лаб») и др. (рис. 2).

Также следует выделить программу на основе наивного Байесовского классификатора и нечеткой логики «Гибридный классификатор текстовых документов на естественном языке» (ДГТУ), которая позволяет задать произвольное число категорий для классификации. Особенности языка не всегда позволяют использовать те или иные методы анализа, заложенные в имеющихся программных решениях. Часто информация о методах, положенных в основу программной реализации, отсутствует.

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

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

Целью исследования является построение эффективного классификатора в виде программно-аналитического комплекса. В статье эффективность может быть получена и за счет автоматизации анализа, и за счет того, что построение классификатора осуществляется на основе метода, дающего «лучшее» решение. Выбор метода авторами был осуществлен ранее [19].

Постановка задачи и формализация требований к программному решению

Постановка задачи анализа тональности новостных текстов на башкирском языке предполагает, что можно выделить две категории классов – «положительные» / «отрицательные» (рис. 3). В основе решения задачи лежит гибридный подход, который включает методы, основанные на словарях, и методы, основанные на машинном обучении. Структура решения задачи анализа тональности текстов на башкирском языке (рис. 4) включает следующие этапы: предварительная обработка текста (приведение к нижнему регистру; удаление символов, не являющихся буквами; удаление стоп-слов), векторное представление слов (метод представления текста в векторном виде Bag-of-words и статистический показатель TF-IDF), классификация (положительная, отрицательная тональность; метод опорных векторов со стохастическим градиентным спуском).

Smet2.wmf

Рис. 2. Программные решения в области анализа тональности текста

Smet3.wmf

Рис. 3. Краткое представление функционала

Smet4.wmf

Рис. 4. Структура решения задачи анализа тональности текстов на башкирском языке

По результатам проведенного эксперимента для построения классификатора как наиболее точный был отобран метод опорных векторов со стохастическим градиентным спуском. В его основе лежит построение гиперплоскости для оптимального разделения объектов обучающей выборки smetan01.wmf на два класса: yi∈{–1, 1}. Классифицирующая функция: F(x) = sign(<w, x> + b), где <w, x> – скалярное произведение, w – нормальный вектор к разделяющей плоскости, b – вспомогательный параметр. Один класс – объекты со значением функции F(x) = 1, другой класс – объекты с F(x) = –1. Любая гиперплоскость задается в виде <w, x> + b = 0 для некоторых w и b, выбираемых для максимизации расстояния от гиперплоскости до объектов каждого класса smetan02.wmf. Учитывая, что проблемы нахождения maxsmetan03.wmf и нахождения minsmetan04.wmf аналогичны, можно записать задачу оптимизации: smetan05.wmf и ее решение с помощью множителей Лагранжа [19].

Таким образом, в основу создаваемого программно-аналитического комплекса легли предлагаемая теоретическая база для предварительной обработки текста и отобранный по результатам проведенного эксперимента метод опорных векторов со стохастическим градиентным спуском [19].

После определения того, что должно быть на входе и выходе системы, ее функций и атрибутов формулируются требования. Комплекс требований к программно-аналитическому комплексу включает: функциональные, нефункциональные, системные требования (рис. 5). Функциональные требования представлены UML-диаграммой вариантов использования: ввод текста, просмотр результата, определение тональности текста (предварительная обработка текста, векторное представление текста, анализ тональности), вывод результатов анализа (рис. 6). Диаграмма последовательностей демонстрирует взаимодействие объектов (компонентов программно-аналитического комплекса и пользователя) в динамике (рис. 7). Диаграмма размещения представляет общую конфигурацию и топологию распределенного программно-аналитического комплекса и содержит распределение компонентов по отдельным узлам системы.

Архитектура приложения представляет собой классическую архитектуру – «клиент – сервер».

К системным требованиям данного программно-аналитического комплекса относятся характеристики сервера и клиента, возможность переносимости комплекса и пр. (рис. 8).

Smet5.wmf

Рис. 5. Требования к программно-аналитическому комплексу

Smet6.wmf

Рис. 6. Диаграмма вариантов использования

Smet7.wmf

Рис. 7. Диаграмма последовательностей

Smet8.wmf

Рис. 8. Детализация системных требований

Язык Python обеспечивает довольно короткие сроки написания программ, также используется большое количество библиотек, таких как Scikit-Learn, NLTK, Gensim, spaCy, NetworkX и Yellowbrick, реализующих методы машинного обучения.

Структурная схема программно-аналитического комплекса

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

Модуль web-приложения позволяет: задавать конфигурацию приложения, импортировать пакеты, отслеживать обращения по адресам / и /index, реагировать на отправку формы ввода текста для анализа вызовом метода predict модуля анализа, обеспечивать безопасность клиентских сессий, для генерации формы ввода текста для анализа использовать класс AnalyzeForm; содержит папки с перечнем html-страницы для web-приложения, базовой страницей и страницей, ее расширяющей, формой для ввода текста и графические элементы, папки со статическими объектами, файлы со списком необходимых библиотек для работы приложения с указанием версий для каждой библиотеки.

Модуль анализа тональности: позволяет получить по обученной модели оценку тональности, очистить текст. В данный модуль включен блок обучения модели (программно реализован как вспомогательный). Вспомогательные модули реализуют следующий функционал: реализация методов парсинга, методов для автоматической разметки текстов, загрузки словаря тональности, методов предварительной обработки текста, метод для удаления стоп-слов.

Выводы

Результаты анализа современного состояния проблемы построения классификаторов для анализа текста на ЕЯ показали как наличие теоретической базы для разработки инструментальных средств для анализа, так и широкий спектр готовых программных решений: от «универсальных» до специальных, созданных под конкретную задачу.

Smet9.wmf

Рис. 9. Структурная схема программно-аналитического комплекса

Специфика словообразования в башкирском языке и отсутствие готовых корпусов текстов обусловили необходимость разработки программно-аналитического комплекса для анализа тональности новостных текстов, представленных на башкирском языке. Программная реализация основана на ранее описанном гибридном подходе [19]. Формальные требования к программно-аналитическому комплексу включают функциональные, нефункциональные и системные требования. Использование языка Python дало возможность написать программу в довольно короткие сроки.

Результаты исследований, приведенные в статье, получены в рамках выполнения грантов РФФИ 18-07-00193, 19-07-00709 и государственного задания № FEUE-2020-0007.