Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: LXXVII Международной научно-практической конференции «Экспериментальные и теоретические исследования в современной науке» (Россия, г. Новосибирск, 30 мая 2022 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Ромайкин И.Д., Трапизонян Р.А. ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ И ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА ДЛЯ КЛАССИФИКАЦИИ ТЕКСТОВ // Экспериментальные и теоретические исследования в современной науке: сб. ст. по матер. LXXVII междунар. науч.-практ. конф. № 5(70). – Новосибирск: СибАК, 2022. – С. 5-12.
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

ИСКУССТВЕННЫЙ ИНТЕЛЛЕКТ И ОБРАБОТКА ЕСТЕСТВЕННОГО ЯЗЫКА ДЛЯ КЛАССИФИКАЦИИ ТЕКСТОВ

Ромайкин Игорь Дмитриевич

студент 3 курса бакалавриата, МИРЭА - Российский технологический университет (РТУ МИРЭА),

РФ, г. Москва

Трапизонян Рафик Ашотович

студент 3 курса бакалавриата, МИРЭА - Российский технологический университет (РТУ МИРЭА),

РФ, г. Москва

ARTIFICIAL INTELLIGENCE AND NATURAL LANGUAGE PROCESSING FOR TEXT CLASSIFICATION

 

Igor Romaykin

 3rd year undergraduate student, MIREA-Russian Technological University (RTU MIREA), Moscow

Rafik Trapizonyan

 3rd year undergraduate student, MIREA-Russian Technological University (RTU MIREA), Moscow

 

АННОТАЦИЯ

С каждым веком человечество всё больше познаёт этот мир и самих себя, появляются новые открытия в математике, философии, физике, химии и других науках. Но текущий, двадцать первый век, принято считать веком информационных технологий, потому что они оказали сильное влияние на нашу повседневную жизнь, у каждого есть смартфон или даже компьютер, а статистика говорит, что на 2020 год уже до 60% населения имеет доступ и пользуется интернетом [1]. В следствии этого интернет наполнен различными данными, как числовыми, так и текстовыми. В них хранятся сообщения людей, банковские счеты, различные научные и не только статьи, посты из социальных сетей и многое другое. Но самое важное, что эти данные можно обрабатывать и делать какие-либо выводы, прогнозы, выявлять закономерности. Этим и занимается искусственный интеллект. Уже много статей посвящено именно анализу чисел, таких как сумма продаж, курсы валют, температура или влажность воздуха. Но мало кто обращает внимание именно на обработку текста, от части потому что эта подобласть является сложной и менее предсказуемой. Именно поэтому в данной статье мы с помощью языка программирования Python обучим математическую модель для анализа именно текстовой информации в интернете и решим проблему классификации естественного языка.

ABSTRACT

With each passing century, humanity gets to know this world and itself more and more, new discoveries appear in mathematics, philosophy, physics, chemistry and other sciences. But the current twenty-first century is considered to be the century of information technology, because they have had a strong impact on our daily lives, everyone has a smartphone or even a computer, and statistics say that by 2020 up to 60% of the population already has access to and uses the Internet [1]. As a result, the Internet is filled with various data, both numeric and textual. They store people's messages, bank accounts, various scientific and not only articles, posts from social networks and much more. But the most important thing is that this data can be processed and any conclusions, forecasts can be made, patterns can be identified. This is what artificial intelligence does. Many articles have already been devoted specifically to the analysis of numbers, such as the amount of sales, exchange rates, temperature or humidity. But few people pay attention to text processing, partly because this subdomain is complex and less predictable. That is why in this article, using the Python programming language, we will train a mathematical model for analyzing textual information on the Internet and solve the problem of natural language classification.

 

Ключевые слова: информационные технологии; машинное обучение; искусственный интеллект; обработка естественного языка; модель.

Keywords: information technology; machine learning; artificial intelligence; natural language processing; model.

 

Для начала надо определить понятие модели в контексте данной статьи, то есть в машинном обучении. И так, модель машинного обучения – это такая математическая модель, которая с помощью программной реализации обучается на большом объёме данных с целью решения конкретной задачи. Такая модель может выдавать ответы, основываясь на входных данных и алгоритме, который получился по итогам обучения. Так, к примеру, если вы обучали модель на яблоках и грушах, то она будет работать именно с яблоками и грушами. Предположим, что после обучения мы даём этой модели информацию об объекте, что он зелёный и круглый, тогда ответ модели будет – яблоко. Не мяч, не арбуз, а именно яблоко, потому что именно на яблоках с грушами мы её обучали. И у каждой модели есть свой алгоритм, который зависит от заданной программной реализации.

Также следует разобрать, что такое обработка естественного языка, что же значит это понятие и что в него входит. Обработка естественного языка, или сокращённо «NLP» от английского «Nature Language Proccessing» – это раздел, который объединяет в себе и лингвистику, и информатику с программированием, и сам искусственный интеллект. При помощи моделей машинного обучения данный раздел даёт возможность компьютеру взаимодействовать с человеческим языком, то есть обрабатывать, анализировать и в следствии чего понимать смысл наших слов и предложений [2].

NLP имеет широкое применение в области данных. К примеру, в таких задачах классификации, как определение тональности текста, спам-письма в онлайн-почте, террористических сообщений или сообщений человека, имеющего деструктивное поведение, а также какие-либо психические и психологические отклонения. Конечно можно задать определенный список слов, но возникают вопросы: сколько времени на это понадобится, сколько слов надо внести и каких именно. Если разобрать на примере, то допустим мы хотим внести слово «оружие» в наш список подозрительных слов, нам, людям, станет ясно, что и «оружие», и «орудие», и «оружейная» довольно близкие к друг другу слова, но вычислительная машина не может понимать также, как и мы, она выполняет лишь чёткие инструкции, и будет искать лишь те слова, которые мы занесём. Да, мы можем занести все эти три слова, но возникает проблема с опечатками или намеренными ошибками, человек может или случайно или специально написать слово с ошибкой, к примеру «аружие», и тут придётся перебрать уже все варианты опечаток, а если обратиться к комбинаторике, то количество таких вариантов будет равно количеству букв в алфавите в степени количества букв в слове, для слова «оружие» это 33 алфавитных буквы в шестой степени, что больше миллиарда вариантов. И это только для одного слова.

NLP также используется в системах перевода языков, это технология называется машинным переводом. Ещё 10 лет назад он был статическим, это когда есть некая статическая модель с алгоритмом, который разделяет предложение на отдельные слова или фразы, затем перебирает все варианты перевода этих фрагментов и взвешивает вероятность каждого из них.  Делает он это исходя из того, как часто встречался тот или иной вариант перевода в текстах, на которых она училась. Например, английское слово «set» имеет несколько переводов, одни из них – «набор» и «установить». Так, в контексте «beautiful set», вероятность того, что слово переводится как «набор» будет гораздо выше, чем «установить», а если в контексте «set the clock», то уже наоборот, вероятность перевода слова как «установить» будет выше, чем «набор». Руководствуясь этой логикой, модель составляет несколько вариантов переводов всего предложения целиком и выбирает из них тот, в котором содержатся фрагменты с наибольшим вероятностным весом и фрагменты которого сочетаются лучше всего [3].

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

Также NLP используется в голосовых помощниках, чат ботах, определении языка, создании субтитров для видео, синтаксическом анализе или анализе текста в документах и не только.

В данной статей будет разобрана классификация текста с помощью NLP. Для этого нам понадобятся: классы, которые мы хотим предсказывать; соответствующие классам наборы данных для обучения модели; модель-классификатор, которую мы будем обучать. В качестве классов была выбрана тематика «образование», первый класс – это образовательный текст, второй класс – не образовательный текст. Наборы данных мы возьмём из социальной сети Вконтакте [4] с помощью парсера - программа, которая по определённому алгоритму собирает нужные данные с какого-либо интернет-ресурса. В качестве модели-классификатора мы будем использовать BertClassifier – предобученная нейро-сетевая модель от Google для классификации текста [5].

Архитектура BertClassifier представляет собой модель-трансформер, у него есть два компонента – кодирующий и декордирующий [6]. Кодирующий компонент, или же энкодер, занимается тем, что создаёт некую связь между всеми словами, которые получает. Со временем, при достаточно длительном обучении модели, энкодер понимает, что слова «король» и «принц» близкие по смыслу и что если из слова «принц» убрать мужскую составляющую, то получится «принцесса»; что про «помидоры» и «огурцы» чаще говорят в контексте овощного рынка, грядок или салата. Это понимание кодирующего компонента называется эмбеддингами слов. Он передаёт эту информацию в декодирующий компонент, или же декодер. Затем декодер, на основе полученной информации, закрывает часть в предложении и пытается её угадать, или же предсказать, по контексту и смыслу. Таким образом он должен получить то же предложение, что пришло ему на вход. Другими словами, энкодер отвечает за смысл и окрас предложения, а декодер отвечает за конкретные места слов в предложении, за его структуру. Динамический перевод, о котором мы говорили раннее, основан как раз по такому же принципу.

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

Для создания набора данных напишем программный скрипт – парсер (Рисунок 1). На строках 1-5 создадим подключение программы к социальной сети Вконтакте по уникальному токену, а затем составим список сообществ, из которых мы будем брать данные. На строчке 8 объявим переменную, куда будем класть информацию. Затем на строчках 10-24 мы переходим в каждое сообщество и берём из них 500 постов, из которых впоследствии берём весь текст. На строчках 26-28 приводим набор данных к удобочитаемому виду, и ниже виден табличный результат нашего набора данных. В данном случае это набор не образовательного текста, об этом говорит колонка «label» с значением «1», но для образовательного проделаны те же шаги, только колонка «label» уже будет «0».

 

Рисунок 1. Парсер для набора данных

 

После этого создадим модель-классификатор BertClassifier и обучим её на нашем наборе данных. Обучение проведём в пять эпох, другими словами 5 раз подряд с использованием одного и того же набора данных, это немного улучшит нашу предсказательную способность модели. Результаты обучения представлены на Рисунке 2. На изображении можно увидеть, что результат точности на обучающей выборке за пять эпох повысился с 0.792 до 0.977, на валидационной выборке на 0.034, конечная точность модели была рассчитан на тестовой выборке и составляет почти 0.92, это хороший результат, который означает что наша модель в среднем ошибается лишь в восьми случаях из ста. 

 

Рисунок 2. Обучение модели-классификатора

 

Для проверки было проведено четыре теста, результаты которых представлены на Рисунке 3. Как видно, модель работает хорошо, все тексты классифицированы верно, а значит эксперимент проведён удачно.

 

Рисунок 3. Проверка предсказательной способности модели

 

Таким образом, в данной статье мы познакомились с технологией обработки естественного языка, яркими примерами её применения, с помощью языка программирования Python взяли реальные данные из социальной сети Вконтакте и обучили на них модель BertClassifier, которая классифицирует текст на образовательный и не образовательный. Итоговая точность модели составляет 92%. Модель была успешно протестирована в реальном времени на четырёх предложениях. Весь программный код представлен по ссылке: https://colab.research.google.com/drive/1njInBq5gDy_8UrNZpK7UNzHfde0WuJ8s?usp=sharing

 

Список литературы:

  1. Вся статистика интернета на 2020 год — цифры и тренды в мире и в России. — Текст: электронный // WebCanape: [сайт]. — URL: https://www.web-canape.ru/business/internet-2020-globalnaya-statistika-i-trendy/ (дата обращения: 21.05.2022).
  2. Обработка естественного языка. — Текст: электронный // Википедия: [сайт]. — URL: https://ru.wikipedia.org/wiki/Обработка_естественного_языка (дата обращения: 22.05.2022).
  3. Технологии - Машинный перевод. — Текст: электронный // Компания Яндекс: [сайт]. — URL: https://yandex.ru/company/technologies/translation/ (дата обращения: 26.05.2022).
  4. Добро пожаловать Вконтакте — Текст: электронный // Вконтакте: [сайт]. — URL: https://vk.com (дата обращения: 22.05.2022).
  5. BERT. — Текст: электронный // Hugging Face: [сайт]. — URL: https://huggingface.co/docs/transformers/model_doc/bert (дата обращения: 23.05.2022).
  6. The Illustrated Transformer. — Текст: электронный // jalammar.github.io: [сайт]. — URL: https://jalammar.github.io/illustrated-transformer/ (дата обращения: 23.05.2022).
Проголосовать за статью
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.